Monday, 26 May 2008

Are we there yet?


Photo by tonivc used under a Creative Commons license


Reaching the end of a project is always a very satisfying feeling for me. A few years ago, I got over that feeling of panic and dread that came from the belief that if a bug went in to production then the world would end; people would sue us; and puppies would die. That is quite ridiculous since there are ways to ensure those risks (I so dislike that word) are minimised.

Don't expect me to go in to why agile software development will save your life. There are many ways to assure yourself that the world won't implode because of you and they go from development methodologies to putting things in to perspective. Since many others will preach agile, I'll try give you perspective.

At university, I was lucky enough to have a programming lecturer who had worked in the real world and hadn't just read books (although I had plenty of the book types). His experience included working on implantable defibrillators. Imagine the machines they use in medical emergency shows, that are used to zap someone's heart when it stops beating. Everyone yells "stand back!" and then a huge charge is sent through two paddles in to the patients chest and hopefully the heart monitor starts blipping again. Now imagine they implant a tiny version of that so that if a heart patient's heart goes too fast or too slowly, they are zapped and encouraged to beat at a normal pace. Well, my lecturer was one of the embedded systems programmers who wrote the code that told the implanted device when to go boom.

Now, this would not be a useful story if there had not been a bug in their code. The thing is, their bug meant that they had to recall the device to replace the defective code. Think it through, recalling the device meant putting patients under the knife in order to remove and replace the defibrillator. Heart patients having unnecessary surgery is never a good thing but that's what had to be done to deploy the fix.

In our nice little worlds where a bug may cause a user to not be able to log in or to call up a helpdesk to get the account opened or not be able to update their GCC step count, it's probable that no one will die. If you do work in the other world where they could die then please ignore me. You are the minority. The rest of us can relax a little and breathe. Take your time to enjoy that you started and finished a project. Bathe in the glow of delivering software that will be used. After all, letting your heart rate rise too much might lead to the need for me to necessarily zap you.

No comments: