I’m going to jump straight onto my soapbox: the world needs fewer architects. Am I suggesting that engineers of the world unite and overthrow these unjust overlords and reclaim software by the people, for the people? Well, yes, actually. Let’s round up all the architects and send them to a dark place with no whiteboards.
Is there room for reform in my plan? Maybe. I’m not hopeful though. It is a long and tortuous penance that must be exacted, and it will take all the concentration and commitment that an architect can muster. It may also include humiliation and a few slices of humble pie.
You might ask yourself, why has this bozo got a chip on his shoulder? Well let me tell you. The world is full of huge systems built on the watch of a network of highly talented architects performing due diligence and risk control. Yet, 5 years later all that remains is a few MLOCs of hell that not even consultants can be tempted to work on.
How does this happen? Was there a lack of boxes and arrows written down in some document? Was poor requirements management to blame? Hardly. Codebases become unmanageable not because of the high-level design decisions, but because of the low-level details. No UML drawing ever caused a maintainence clusterfuck (apologies to my mother for dropping the f-bomb). What destroys software is engineers. We do this. It’s us.
We write 100-line functions. We inherit for code reuse. We write 10-line comments instead of taking 15 minutes to discuss naming a variable. We don’t write tests. We rush to deadlines. We put third-party framework calls in the middle of our production code. We think multi-hour-long build times are acceptable. We copy/paste follow patterns.
No more. I’m out. Done. Finished. I no longer wish to be associated with this crap. But I have a cunning plan. Just like the architects, I want to solve this problem with job title. From now on, you can call me a microtect. You are welcome to join me on this crusade, of course. Viva la revolution!
Of course no revolution is complete without a manifesto, so without apology I offer my Microtecture Manifesto:
- Sweat the small stuff
- Small, loosely coupled over large, monolithic
- Prefer composition over inheritance
- Code is king
- Optimise for change
- Tight feedback loops
- Value people, not technology stacks
- Value reducing lines of code over adding more code
- Name stuff good [sic]
Remember kids, take care of the pennies and the pounds take care of themselves.