It’s often difficult to explain the complexities of building software to those who are more used to traditional manufacturing or development processes. Cranking out code just does not relate to building 1000 widgets. Therefore, we’re normally pretty hard pressed to find a way to communicate why projects seemingly always end up being over-budget and late.
This weekend’s experience with a garage door opener leads me to believe that the most applicable comparison is a home improvement project. This was supposed to be relatively simple project. I had a chain-drive opener that went bad, and a new one sitting in a box. Really, this should have involved 4 nuts. But of course, since the openers were from different manufacturers, nothing was compatible. Instead of just having to replace the drive, we replaced the rails, chain, mounting hardware, and the little warning system. Obviously, since I hadn’t planned on a massive overhaul of the system, I ended up having to make multiple trips to Lowes. Eventually, I ended up with a working door, but one that took 3x long and ended up costing a bit more than I planned. Sound familiar?
The real comparison is that like with software development, home improvment projects normally deal with areas of non-expertise. I’ve never installed a garage-door opener before. If I had, I would have done a lot of things differently, probably from the point where I bought the door. Software’s the same way. I have a good amount of experience writing software, but that’s like having a good amount of experience using a screw-driver and a drill. I know how to use the language, I know a lot about the other available libraries, but I’ve never applied them in that manner before. That’s where the real excitement and the challenge lies. Often, what seems simple on the surface opens a rabit-hole. Some times, things are as easy as they seem. You just never know how it’ll turn out until it’s done.
So the next time you’re boss asks what took so long, as them what happened on their last DIY project. It’ll be a good starting point to gain a common understanding.
Did you like this? Please share:
On Leaving Startup Life
Musings on the transition from being in a startup to working for a very large company.
Another new Manager Challenge: Managers Have a More Stakeholders
Bad managers never shift from the mindset of an individual contributor. Great managers broaden the number of stakeholders when making decisions.
Self-Evaluating Success as a Manager
In the first part of my series on understanding the difference between management and contribution, I focus on the challenges of evaluating success.