Table of Contents Previous Section Next Section

6.6 Architect's Role Versus Project Management

Software architects should understand the role of a project manager so that they can complement their manager's activity rather than either overlap with or obstruct the duties of the project manager. A project is an organized set of work activities with a defined beginning and an end directed toward a goal. The ultimate responsibility of a project manager is to achieve the project's goal within a specified set of constraints, typically a combination of time and cost. As such, a project manager's concerns are resource management, including ensuring that the right skills are in place to execute the project. If the project requires software development, a key resource will be a software architect who can effectively utilize project resources to deliver a quality product.

Project management's formal definition is the application of knowledge, skills, tools, and techniques to project activities in order to meet or exceed customer needs and expectations. This means that a project manager is ultimately responsible for project delivery on time, within budget, and according to the agreed-upon specifications. However, while the project manager hires personnel, the project manager is often not able to evaluate properly the potential personnel technical abilities or mentor them on the specific skills required to maximize their effectiveness. Similarly, while project managers create and manage the project schedule, additional input is frequently required to ensure that it is reasonable and that all appropriate development tasks are included with reasonable time frames.

Software architects are responsible for planning, staffing, directing, tracking, and controlling the technical tasks on a software development project. Furthermore, they are responsible for maintaining quality on technical tasks and establishing the project technical vision. This responsibility includes making sure that everyone is making the same technical tradeoffs such that they reinforce the project goals rather than interfere with tradeoffs made elsewhere in the project. Finally, as the technical coordinators, architects also engage in various team-building activities.

A number of project management activities require the support of the project's architect. Either the creation or detailed review of technical work plans is the architect's responsibility. Also, the documentation of the project's technical strategy and approach should be done and maintained throughout the project's life cycle. The architect must perform constant, honest identification of the project's technical challenges, risks, and progress. The project manager must report such information to other stakeholders but may lack the technical foundation to understand the true difficulty of some tasks. Along with this responsibility is the need to convey a pragmatic understanding of what needs to done to the project manager and also what can go wrong. Finally, the architect must always be an advocate of product quality to ensure long-term customer satisfaction even at the expense of short-term customer satisfaction gains.

Planning Phase

Initially, architects serve in the invaluable role of information gatherer for the project manager. The architects provide information on the high-level alternatives that can be used to develop a solution that satisfies the concept of operations. What the project managers will need is a discussion of the pros and cons of various operating environments, the risks and benefits of various technical approaches, and other information to form the basis for decision making. In addition, the work breakdown structures for hardware and software tasks must be provided by the architects. They should ensure that specific tasks are included to provide for project quality such as adequate software reviews, integration testing, and data quality inspections.

Architects are in a unique position to assist the project managers in the critical function of team building. The project managers conduct the same function on a broader level to ensure communication between the various project stakeholders including the software development team. The architects are focused more on making sure that the software development is actively involved and focused on servicing the needs of the end-users.

Analysis Phase

Software architects have a more active role in this phase to ensure a comprehensive understanding of the project functionality and requirements. It often falls to the architects to question and ensure adequate documentation of the project's nonfunctional requirements. For many projects, the architects must decide what parts of the system could best benefit from prototyping, developing such prototypes, and using them to validate user requirements. Finally, as the requirements become known, the architects should be documenting the possible alternatives in project implementation.

Implementation Phase

Architects assist the project managers in on-going project monitoring and inspection of deliverables. The architects have the responsibility of reviewing software deliverables to verify the quality of the design and code and also to confirm that the implementation is in accordance with the design and documentation.

Additionally, the architect is responsible for providing a factual assessment of development progress and the documentation and updating of technical risks throughout the project implementation.

    Table of Contents Previous Section Next Section