← Writing
Engineering 3 min read

Low-Code Is Still Code

K2 and Nintex are low-code, not no-discipline. The engineering habits that separate a platform you trust from one you quietly fear.

The promise of low-code is that you build faster. The quiet lie some teams hear underneath it is that the normal rules no longer apply. They do. A workflow still has state. A form still has dependencies. A broker still talks to a system that can be down. Low-code hides the code, it does not remove it, and the day you forget that is the day the platform stops feeling trustworthy.

These are the habits that keep a K2 or Nintex estate something you can change without holding your breath.

Put it in source control, even the parts that do not look like files

A drag-and-drop change you cannot diff is a change you cannot reason about. Export your packages. Keep broker source in a repo. Commit the SmartForms and workflow exports alongside the C# they depend on. You do not need a perfect pipeline on day one, you need a history. The first time someone asks “what changed last Tuesday” you will be glad there is an answer that is not a guess.

Environments are not optional

Dev, test, production. Three places, three sets of values, never crossed by hand. The classic failure is a string broker or a form pointing at a live endpoint because someone typed the URL in directly. Use environment fields so the same artifact resolves differently per environment.

// not this
https://api.prod.internal/orders
// this
[Environment].[Orders API Base]/orders

The artifact moves between environments unchanged. Only the field behind it differs. That is the whole point.

Name things like someone will read them

“Data Label 1” tells you nothing at two in the morning. Name rules, views, and SmartObjects for what they do, not the order you happened to add them. A form you can read is a form you can fix. A SmartObject method called Get Active Orders By Customer will save you more time over its life than the thirty seconds it took to type.

Test the unhappy path

The demo always works. The endpoint is up, the user has rights, the list has rows. Production is where none of that is guaranteed. Before you ship, walk the failures on purpose: the service is down, the user has no permission, the result set is empty, the input is malformed. If you do not know what your workflow does in those cases, your users will find out for you.

Review changes before they go live

A second pair of eyes on a workflow is not bureaucracy, it is the cheapest bug you will ever catch. Low-code makes it trivial to push a change straight to production, which is exactly why a deliberate pause matters more here, not less. The barrier to changing things should be slightly higher than the barrier to thinking about them.

Write down the why

The reason a rule exists, the gotcha that cost you an afternoon, the thing that looks wrong but is load-bearing. Code comments, a wiki, a note in the package description, anywhere durable. Future you is a different person with none of today’s context, and they will thank you for the sentence you almost did not write.

The discipline is the speed

None of this slows you down in the way it first appears to. Low-code lowers the cost of building. It does nothing to lower the cost of being wrong in production. The habits above are what let you keep the first benefit without paying the second one over and over. Move fast, by all means. Just build the kind of thing you are not afraid to change next month.