Disclaimer: This post is tongue-in-cheek and meant to be a lighthearted poke at current development. Please do not take this post too seriously.
We developers love a good moan. We are drowning in free open source tooling that we can install and discard in seconds. We care not for the midnight oil burned by selfless open source maintainers who sacrifice their free time to make our lives easier. We complain about it, mock, and moan. We have easy jobs that provide us with a higher-than-average standard of living. Does this stop us from moaning? Does it heck! I’m now going to put the world to rights with my top moans of 2020.
Scrum has ended agile and is doing a very poor impersonation in its place.
The tenants of agile used to be this:
I have worked on several contracts recently, and agile 2.0 now looks like this:
If you have ever sat through an agile 2.0 retro, then you will have stuck some post-its into three imaginary swim lanes with names like:
You will have placed garbled scrawls on wasted post-its with barely legible hieroglyphics that state the same message as they did last time:
Why do we not just reuse the post-its and be more eco-friendly?
You will continue to do this until the world stops turning because agile 2.0 is not about adapting; it is about doing the same thing over and over.
I am 50 years old and have been a developer for longer than I care to mention. In this time, I have learned 679 ways to render HTML. At least once or twice a year, I learn a new way to render HTML and at least 2.3 frameworks to help me on this journey.
As the big hand of the clock turns onto 2021, server-side rendering is suddenly the new kid on the block. The single-page application is as gone as a dodo.
I seem to be learning about 1.2 bundlers per calendar year. Every bundler has the same goal in mind but is ever so slightly different than the last.
In Vietnam, they have a saying:
Same, same but different.
The above great saying instantly makes me think of development, where I continually learn new and cunning ways of achieving the very thing I first learned twenty years ago.
At one point when Ruby was cool, we all got a tattoo on our foreheads that stated “convention over configuration.” Revolution was in the air, and the old tired ways were replaced with the new. As is customary in development, the new methods have now been replaced with the old. Large sprawling XML files have been replaced with large sprawling JSON or YAML files that are of course ergonomically better.
Bundler configuration has replaced “convention over configuration” with “endless configuration over your sanity”. You will need to specify every iota of every single transform if you want your six-megabyte bundle which you spent six weeks code splitting and tree shaking to impress your peers and bankrupt your client. A major version bump of one of the leading bundlers can derail even the best agile project as you come to terms with the carpet being pulled out from under you as the ten thousand lines of configuration are now worthless and will need to be rewritten from top to bottom.
Is it just me or are we writing considerably more code that spans many different invisible boundaries of complexity? There was a tale that artificial intelligence would replace developers, and a business analyst would speak into a smart computer describing what the application should do, and out would pop a shrink-wrapped web application ready for production use.
The needle has hardly moved, and here we are typing as fast as our bruised fingers will let us as we hurry to meet the imaginary SCRUM story points that are after all “only estimates” and not let the team down.
My review of 2020 is now complete. What a shockingly similar year it was to 2019 in a development sense.
Now let us raise a glass and toast the new era of doing exactly the same thing only in an ever so slightly different way in 2021. I, for one, cannot wait.
Happy New Year!
Same, same… but different.
Install LogRocket via npm or script tag.
LogRocket.init() must be called client-side, not
Angular’s new `defer` feature, introduced in Angular 17, can help us optimize the delivery of our apps to end users.
ElectricSQL is a cool piece of software with immense potential. It gives developers the ability to build a true local-first application.
Leptos is an amazing Rust web frontend framework that makes it easier to build scalable, performant apps with beautiful, declarative UIs.