Explain the organization of software project team.
Software Project Team Organization
A project team, no matter what size, needs to differentiate among the various
roles played by team members. On small projects, several roles may be
performed by one person.
Project manager The project manager is responsible for orchestrating
the detailed technical work of the project, including development,
quality assurance, and user documentation. The project
manager is responsible for developing the project's software
development plan and is usually the development team's link to
upper management.
Product manager The product manager is responsible for integrating
project work at the business level. On commercial software
products, this work includes marketing, product packaging, end-user
documentation, end-user support, and the software itself.
On in-house projects, this work includes working with groups
that will use the system to define the software, setting up training
and user support, and planning for cut over to the new system.
Architect The architect is responsible for the conceptual integrity of the software at the design and implementation level.
User-interface designer The user-interface designer is responsible
for the conceptual integrity of the software at the level visible to
the user. On in-house projects, this role can be played by someone
from end-user support, user documentation, development,
or product management. On commercial products, it should be
performed by a user-interface specialist.
End-user liaison The end-user liaison is responsible for interacting
with end users throughout the projectwalking them
through the prototype, demonstrating new releases, eliciting user
feedback, and so on. This role can be performed by a developer,
product manager, or someone from end-user support.
Development Lead The development lead is the mid-point in the path between being a developer and being the solutions architect. They are still rooted in the reality of the code and the capabilities of the developers they have working on the project. They were once developers themselves and instead of spending all day every day coding their own tasks they now lead and mentor developers as the developers have problems that they don't understand.
Developers Developers are responsible for the detailed design
and implementation of the software. Developers are responsible
for making the software work.
QA/Testers The quality assurance personnel plan and manage
test activities, create detailed test plans, and perform tests. They
are responsible for finding all the ways to make the software
break. If the project is large enough, these people may have their
own QA lead or manager.
Tool smith The tool smith is responsible for developing build
scripts, maintaining the source-code control system, developing
specialized utilities needed by the project, and so on.
Build coordinator. The build coordinator is responsible for maintaining
and running the daily build (discussed in Chapter 14) and
for notifying developers when their source code breaks the build.
Risk officer The risk officer is assigned to watch for emerging
risks,
End-user documentation specialists These specialists are responsible
for generating help files, printed documentation, and other
instructional materials that end users will use.