If pragmatism raises technical debt, call it oversimplification (rant)

Post image

The word “pragmatism” or “pragmatic” is, in my personal opinion, the most overrated word in agile development. Many people use this as a buzzword without knowing what it means. I hear people saying “He solved that complex problem in half an hour, he’s so pragmatic!” and think for myself “Yeah, but that ‘solution’ probably causes other devs three times more effort than a sustainable solution would take.”

Okay, but that’s only my anger speaking. Let’s read a definition of pragmatism:

a reasonable and logical way of doing things or of thinking about problems that is based on dealing with specific situations instead of on ideas and theories – merriam-webster.com

A Reasonable and Logical Way

So even pragmatic solutions have to be reasonable and logical. I would ask so many people out there: “Is missing out documentation, tests and software design principles really a logical and resonable way of solving problems?” At least I don’t think so. Maybe if it’s only for a Executive Board presentation, you can rapidly build a prototype without having documentation or tests. But doing that, one has to take care that this prototype is not going life two weeks later.

Based on Dealing with Specific Situations

Of course, if there is a disaster case, you cannot think about the best way to build a solution for 2 days. What I am talking about are estimated, scheduled projects which are barely “fucked up” technically, because one wants to finish them fast or without thinking about it. In a second, or maybe third release, technical dept is appearing but because you have not documented nor tested, you cannot refactor. This is not pragmatism!

For specific situations or problems in development, there are often provided patterns or parts of solutions. Using those “best practices” is probably the quintessential of pragmatism. Building an over-simplified custom solution, because one doesn’t understand the best practice, is not.

Instead of on Ideas and Theories

There are many theoretical approaches in development. Let’s take the Enterprise Design/Architecture Patterns (Gang of Four) as an example. There were some people telling me, that they don’t use them, because this is theoretic and has nothing to do with pragmatic solutions. But if a “pragmatic solution” is the best way to deal with a specific situation, then I would highly recommend those patterns because the are very pragmatic.

Finishing…

Many people use words like “pragmatism” or “best practice” as buzzwords but don’t understand what they mean. Therefore, please be aware that pragmatism does not mean laziness or oversimplifying a complex problem. It means thinking practical, but also logical and resonable, so don’t misuse them.

You May Also Like

Raising the Bar: Quality Gates for AI-Generated Code

Raising the Bar: Quality Gates for AI-Generated Code

AI coding tools let your team ship faster than ever. That is the pitch, and it is not wrong. But nobody talks about what you are shipping. Right now, most teams use these tools to produce broken software at unprecedented speed.

Security holes, silent data corruption, exception handling that hides failures. None of this shows up in your sprint velocity. It shows up when the product collapses under technical debt, or when a customer hits an unhandled edge case in production. If your team uses AI coding tools without guardrails, you are not moving fast. You are accumulating landmines.

Read More
The 9 Talents in Software Teams

The 9 Talents in Software Teams

Job titles like “Senior Engineer” or “Principal Engineer” don’t explain how someone actually contributes to a team. Counting a candidate’s years of experience doesn’t tell you whether they’ll bring stability in a crisis, explore new ideas, or quietly hold a group together when things get messy.

After leading different engineering teams and organizations, I’ve seen the same profiles appear again and again, regardless of title or tech stack. These profiles shape how teams perform, where they get stuck, and how they grow. Over time, I began to think of them as archetypes of engineering talent: Patterns of behavior and impact that show up in every healthy software team.

Read More