Pro Code vs Low Code
Tags: programming, coding, watercooler, technology
Published: 2021-04-06 12:33:53

In theory, low-code tools should allow for faster development of systems using skills that are more readily available at the cost of the tooling and the risk of the project failing due to tooling constraints.

The main value generated by using low-code tools is the time saved. If you don’t have or can’t find the skills to do traditional coding then a low-code tool might be your only option. On the other hand, if you have developers available then the value calculation will be more nuanced.

Let's compare low-code with traditional coding by looking at the major costs of developing and running a software system.

##Tools
Every programmer needs a set of tools - and tools seem to be even better when they're free. Fortunately, there's no shortage of tools available for programmers.  Many traditional coding tools are essentially free (Notepad, VS studio, Atom), while low-code tools can vary wildly - from the free (Open Low Code) to the outlandish (Outsystems / $4000+ p.a.).
**Best value: Traditional coding**

---
##Development
The software world is always evolving, but even then the basics are still the same. The difference being today, you have plenty of options. There are templates, components, frameworks, hybrid apps— and many other elements to consider.

###1. Requirements and Design
A design might be constrained by what the low-code tool can do but this can have both a positive and negative effect on the time spent on this stage.
**Best value: Draw**

###2. Build
Low-code tools generally use bigger building blocks and commodity aspects like logging and metrics are usually included, all of which are major time savers. However, if functionality is missing or cannot be built with the low-code tooling then additional cost will be incurred on building workarounds.
**Best value: Low-code**
**Risks: Cost of workarounds**

###3. Deploy
Low-code platforms make deployment much easier than the complex and fragmented options for traditional coders.
**Best value: Low-code**

###4. Testing
Systems built with low-code platforms need no or very little unit testing as their building blocks have already been tested. All systems, whether low-code or traditional, need end-to-end system tests.
**Best value: Low-code**

**Development Overall Score: Best value: Low-code**
**Risks: Cost of workarounds**

---
## Infrastructure
With most low-code tools infrastructure costs are linked with the cost of the tool. Systems built with traditional coding can be deployed on the most cost-effective infrastructure.
**Best value: Traditional coding**

---
## Maintenance
The cost of maintenance follows a similar pattern to the cost of development. An additional risk is the continued support and maintenance of the low-code platform, something you are completely in control of when using traditional coding. On the other hand, low-code platform and infrastructure upgrades should take less or no time compared to doing it with traditional tools.
**Best value: Low-code** 
**Risks: Cost of workarounds, continued platform support**

----
##Considerations
While low-code seems to be a no-brainer barring the cost of the tool itself there are too many variables and risks to consider to just decide that low-code is the answer. Each project will need its own business case based on the

- Type and complexity of the system to be built.
- Skills available and cost of those skills.
- Suitable low-code tools available and cost of the tools.
- Value of time-saving vs. the risk of project failure due to tooling.

**Fit for Choice**
Good use cases for low-code tools are when the project is not super complex, your tool fits the system domain and:
- you don’t have professional developers specializing in the tech stack you need, or,
- time is of the essence, or,
requirements are fluid and will likely result in several iterations before going live.
- The sweet spot is when you have domain experts with coding skills, even if they’re not pro developers, using a tool compatible with the target domain - hence the proliferation of a new generation of low-code tools such as [Mendix](www.mendix.com), [Honeycode](https://www.honeycode.aws/), [Power App](https://powerapps.microsoft.com/en-us/), [Linx](https://linx.software), and [OutSystems](www.outsytems.com). 

These new low-code platforms offer a modern software experience that aligns with today’s changing user demands.  They enable developers to exercise control with application testing, quality, and performance tooling while incorporating the high productivity techniques seen in low-code solutions to speed development through visual means.

Compare that with developers building a system from a specification they don’t completely understand using traditional coding methods. It’s up to you to decide...