Sunday, 19 February 2012

How to implement best practices with the .NET Framework

One area that I know I’ve needed to improve is implementing some best practices within a team of developers.
The areas I am aiming to improve are:
  1. Developers being forced to use a code analysis tool, instead of ignoring the warnings
  2. Run unit tests or integration tests on a regular basis without developer intervention
  3. A way to build, package and deploy them without user intervention – including databases
  4. A report to generate automated processes
  5. (Optional) Developers following some kind of coding convention
My only interaction with any tool that pulls this together (via manual intervention to my experience) was Team Foundation Server. Since this was the choice of most clients I had worked with, I was interested in improving my own skills so that when new or existing projects come along, I could implement some standards. Therefore code quality and development become my main priorities. Manual intervention would be little or none.
I have read Rapid Development by Steve McConnell. This book to me was a bible of information on project management, team building and development practices. However I found that many of the examples were widely applicable, giving no examples of technologies due to its generality. RD is very broadly applicable to all development practices, but with this purchase I was specifically looking for something with products, processes and examples to implement them with.
I’ve started reading a book called Pro .NET Best Practices and this was exactly what I was after.
‘Best Practices’ is not a term the author chooses to use. Instead, he chose ‘Ruthlessly Helpful’ – the title of his blog site.
‘Best’ implies there is nothing better. However, a ‘better’ practice may suffice as each practice is different to one another. Some work better with small teams, some with bigger teams. The author chose ‘Ruthless’ – something that requires thought and consideration which will be able to you and your team size.
But by adding ‘Helpful’ also implies that the process will only serve as a benefit to you and your team. Whether you want to reduce bugs, improve product delivery or automate your deployment, any helpful practice is one worthy of consideration.
And so the term ‘Ruthlessly Helpful’ was born.
Pro .NET Best Practices covers a whole plethora of information for applying the development lifecycle properly. Everything from the tools used for development of the product, right through to the deliverable. This book isn’t another book full of code examples – although many are provided for clarity. The books goal is to educate and motivate readers on better practices of software development.
I see it has all 5 star ratings on the site. And it is well deserved!