Project Management

The software engineer and the project manager provide complementary skills and work collaboratively on shared activities. The three main activities of the project manager are organizational liaison, personnel management, and project monitoring and control. The "Liaison" section discusses the project manager's role as a go-between for the technical team and agents who are not members of the technical team (such as project sponsors, users, IS management, vendors, and so on).

In the "Personnel Management" section, you will learn that this job entails working with personnel and human resources to hire, fire, and provide employees with professional development.

The "Monitor and Control" section explains that project monitoring involves tracking project progress relative to budget. Project control means implementing changes when progress is not satisfactory (such as training or revising project plans).

Complementary Activities

Assigning Staff to Tasks

Task assignment is fairly straightforward. The major tasks are to define the tasks and skills needed, list skills and availability of potential project members, and match people to tasks. The project manager and SE actually begin discussing possible project staff when they are planning the project and tentatively assigning people to tasks. Then the project manager's real work begins. 

The hard part of an assignment is the judgment required to match people whose skills are not an exact match for those needed; this is the usual case. For instance, you might want two programmer analysts with the following list of skills:

  • design and programming experience on a similar application 
  • three to five years experience in the operational environment 
  • one to two years of experience with the database software 
  • managerial experience for two to four people 
  • known for high quality work 
  • known as an easy-going personality

Suppose your manager gives you a junior programmer right out of a training program, an analyst who does not program and who has no operational environment, database, or managerial experience, and a senior programmer who does no design, is known to be difficult, and sometimes does high quality work. 

The good news is that you have three people instead of two. The bad news is no one of them has all of the qualifications you want. What do you do? This is what management is all about.

The project manager should get to know the team members well. This means assessing their position with the company, expectations on the project, specific role desired for the person, possible start and end dates for work, and personality or personal issues that might affect their work. Much of this information can be got from previous performance reviews. But nothing substitutes for discussing the information with the person. 

The project manager has responsibilities to his or her manager, the client sponsor, and to the rest of the project team to get the best, most qualified people possible. In these capacities, the project manager honestly discusses previous problems with the person, any personal problems that might detract the person's attention from work, and any outside jobs, school, or other commitments that might also hinder their commitment. The person and the project manager both should be given an opportunity to accept or reject the possibility of work. Even when there is no choice, it is also the responsibility of the project manager to make his or her expectations of quality and quantity of work clear. If the person will not report directly to the project manager, the person she or he will report to should also be at the meeting. In this way, everyone knows exactly what was said and what commitments were (or were not) made. 

The answer to the task assignment problem above is to assign the tasks to best fit the skills. Assign the senior person responsibility for the work of the junior one, and provide motivation and incentives for quality work (see the following section on motivation). You also alter the schedule, if needed, to more closely mirror the actual skills of the team.

The heuristics, or rules of thumb, for personnel assignment are as follows:

1. Assign the best people to the most complex tasks from the critical path. Assign all critical path tasks. As the experience and skill levels of people decrease, assign less complex and smaller tasks. Do not give new, junior, or unqualified staff any tasks on the critical path. Assignment of senior people to critical tasks minimizes the risk of missing the target date. 

2. Define a sequence of work for each person to stay on the project for as long as their skill set is needed. Try to assign tasks that provide each person some skill development. 

3. Do not overcommit any person by assigning more tasks than they have time. Make sure each person will be busy, but allow time to finish one task before beginning another. 

4. Allow some idle time (2-5%) as a contingency for each person. Do not allow more than eight sequential hours (i.e., one day) of idle time for any person. 

5. Do not schedule any overtime. Scheduled overtime places unfair stress on people's professional and personal commitment and is a regular enough occurrence in development that it should not be scheduled at the outset.

The project manager is also responsible for coordinating movement from another assignment to the current development project. This coordination is done with the other project manager(s) involved and possibly the personnel department. New hires should be assigned a 'buddy' to help them get familiar with the company, its facilities, the computer environment, policies, and procedures. Senior staff should be assigned to mentor junior staff, encouraging the learning of new skills on the job. 

Finally, the project manager must ensure that each person understands the expectations and duties assigned to him or her. All staff should have a copy of their job description. They should know the extent of their user interaction, extent of their intraproject responsibility and communication, and policies about chain-of-command on who to go to with problems, project errors found, or problems with work assignments. 

Ideally, the team should be given an overview of the application, a chance to review the schedule, and an opportunity to comment on their ability to meet the deadlines assigned. If they cannot meet the deadlines and have reasonable explanations, the plan, schedule, and budget should be changed. In addition, any training or learning on-the-job that is required should result in a lengthening of the schedule. If the team members agree to the schedule, then they are committed to getting the work done within the time allowed and should be held accountable for that as part of their work assignment.