Wednesday, February 04, 2009

What's The Rush?

My Real World job has been hectic lately, with customer and internal issues colliding, and my individual time being a very valuable commodity for the various release managers.  Since some of the issues affect fielded releases, the Program Managers are keen to tell the customers when we will have a fix available for them.  So keen, in fact, they are telling them dates by which we will deliver said fixes.

Read that again.  The Program Managers are setting a schedule by which developers are to find, analyze, and fix a bug, and test that fix.

How do you handle something like this?  A total perversion of all that is Good and Holy in software development!

In better times, the best advice would be to look for another job.  As I'm writing this, that's not such good advice, so you have to tell your managers something, and do something in your process to handle this. (Kudos to you if you have a process that acknowledges bugs will exist) 

For the upward information flow, address it like car repairs - it doesn't matter how often the vehicle makes that funny noise if the mechanic isn't there to hear it - bugs need to be replicated where a developer can apply tools to extract information.  If you broke down on the highway, called your mechanic and asked him to diagnose the problem over the phone, she'd tell you to wait until the tow truck got the car back to the shop and she was able to hook up the analyzer.  Likewise with a bug in code, we need more data in most cases.

In addition, you need to make sure to emphasize that unless the software is very well factored, changes may have far-reaching side effects that need to be tested for.  This is especially important for complex programs, such as multi-threaded ones, or highly performance-optimized ones.

Once a bug is found, you sometimes find it's the loose thread in a knitted tangle disguised as a sweater.  It make take a long time to refactor the code to eliminate the root cause of the problem.  I can't say I've ever had success in getting this point across to anyone more than one level above me in any organization.

If all else fails, revert to the old proverb, "Haste makes waste"




Technorati Tags --
, , ,
HTTP

No comments: