Showing posts with label continuous improvements. Show all posts
Showing posts with label continuous improvements. Show all posts

Thursday, April 10, 2025

Why Your Brilliant Ideas Fall Flat (And How to Fix It)

We all know the drill: refactoring makes our code easier to understand, static analysis points out complex areas and code smells, tests help us track and improve our code's coverage, and Domain-Driven Design lets us build code that directly reflects the business rules. Sounds logical, right? Yet, we often find it tough to convince managers, product owners, and other stakeholders of the value in these practices. What's even more puzzling is that we usually have no problem getting fellow developers on board.

Tuesday, April 1, 2025

When 'Best Practices' Bite You

I know it's a cliché, but there's no silver bullet. Is refactoring always worth it? No. Is Test-Driven Development always beneficial? Of course not. Should you always add test scenarios to cover every known gap? No. Should automated tests be your goal in every project? Again, no.

Don't get me wrong, I'm far from advocating against these solutions. In fact, I recommend quite the opposite; you should have a compelling reason not to use them. And trust me, your project is likely not as unique as you think. In most cases, developers' arguments against these practices are excuses, not justifications.

However, we should give each decision a moment of reflection and assess whether the benefits truly outweigh the costs. Even your favorite approaches can increase costs and slow down implementation at best, or render it unprofitable at worst.

Wednesday, March 26, 2025

Dealing with legacy is more than the right architecture

So, picture this: you're stuck working on this old, massive monolith, and for years, it's the same old story – we gotta fix this, 'cause delivery's crawling, and keeping developers happy (or even hiring new ones!) is a nightmare.

Tuesday, March 7, 2023

You can't stop degradation

There are a lot of patterns, techniques, and approaches that help to write understandable code and build an architecture possible to change. 

The difficult aspect of development is the fact that whatever you will do, the code and the architecture will degrade. 

The question is, why regardless of tries and efforts we cannot change that?