Andrew Ferrier

Economics; Travel; Film; and Technology.

Source Code Crazy

with one comment

I’ve thought for a while that build, source-code management, and bug tracking software (which I’m collectively calling meta-software) could, and should, be so much simpler. I’ve written previously about my contention that bugs and features are the same thing, but the problem is wider. Software has a tendency to acquire features over time, and software that’s used to make other software is no exception. Here are some assorted thoughts about how to improve the situation:

  • Always use integrated source-code libraries and bug tracking. This is something that CMVC and other systems do excellently, and up till recently was fairly poorly served by the open-source software community, although projects such as Trac are doing a good job of closing this gap. The ability to see what changes are associated with what bug is invaluable. Anything else is a recipe for mistakes.
  • Get rid of all the excuses. There are only two valid reasons for permanently closing a bug: (i) it’s fixed; (ii) the developer disagrees that the change will improve the software for the user. Anything else isn’t OK. A corollary of my rule about bugs and features being the same thing is that bugs can’t be returned just because they are feature requests. All bugs that aren’t targeted for a release currently being worked on are still open bugs (just with a different target field). All bugs we don’t want to fix because they don’t seem sensible to fix right now (which could be marked as such) are still open bugs. All bugs in an external dependency are still bugs (the whole system doesn’t work). All bugs that can’t be recreated were seen once (assuming you trust your testers) and are still bugs. A good bug tracker is a database, and will let you see any subset of these any time you want, so no-one needs to get blamed unfairly.
  • Make sure each bug only has a few panic fields. ‘Severity’, ‘Importance’, ‘Priority’, ‘Ease of Recreation’, ‘Impact on Customer’, ‘Impact on Developer’, ‘Impact on Tester’ are all ambiguous. Pick a maximum of two, preferably just one, and make sure everyone knows exactly what they mean. After all, only one field really matters – how much does this affect the user of our software? Everything else should be secondary.
  • What Joel says about explaining off-buttons to uncles applies equally to the design of procedures around software development – everyone will think their exception to the process is vital until you’re drowning in exceptions. This relates more to conventions surrounding software development rather than meta-software itself, but it’s still relevant. Keep it simple – regular builds on a schedule everyone knows; keep everything in one place; reduce the number of parties required to make a decision about any change to the bare minimum. Scott Berkun has a lot to say about this in his excellent book The Art of Project Management.

Fundamentally, though, maybe none of the above will help. Meta-software is perhaps destined to suffer from featuritis more than other software precisely because usability is not so important for its userbase (in my experience, most developers don’t like bad interfaces, but can also cope with them). Only time will tell if developers will be set free.

Written by andrewferrier

December 12th, 2006 at 9:38 pm

Tagged with

One Response to 'Source Code Crazy'

Subscribe to comments with RSS or TrackBack to 'Source Code Crazy'.

  1. You’re right that theres no excuse for letting bugs fester, particularly as they can combine with new ones creating dangerous failures (eg the Therac-25)

    rusty

    2 Jan 07 at 22:01:56

Leave a Reply

online purchase proscarbuy proscar no prescription buy proscar fed ex fedex proscar without priscription non rx cheap Flomax Tamsulosin cheap mexican buy Flomax on line amex where can i buy Flomax without prescription buy cheap Flomax online free consult canada Flomax buy brand Flomax purchase Tamsulosin pay pal without rx where can i buy finpecia without a rx wholesale finpecia cheap 10 mg Buspar canada prednisone no prescription purchasing accutane 40 mg online without prescription free fedex delivery accutane 40 mg buy Finpecia without rx Flomax bestellen 5 mg Maxalt Lasix u.p.s shipping cod buy cheap generic Lasix online order prescription free Lasix buy cheap generic Lasix online order no online rx finpecia buy Maxalt online no prescription purchase maxalt prescription online what does valtrex look like buy Crestor no prescription low cost Valtrex espana Valtrex purchased online without prescription where to buy generic Amitriptyline online without a rx valtrex canada buy Buspar drugs Buspar no prescription overnight how to purchase valtrex how to get a prednisone prescription buy online Lasix without rx purchasing Antabuse without a script Proscar without rx Proscar buy online in stock buy generic Zithromax buy prednisone no visa without rx online purchase Prednisone buy Proscar online us pharmacy buy cheapest Valtrex wholesale valtrex cheap how to order Valtrex online without prescription no prescriptions needed for Prednisone buy next day Prednisone order Orlistat no visa buy Proscar online purchase Proscar online Buspar online without prescription best Buspar online pill buy Cytotec offshore no prescription fedex prednisone online next day shipping order cheapest online prednisone valtrex generic cheapest cheapest place to buy Buspar buy generic Maxalt online Cytotec online order saturday delivery purchase Cytotec online with overnight delivery buy Cytotec on line amex purchase cheap online Valtrex buy Valtrex legally how to buy Buspar without a prescription purchase finpecia pay pal online without prescription purchase Flomax without prescription needed generic Zithromax online buy Proscar now Buspar effects generic Orlistat uk comprare Buspar generico cheap order rx Valtrex buy valtrex where where can i buy herbal finpecia can you buy Cytotec in mexico buy cod Valtrex where can i buy herbal finpecia order finpecia no visa buy Valtrex no prescription low cost Valtrex tabletten how to buy Maxalt online without rx buy Bupropion uk 60 mg Orlistat buy cheap generic Orlistat online finpecia 1mg Valtrex buy fedex Rosuvastatin order online where to buy generic Cytotec online in canada how to buy Proscar online without rx non rx cheap Orlistat order finpecia overnight delivery buspar online consultant buy Orlistat online no rx no prescriptions needed for Prednisone Buy prednisone without a perscription to ship overnight Crestor precio buy valtrex free consultation valtrex for sale Crestor buy buy Crestor without doctor buy Prednisone with no prescription where to buy Zithromax Zithromax buy Zithromax no prescription Prednisone overnight buy Crestor no scams Crestor without rx order generic Crestor purchase Buspar money purchase Zithromax online order saturday delivery order Zithromax for cash on delivery order Valtrex on line Buy Valtrex online no membership U.S. pharmacies for prednisone without rx prednisone no script required express delivery Buspar pharmacy purchase Buspar pay pal without rx buy discount Valtrex on line Valtrex bestellen Valtrex online purchase overnight xenical without a rx free xenical Arimidex purchase buy 1 g mg Arimidex Orlistat without rx buy Valtrex no visa online without rx purchase Valtrex without a prescription overnight shipping cheap Buspar by money order