After years of consulting on Mendix projects across teams and industries, I made a decision most developers in this space eventually consider, move to a different platform and see what changes.
I was not leaving because of the technology. Mendix is capable. I was leaving because I was tired of watching the same mistakes repeat themselves across clients, across industries, across teams.
I assumed a new platform would mean a new set of patterns. It did not.
Within months of working on my first projects on the new platform, I was sitting in the same conversations. The same gaps between what business teams expected and what development teams knew to be true. The same shortcuts taken in the name of speed. The same architectural decisions deferred until they became someone else's emergency.
The platform was Pega. And it had nothing to do with what was going wrong.
The most damaging assumption a team can bring into a low-code project is that the platform will handle the hard parts.
Low code hides certain types of complexity. Boilerplate code, repetitive scaffolding, basic UI patterns. What it does not hide is process design, data modeling, decision logic, or the reality of connecting systems that were never built to talk to each other. That work does not disappear. It moves. And it usually lands in places teams are not prepared for.
The six patterns below are not separate problems. They are what happens when a team operates under that belief.
Low-code makes it easy to begin development before the thinking is done. In traditional development, setup time creates space for questions. In low-code, you can have a working flow by end of day one. That speed is the platform’s strength. In the wrong conditions, it is also how projects go wrong fast.
Teams iterate rapidly on incomplete requirements. Flows get rebuilt because edge cases nobody discussed are now surfacing under UAT pressure. The business assumed those cases were obvious. The developers assumed they were out of scope. The platform made it easy to skip the conversation that would have caught it.
This is where I have seen the most damage, and it is the least discussed.
Drag-and-drop interfaces create a specific illusion that structure will emerge from the work itself. It will not. In Mendix, I have watched domain models grow into something nobody fully owns by month three, because data design was nobody’s explicit responsibility at the start. In Pega, I have seen case structures become unmaintainable because flow boundaries were never defined, only discovered, usually when it was too late to fix them cleanly.

Bad architecture in low code looks different from bad architecture in traditional development. It is harder to see until it is everywhere. There are no compile errors for a poorly designed case hierarchy. No linting warnings for a domain model that has quietly become the load-bearing wall of a system nobody wants to touch.
Low-code reduces coding effort. It does not reduce architectural responsibility. Given how fast teams can produce output on these platforms, disciplined design is more important here, not less.
Low-code tools get introduced to the business with one message, “we can build this quickly.”
That is true. It is also incomplete, and the gap between the statement and what it actually means is where delivery pressure originates.
Business teams conclude that every change is fast, every request is small, and every timeline is negotiable. Timelines get committed without technical validation. Complexity gets dismissed because it is low-code, as if the label changes what the system needs to do.
The teams that handle this well say yes to speed and define it precisely: faster than traditional development, still subject to complexity, still requiring validation. That conversation is not a soft skill. It is a delivery dependency. The projects that skip it pay for it in fire drills.
Low-code lowers the barrier for more people to contribute. That is part of the value. It is also how projects quietly deteriorate when nobody is maintaining standards.
Without governance, teams accumulate inconsistent naming conventions, duplicate logic across modules, and uncontrolled changes across environments. In Pega, where complexity already runs high, poor governance compounds fast. In Mendix, the flexibility that makes the platform accessible creates inconsistency the moment teams stop enforcing standards.
Low-code needs governance. Given the pace of output, it arguably needs more of it than traditional development.
Most enterprise low-code applications do not live in isolation. They connect to external APIs, legacy systems, databases, and third-party services built under different assumptions, at different times, by entirely different teams.
The UI layer is fast to build. Integration is where projects discover what they did not know they did not know. Failure scenarios nobody planned for. Performance issues that only appear under realistic data volumes. Data consistency problems that surface after go-live, when fixing them is expensive.
Low-code platforms provide connectors. They do not eliminate the complexity of connecting systems that were never designed to speak to each other.
Low-code environments blur responsibilities in ways that are easy to miss until something goes wrong.
Who owns the logic? Who validates business rules? Who is accountable for long-term maintainability?
When those questions go unanswered, issues get passed around, quality drops incrementally, and decisions slow down because nobody is sure they have the authority to make them. Define ownership before anyone starts building.
Moving from Mendix to Pega gave me a comparison most developers do not get to make. Same problems, different tools.
Poor design produces fragile systems regardless of which platform hosts them. Weak communication produces rework regardless of how fast the platform builds. Lack of discipline creates technical debt regardless of whether the underlying logic is hand-written or configured.
The platform is context. The fundamentals are constant.
Low-code does not remove complexity, it redistributes it.
It gives teams the ability to build faster, which also means the ability to make mistakes faster. The projects that succeed are not the ones running on the best platform. They are the ones with clear thinking, strong design discipline, honest communication, and a realistic expectation of what low-code can and cannot do.
Low-code is not a shortcut. It is an accelerator. And like any accelerator, what it amplifies depends entirely on what the team brings to it.