Wednesday, March 21, 2012

Software development and the dangers of the word "Done"

People like using the word "done" and with good reason - if something is "done" it means we no longer have to worry about it and we can get on with the next task - its a decisive and positive word. But this word is usually misleading and in the real world, software development tasks are very rarely "done".

To say that a software development task is "done" tends to send a message to the project manager and client that the specific user story or feature will never need any revision and is completely free from errors. This is almost certainly not the case. It's a good assumption that new code will contain errors, even if you haven't found them yet and you can be pretty sure that when the new feature is demonstrated to the client or as soon as real people start to use the system, changes will be required.

And at the engineering level, well organized code will generally adhere to the DRY (dont repeat yourself) principal. This means that engineers will try to 'abstract' code, functions and structures to be as general as possible so that they are used as often as possible. This implies that although a feature may appear unchanged from one version to the next, the engineers really know that actually a lot of the underlying code may well have changed and although unit testing can 'positively' test and confirm consistent behaviour, a good dose of manual testing will do no harm.

But this article is not about code organization or testing techniques, it is about why we should try not to use the word "done". When we say this word, we probably really mean: "done to the point where another task is of higher priority". If this definition of "done" is generally accepted then project managers and clients can continue as usual, but should not be alarmed when something marked as "done" contains bugs, needs changing or the code requires rework.


  1. Interesting thoughts. So, in your opinion, when we could say "done" to our client ? I am working in a big software development company Nix Solutions that's why it's interesting for me.

    1. Big data is a term that describes the large volume of data – both structured and unstructured – that inundates a business on a day-to-day basis. big data projects for students But it’s not the amount of data that’s important.Project Center in Chennai

      Python Training in Chennai Python Training in Chennai The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training Project Centers in Chennai

  2. To focus in on a solid firm, think about the items and administrations offered by every firm. Likewise check its past certifications. Be that as it may, a careful check of association's experts and their expertise set is an absolute necessity. Different variables you can consider incorporate framework, opportune conveyance, client invitingness and so on. useful reference

  3. Well, yaeh. Before the word "Done" should be the most carefull testing period ever. For this purpose I'm using this guys

  4. Very useful site with any programmer you need

  5. Now you can win free stuff online, free giveaways, enter every day to win latest iphones, smartphones, macbooks, laptops, accessories, technology and much more.

    Participate, Win & Keep A Free Apple iPhone XS

  6. Get your hands on unlimited pc & mac torrent applications. You can easily download and install these premium applications on your macbook Teamviewer Crack

  7. This is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article.

    Website Design and Development Company

    Website Design Company

    Website Development Company

    Wordpress Customization comapany

    SEO Company

    digital marketing company

  8. Very good points you wrote here..Great stuff...I think you've made some truly interesting points.Keep up the good work. So Website Scraper Software


  9. Both of these assertions lead to the possibility that Agile Software Development invites changes from clients and different partners in the undertaking. software consultancy

  10. Great job for publishing such a nice article. Your article isn’t only useful but it is additionally really informative. creative website development service providers USA Thank you because you have been willing to share information with us.

  11. The Best Casinos in USA - APRCasino
    It is one of the most well-known 토토 사이트 casino casinos, aprcasino and it is owned and worrione operated by the Rincon Band of Luiseno Indians. There are over 100 different