Wednesday, June 15, 2011

Software Development Best Practices


As a consultant in the software industry, I am always looking out for best practices, to help my clients put in place what is needed to build better software products.

A colleague of mine recently shared some best practices adopted by the Software Program Managers Network (or SPMN).

The 16 Critical Software Practices (which I like to refer to as best practices) were originally developed for large-scale DoD programs. At the same time, they are highly relevant to any software project (irrespective of size).

The 16 Critical Software Practices include:

Project Integrity
1. Adopt continuous program risk management
2. Estimate cost and schedule empirically
3. Use metrics to manage
4. Track earned value
5. Track defects against quality targets
6. Treat people as the most important resource

Construction Integrity
7. Adopt life cycle configuration management
8. Manage and trace requirements
9. Use system-based software design
10. Ensure data and database interoperability
11. Define and control interfaces
12. Design twice, code once
13. Assess reuse risks and costs

Product Stability and Integrity
14. Inspect requirements and design
15. Manage testing as a continuous process
16. Compile and smoke test frequently

I shared the above with a client of mine. He especially liked the "Design twice, code once" best practice, having been burned by poor designs on prior projects. Interestingly, "design twice, code once" is not much different than the old carpenter's mantra, "measure twice, cut once". In fact, these best practices are nothing new. Simply best practices applied to the art of software development.

The American painter Edward Simmons once said, "The difference between failure and success is doing a thing nearly right and doing a thing exactly right". This is true of painting. It is also true of software development. You can definitely increase the likelihood of success by following best practices such as these on your software project, regardless of which software development methodology you use (be it Agile, RUP, Iterative, Waterfall, etc.).



Post a Comment

8 comments:

Anonymous said...

Greetings I am so thrilled I found your blog,
I really found you by accident, while I was researching on Yahoo for
something else, Nonetheless I am here now and would just like to
say many thanks for a remarkable post and a all round exciting
blog (I also love the theme/design), I don't have time to browse it all at the minute but I have saved it and also added your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep up the awesome job.
Stop by my web site ; website monitoring service

Anonymous said...

Magnificent goods from you, man. I've understand your stuff previous to and you are just too fantastic. I actually like what you have acquired here, certainly like what you're
stating and the way in which you say it. You make it entertaining and you
still care for to keep it smart. I cant wait to
read much more from you. This is actually a great website.
My page: site here

Anonymous said...

Highly energetic blog, I liked that a lot. Will there be
a part 2?
Here is my weblog :: more

Anonymous said...

Nice post. I used to be checking constantly this blog and I am inspired!
Very useful info particularly the ultimate section :) I deal with such information a
lot. I was seeking this certain information for a very lengthy time.
Thank you and best of luck.

my web-site :: Get the facts

Anonymous said...

Hey very interesting blog!

Here is my webpage ... useful content

Anonymous said...

Hi there mates, its wonderful post concerning educationand
completely defined, keep it up all the time.


Feel free to surf to my page; Useful reference

Anonymous said...

Hey there! I'm at work surfing around your blog from my new iphone! Just wanted to say I love reading your blog and look forward to all your posts! Keep up the great work!

Feel free to visit my web page :: Find here
Also see my web page > click reference

Anonymous said...

Usually I do not read article on blogs, but I wish to say that this write-up very compelled me to try and do so!
Your writing style has been amazed me. Thank you, very great post.


Feel free to surf to my web-site - Bonuses