Taking Pride In The Basics
We're all about the new and the shiny and the cool and the exciting in the software industry. But the reality of software development is that, on a day-to-day basis, what most of us are working on is mundane.
For all the A.I.-this and Elastic-that, most software is workaday, with maybe hundreds or thousands of regular users, not millions (or billions), performing tasks that not so long ago - in my lifetime, certainly - were performed by ordinary people. Adding stuff up. Producing reports of said added-up stuff. Putting copies of said reports-of-added-up-stuff in people's in-trays. And so on.
So mind-numbingly dull is the average software problem domain that we might forgive talented and motivated developers for trying to get their kicks from interesting Raspberry Pi-based side projects, or from spicing up their paid work by secretly developing a cool MVC framework as part of it.
This was me early in my career. I just wanted to work on cool stuff. Sadly, cool stuff don't necessarily pay the bills. So I would "slum it" working on the adding-stuff-up-and-putting-it-in-a-report stuff and do cool stuff on the weekends.
But as I evolved as a developer, I looked beyond the mundane, workaday nature of what I was creating. I saw the "coolness" not in what we were building, but how we were building it, and how good the end product could be. How useful, how usable, how reliable, how robust, how easy to change when change inevitably came.
领英推荐
Over time, I took more and more pride in doing a better and better job of everyday code. Someone's got to do that job, and if the job's worth doing...
If you want to know how good a chef really is, don't ask them to cook you Chilean sea bass with a basil pea puree. Ask them to make you a plain omelette. There are plenty of places to hide in cooking sophisticated food. With an omelette, not so much.
I've seen some very sophisticated applications that were very poorly engineered. Horrendous user experiences and buggy as hell, with the inevitable less-than-enthusiastic user support that tends to accompany that level of code quality. I learned to fear every update.
As a trainer and mentor to developers, I've learned to recognise taking pride in the basics as a sign of growing maturity. Sure, it's just the software equivalent of a burger and fries, not sous vide fillet of beef, but there's burgers and then there's burgers.
When we stop caring about the burger, that's when this "trivial" stuff comes to bite us and our customers. In software, if you're planning on releasing it to real end users, there's no such thing as trivial. It's all worthy of your best efforts.
Recruiting better developers.
1 年I appreciate your insights here, but as a follow on question, how can we encourage the maturity you mention? Can it be coaxed externally or must it come from a realisation within?
Senior Software Engineer & Coach
1 年The talent is to be able to solve the right problem with simplicity.?
Empowering engineering leaders to release faster and lead with confidence ?? DM me to learn more ? Engineering Expert ? Coach ? XPer ? Top Mentor ? SuperDad? ? Author ? Speaker
1 年That AI render is so good