Project Manager train

Today many software projects fail because project managers do not receive any training, or the training that they received is not taught by people who have experience managing projects. Following are some advises that you may find useful:

1) Understand project success criteria.

At the beginning of the project, you must ask the customer how they determine whether this project is successful. You need to know which criteria, such as schedule, cost, or functionality, is important to them. Some customers want to have product on the market first to capture the market share, in that case schedule is very important. Some customers want high quality product due to the important of their operation volume and correctness. In that case quality is the most important. Remember that it is the customer who determine your project success and you must ask them.

2) Define product release criteria.

Early in the project, you must decide what criteria will determine whether or not the product is ready for release to the customer. You may want to base release criteria on specific functionality being fully implemented, number of defects has reduced to fewer counts or other indicators that the project has met its goals. Whatever criteria you choose, it should be realistic, measurable, and aligned with what your customers wants.

3) Be Honest.

Do not promise what you can not accomplish. Be honest with customer and team members and tell them what is realistically achievable. They may not like what you proposed but you need to persuade them that you are doing your best to meet their need.

4) Plan activities.

As project manager you must write down every activities needed to be done in the project plan. You must follow a planning process to estimate how long it will take, how much it will cost, how many people you will need, how to set priority and how to negotiate with customer etc. The time you spend in determine what is needed to manage the project will reduce the number of problems that you have to solve later in the project.

5) Decompose requirements into tasks.

Customer requirements are usually large, complex and difficult to estimate so you must break these requirements into multiple small tasks to helps you estimate them accurately, and determine what activities you must do and what activities you may not have thought of otherwise.

6) Set aside time for training

Every new project is a challenge and every team member must have the skills necessary to do work. You must set aside time early in the project for team members to receive training so they can be effective. The key focus of training is on removing the gap between the current skills of each team member and the skills required to perform project works. Although training budget is always limited, you must convince management that these skills are critical, if not performed effectively could jeopardize the successful performance of the project.

7) Monitor progress

Project manager must know what are the important things in a project and monitor them on a daily or weekly basis to ensure that they are progressing accordingly.

You must ask yourself: How is the project progressing against the schedule? How is the project progressing against budget? What kind of risk have been identified and how are they being managed? What new problems have arisen and how are they being managed? How is the project communicating with customers?

How quality is progressing on the project? How much time certain team members are spending on the project? How many defect will be fixed this week and next week? How many meetings that I have to go to?

As you can see, as project manager you must ask those questions because if you do not have the answers then things may get out of control and you can not fix it.

8) Plan for rework after testing.

Every software product has defects. After testing, you will find defects and you have to fix them before deliver to customer. This kind of rework (To fix defects) is usually not in your original project plan because you do not know how many defects you will have at the start of the project. You will need time and people for this kind of work. This will impact on your original schedule and cost so you must discuss that with both customer and team members to extend the delivery schedule and budget.

9) Continuously improving the process.

Team members are always busy with their project works but if you want to build better software with fewer defects, you must invest time to improve the process and eliminate the causes of defects. You must set aside some time from your busy project schedule for improvement because these changes will help your next project be more successful. That is why I never assign my team members 100% of their time to work on project but set aside about 20% to do process improvement.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University