SoftwarePuzzler
 

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.