DONE – when done means DONE

When is something done?  What does DONE mean?

In the teams of software development, here is a definition that can apply to this process:

Definition of Done

The meaning of done is an agreed upon list of the activities necessary to get product increment to a production ready state.

  • Development completed
  • Passed code and peer review (Pull Request in BitBucket)
  • All Technical documentation is created and stored in the source repository
  • Sanity check to confirm technical debt is identified and logged in the tech debt register identified and logged/recorded?
  • Testing has been completed and no issues logged against acceptance tests.
  • Deployed and tested against the acceptance criteria in a valid environment
  • All non-functional requirements have been met
  • Regression test packs updated
  • Update tickets, including documentation, annotation and outcomes
  • Product owner/Business Designer has signed off the work.
  • Release to Production

These are the necessary steps that apply to the development process where every you work

Remember, Remember to finish off – When is DONE?

As a developer how often do you say to someone that some development is DONE?

To you as the developer, in your head, you have covered everything you need to, well you think you have, so it is DONE.  What would the Project Manager say to your work, would it be Done?  But worst of all what would the end users say, what is done to them?

All three DONE’s above is totally different

Developer DONE:   “Done all I can do to make it work and I think it is all working as per the requirements.”

Project Manager DONE:  “We have unit tested, and everything fits the requirements.” 

Users DONE:  “I have an application that works!”

So to help the process along here are a few things that the developers need to consider before saying anything is done.

 

Browser Validation 

Does the Web application working in all Browsers, not forgetting how much time you need to spend developing a web application

Remember to test in IE6, IE7 & IE8, not forgetting Firefox, Safari, and Chrome, and what about those mobiles?  Who is the end user and what will they be using?

 

Maximum Characters

Will the application break if the number of characters goes over what the database can handle for that field?

 

Resource Files

Always remember the text you type in will be changed, you can count on it, so make sure everything is held in the resource file?

 

Unit Testing

Okay, stop laughing, when do you have time to write unit testing in your application?  Or more to the point if you application is not running using MVC the user interface is going to be a bugger to test.

 

Environment Validation

Don’t just presume that the configuration file is going to contain the correct information, perform validation check on start up to ensure that you have all the information you need to get the application going.  Otherwise when it goes off to production you can bet that those operators will change the configuration file and things will start to fall over. 

 

Sanity Check 

Just before you tell your project manager you are DONE, just get one of your colleagues to try out your code just in case you may have missed something.

 

What does the Enter Key Do?

Check and recheck to see what happens when you press the Enter Key on each page, as developers we might miss the Enter key, but you’ll find the most end users will us the Enter key then they are Done on that page.

 

Reusability

Has the code been written so it can be reused at a later stage?  You don’t want to always have to reinvent the wheel, when you already have one made. 

 

Comments

As a rule of thumb I always have the warning message set within Visual Studio letting me know if I have missed out any comments.  Also a little tool worth getting is the Ghost Doc by Roland Weigelt, as this will save you so much time.

 

Markup Validation

Check to make sure all your Markup is validated, this is quite simple, just run your website at http://validator.w3.org/ 

 

Sign off

Release to ownership of your code, get someone to take responsibility of the next phase, get someone to sign off your code. 

 

 

These are only a few things to consider when you think you are DONE, as a rule of thumb I never tell anyone I am done, I wait until someone else says it is done.

 

Another good source for producing High Quality Website can be found here