Monday, April 21, 2008

Delivering Successful IT Projects!

Not necessarily in order of importance, here are what I have found to be important in delivering successful IT projects:
1. Have a strong Change Control process that all the stake holders agree to and respect to the letter. Keep it simple but ensure all changes are captured, dealt with and reported. The biggest risk to any project is changes to requirements that generate re-work and delays.
2. Have a good business analyst to capture requirements and ensure this BA has access to actual end users of the intended system. Any layer of indirection between end users and BA increases the risk of important details being lost.
3. Ensure that 'rainy days' scenarios are captured as well as 'sunny days' ones: error handling quite often represents half the code in a system so if you don't plan for it, you don't plan for half your project.
4. Ensure all the stake holders report good and bad things to you in a timely fashion, or in the words of a project manager I used to work with: "it doesn't matter if news are good or bad, I don't want any surprises".
5. Don't under-estimate testing, whether it'd be unit, system, integration, performance, user acceptance or any other testing. Once you've estimated it, double your estimate and don't forget defects will have to be corrected which will add more development and regression testing.
6. Corollary to 5: make sure you have a good defect tracking system and a good test manager.
7. If possible, release your system in small manageable iterations rather than one 'big bang' release to get feedback early and ensure you can take corrective action if needed.
8. Ensure you have a good architect who understands the technology you're using and will take the role of the 'surgeon' as described in The Mythical Man Month by Fred Brooks.
9. Don't believe a salesman who says 'our product is the best thing since sliced bread and can do everything you need'. Get your trusted architect to talk to their techies and qualify that claim. 10. Take the whole team out for a drink from time to time and make sure they feel comfortable talking about everything, good and bad. And number 0: don't forget the KISS principle.

No comments: