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.

Thursday, April 17, 2008

All about Delivery Management of software projects

Let's assume that you have talented software developers with the skills needed to develop your product. The answer may not be "agile " vs. "waterfall" development -- some experts like one, and some like another method. Organization maturity, clear project definition and repeatable project management processes often have much greater impacts on product delivery success. First, you need to know the maturity of the organization for which you will build the software. I refer you to Geoffrey Moore's Technology Adoption Life Cycle and the Software Engineering Institute to learn more about these topics. You can also find articles on my website. Second, while experts differ on the best software development method, most would agree that successful projects share many characteristics: - project is approved and funded (often overlooked!) - project has a business (management) sponsor - project has an IT sponsor - project has clear objectives - requirements are clearly written - requirements are traced throughout the project life cycle - key stakeholders are involved, and kept involved, throughout the project life cycle e.g., business, operations, subject matter experts, software end-users, etc. - project plan is defined and adjusted as needed (see change management below) - responsibilities are clearly defined - people are held accountable for certain activities and deliverables - project documentation is prepared, e.g., business case, project plan, requirements, design, configuration, data migration, integration, communication plan, business processes, training plan, "as built" specifications, maintenance and support plan, user documentation, help, etc. - project has a change management plan to avoid "scope creep" - project has a change budget to handle agreed-upon scope changes - project risks and contingencies are defined - communication and training occur at various steps of the project life cycle

Quality Project Management

Quality is not Cheap. High Quality, High cost and may consume large effort and time. The following are some of the best practices that can be looked into throughout the life cycle (immaterial of which development methodologies you follow) 1. Identify the a. Factors affecting the Product Quality (Product Quality is defined a Whether the products or services satisfy customer requirements0 b. Factors affecting the Process Quality ( process Quality is defined as whether the products or services are supplied economically) 2 Identify right set of Quality Control a. There are two types of Control. The first type of control consists of setting targets above existing levles and doing whatever is needed to attain these. b. The second type of control consists of keeping such characteristics as parts dimentions, when the target is fixed value and it is undesirable to either exceed or undershoot this value 3. This should be the first one. develop a Team vision and encourage all the team members to identify actions to achieve the Team vision. 4. "Team-work management". Team-work is the success factor for On-time delivery and Best Quality. hence Like Risk mgmt, technical mgmt, develop "Team-work management" to inculcate and transform the Team-work towards the success of the project 5. there could be many, which I can provide you time to time.


SCRUM and Agile are the very best development methodologies. Faster and efficient.
Project Managers in the Technical sphere need not worry about the 50% failure rate other projects have.

You have to invest something to gain something!

Here, learn the methodology.