Doing Hard Things
Proper software is hard. It is a never-ending war. Doing the right things means teaching, socializing, influencing, enforcing, convincing, pushing back, standing your ground, and giving all sweat and blood to make the right things happen.
The best things in software are HARD:
- Doing the right design
- Keeping discipline to write tests and have high diversity and coverage
- Calling out and teaching team members about poor practices and wrong beliefs.
- Pushing back poorly written tickets and requirements
- Saying NO to “false shortcuts” (that lead to anti-patterns and tech debt)
- Doing the right things every day (invisible ant work)
Perhaps the most difficult thing ever is dealing with monoliths and distributed monoliths. Modernization requires a very specific and disciplined approach that is hard to do right. It requires patience, persistence, and a lot of hard work.
I’m convinced Distributed Monoliths are the #1 enemy of modern software architecture. Spawned across:
Architects must do HARD THINGS all the time.