Andrew Ferrier

Economics; Travel; Film; and Technology.

Software Change Management Should Change

with 4 comments

Almost all software, whether it be public domain, open-source, or commercial, is not just released once. Typically it goes through many versions, changing (and hopefully improving) each time, sometimes adding features, sometimes removing bugs or problems, sometimes introducing new ones. This change is normally managed (at least for larger software systems) using two or three elements:

  • Version control systems (also called source control or library systems). These are typically used to keep track of different versions of source-code, enabling previous versions to be retrieved, different parts of the software to be merged together, and so on. CVS is a well-known open source example.
  • Bug tracking systems (bugs are sometimes called defects). These are used to keep a list of all the outstanding bugs and details about them. Bugzilla is a well-known open-source example.
  • Feature or requirement tracking systems. These are used to track new features that need to be added to the software (wherever they may come from).

In some cases, these systems may be integrated, in other cases not (integrated systems are normally more useful: for example, you can easily ask the question: ‘when this bug was fixed, what code changed?’).

Currently, commercial software companies often follow something akin to a waterfall model and treat features as long-term work items and bugs as short-term (as an aside, the original inventor of the waterfall model didn’t believe in its effectiveness). This is a risky game to play if your competitor can implement new features before your model allows you to. It’s likely that as commercial software becomes under increasing pressure from open-source competitors, often using nimble development methods such as agile programming, commerical software production companies will need to turn around production of new versions with new features faster than before to survive.

One of the mismatches occurs in treating bugs and features independently. Bugs take time to fix. Features take time to implement. In a sense, both are actually customer requirements, even if the customer hasn’t asked for them. Bugs customers won’t notice shouldn’t be fixed, and bugs they will notice will become a requirement even if they haven’t noticed them yet. Features either the customer has asked for or you think they may want should be implemented. Features that only you want are a waste of time. Bugs that your customer thinks are bugs normally are, even if you want to call them a feature.

So this leads to my conclusion (and not everyone agrees): bugs and features are actually the same type of thing. They are both customer requirements and should be managed the same way, triaged the same way, and developer time assigned to them in the same way.

Many open-source projects already treat features and bugs like this. Firefox’s Bugzilla, for example (in common with most Bugzilla installations), tracks features with a severity of ‘enhancement’. This probably isn’t ideal; features shouldn’t be treated as second-class citizens compared to bugs. But it’s a step in the right direction. This way, developers of Firefox see bugs and features as being of the same kin; lack of features cause some customers just as much pain as lack of bugfixes.

This issue is far from settled, and there are strong opinions out there that disagree with me. But it is clear that everyone involved in software development should be aware that this is not a solved problem.

Written by andrewferrier

July 24th, 2006 at 8:31 am

4 Responses to 'Software Change Management Should Change'

Subscribe to comments with RSS or TrackBack to 'Software Change Management Should Change'.

  1. By far the biggest difference between bugs/defects and customer “requirements” is that with few exceptions, everyone can agree that a defect is something which *should* work differently [whether it will be made to work that way depends on its severity etc] whereas requirements gather from customers are often of the nature “customer Y would like to have X” which says nothing of what customer Z would like in that area and may needs careful management, analysis and prioritisation before it becomes clear that it must be fixed.

    Of course, the real world is fuzzy and there is really a continuum here – I can think of many occassions where there was a bone fide bug that customer Y wanted fixed whereas customer Z absolutely did not want it fixed since it wasn’t impacting them (perhaps they had already worked around it, or do not exercise that functionality) and any potential fix could of course introduce further defects which customer Z wanted to avoid…

    dps

    26 Jul 06 at 23:07:26

  2. Hmm, that’s an interesting thought. However, I *can* think of bugs where there hasn’t been agreement on how they should work either :)

    Fundamentally, I agree with you – there is a continuum – just because I’m advocating treatings bugs and features as the same type of entity doesn’t mean we can’t have some being ‘problems’ and some being ‘new function’. To me, the most important thing is they should go through the same processes: kept in the same list, being reviewed and triaged together, their priorities mixed together, etc. Developers, when stuck for something to do, should always be able to go to this list and implement the highest-priority item on it, whether that be something new or fixing an existing problem.

    andrewferrier

    27 Jul 06 at 09:07:34

  3. You may be on to something here, since we’ve been finding out the same in our project at http://lemill.org where we do keep defects and enhancements in a single list, but separated. We’ve noticed that the line between defects and enhancements is a fuzzy one – of course, a defect reported by a developer most likely is quite technical in nature, but when the customer reports a bug, it’s usually more in the lines of “this needs to work differently”, and while sometimes it can be managed with a simple correction, other times whole layers of new functionality are needed, and effectively the defect is a huge enhancement. We haven’t yet solved this issue of how this should be handled.

    Tarmo Toikkanen

    17 Nov 06 at 11:11:41

  4. [...] 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: [...]

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