There's not always a villianThe hardest problems to solve are cultural problems.
If there’s one thing I’ve noticed in my years of software development, it’s that most problems, or at least the difficult problems, aren’t technical. They also aren’t problems with people, per se.
The hardest problems to solve are cultural problems.
It’s often not the case that any individuals are overtly doing things to standin the way of improvement. But it’s that this more nebulous thing we often call “culture” stands in the way.
Here’s one example I’ve seen come up frequently on many teams:
- The team is struggling to produce bug-free software. The developers are all experienced, and know how to debug well. They’re using a good test automation pipeline. But there’s a tacit expectation that new features always take priority over bug fixes or process improvements. This has lead to the situation that developers have never built out the necessary monitoring and logging to be able to effectively identify and debug issues when they occur.
Nobody ever set out to prevent process improvement. And while new features are important, nobody ever set an explicit rule not to fix bugs first. There’s no super villian here we can blame. It’s more that, over time, the team, and the larger company, have found themself in this situation. It’s cultural.
Don't behave like a 2-year-old
Many software development teams seem stuck in the imitative stage, when it comes to business practices.
The broad application of software architecture principles
When I learn about a new architectural principle, I like to extrapolate the larger truth, and see if it applies to other domains.
Improve your software delivery