While reading through The Problem with Programming, an interview with Bjarne Stroustrup, i found myself nodding enthusiastically with punctuated Amen’s and Uhhuh’s. The nub of the problem:
I think the real problem is that “we” (that is, we software developers) are in a permanent state of emergency, grasping at straws to get our work done.Â
which is exacerbated by
People reward developers who deliver software that is cheap, buggy, and first.Â
which brings me back to an earlier post: Don’t Panic. Seriously, that’s my first rule of programming. The only time you panic is when the word “Don’t” precedes it.
Panic implies all sorts of rush and confusion; which leads to hasty decisions [both technical and commercial] and promises; which ultimately leads to sub-standard software; which becomes the norm 🙁 Or worse yet, you can only deliver software in a state of panic…
But ’tis a mindset thing.
And of course, the often neglected side to the debate is from the end-user:
My super high-tech cell phone crashes fairly often, and it takes 2 minutes to reboot. Sometimes I wonder, what if this ever happens in an emergency situation?…in an emergency, 2 minutes is an eternity, and it can easily mean the difference between life and death. The list of our everyday software dependence could go on and on, yet whenever you buy a software package, you’re always forced to accept the “…as is…” terms. In other words, the software makers never take responsibility if their crappy creations are causing you damage. I don’t know of any other product category, which is sold on an “as is” basis. Only used cars perhaps…but even there you can find lemon laws, and dealers who are willing to sign a warranty.Â
I wonder if we, as developers, truly grok the impact of what we do [or don’t do] on society, aka enduser? More than mindset, it’s also an attitude of heart with which we enter into our profession, dare i say, calling. That same attitude which motivates us to work through every debate and every challenge we face [both internal and external] to deliver something reliable…
But don’t think i am getting it right *all the time* 🙂 I’m just learning, over time, what the goal should be and working towards that, slowly- but with intent.