Roles
Introduction
Developers will quite naturally take on different roles during a software development project. This is not a bad thing, but helps ensure that important responsibilities are not ignored or forgotten. It also lets the developers focus on a few tasks at once, and ignore others.
A number of roles are almost always part of a development project. They are presented here, along with the responsibilities and duties that come with the role.
Architect
The architect decides how languages and components are used together to fulfill the system requirements.
Prerequisites
- Customer
Responsibilities
- Capture requirements
- Formalize the requirements
- Construct the system
Result
- Project dictionary
- Requirements specification
- Architectural description
- Language specifications
Designer
The designer is responsible for the design and implementation of individual components.
Prerequisites
- Language specifications
Responsibilities
- Design the component
- Implement the component
- Test the component
Result
- Component implementation
- Design documentation
- Code documentation
- Automatic build scripts
- Automatic test scripts
Configuration Manager
The configuration manager handles configurations, releases and deliveries.
Prerequisites
- System architecture
- Component implementations
- System test results (before Delivery)
Responsibilities
- Integrate
- Create configuration
- Create release
- Create delivery
Result
- CM manual
- Installation manual
- Controlled build and development environment
- Automatic system build scripts
- Configurations
- Releases
- Deliveries
- Configuration and delivery documentation
Tester
The tester is in charge of the system testing.
Prerequisites
- Language specifications
- Release
Responsibilities
- Create system tests
- Install release
- Run tests on release
Result
- System tests
- Bug reports
- System test report
Project Manager
The project manager ensures that the project runs as smooth as possible.
Prerequisites
- Customer
- Business organisation
Responsibilities
- Plan time and resource usage
- Track project risks
- Report project status to stakeholders
- Mandate the use of processes
- Make sure product quality is maintained
Result
- Project success
Programmer is not a Role
Programmer is not a distinct role in a software development project, but instead everyone involved is more or less a programmer. The configuration manager writes build and installtion scripts, the tester writes automatic test suites and the designer implements components. These are all programming tasks.