There are many reasons why a project may fail or result in poor quality. Many of them may be attributed to all kinds of technical reasons, and we are often pretty quick to do so; technology is a convenient and nameless scapegoat. But authors and consultants such as Roger Pressman who have witnessed many projects can testify: "If a post-mortem [assessment] were to be conducted for every project, it is very likely that a consistent theme would be encountered : Project management was weak ." [1]
A Complex Role"People, product, process, project ”in that order," is how the same Roger Pressman defines the scope of software development project management.
In the very end, though, the manager of a software project will not be judged on good efforts, good intentions, using the right process, or having done everything "by the book," but on results . So throughout the lifecycle, the project manager should keep focused on the results, or any partial results that are getting the project closer to success. A RUP project is a collaborative effort of several parties, including the project manager. And within the very dynamic context of iterative development, the role of the project manager is more to "steer and adapt" than to "plan and track" (as often is the case in other domains). So the role of the project manager is complex and requires many different skills to be able to dynamically steer and adapt:
A Person or a Team?We tend to think of the project manager as one person. And in most small- to medium- sized projects (3 to 15 people), only one person will fulfill this role. But the RUP describes the project manager not as a person, but as a role that a person will play, and it is likely that on large projects, more than one person will play this role. There will still be reason to have one clear project leader, but that person should not feel the need to run all the RUP activities in the project management discipline. First, there can be a small team of people doing the project management. One can be focused on planning; another one can deal with some of the key communication interfaces, with product management or the customer; another one can follow internal progress. Note that some of this specialization is already acknowledged by the RUP, which defines more than one manager role; there are managers' roles with specialized expertise, for example, configuration manager, deployment manager, test manager, and process engineer. Also, for larger software development organizations, say 25 people or more, it is common to have the organization broken up into smaller teams , and each team lead will be delegated part of the project management role, relative to one team. In other words, the project manager has delegated some of the routine management and will get some "eyes and ears" all across the project. Finally, in larger projects, some groups can be set up to handle some of the management activities in a more formal way and to support the project manager:
These groups are set up with people of the right expertise and authority, sometimes with full-time people, and they operate when necessary to support the management group or when dictated by the process. |