Concept: Construction Phase
Third of the four phases in the project lifecycle, Construction focuses on design, implementation and testing of functionalities to flesh out a complete system.
Main Description

Introduction

The purpose in this phase is to complete the development of the system based upon the baselined architecture.

There are objectives for the Construction phase that help us to have cost-efficient development of a complete product - an operational version of your system - that can be deployed in the user community [KRO03]:

  1. Iteratively develop a complete product that is ready to transition to its user community. Describe remaining requirements, fill in design details, complete the implementation and test the software. Release the first operational version (beta) of the system and determine if users are ready for the application to be deployed.
  2. Minimize development costs and achieve some degree of parallelism. Optimize resources and leverage development parallelism between developers or teams of developers, by for example, assigning components that can be developed independently of one another.

The following table summarizes the Construction phase objectives and what activities address each objective:



Phase objectives

Activities addressing objectives

Iteratively develop a complete product that is ready to transition to its user community

Refine the Architecture
Manage Requirements
Develop Solution (for requirement)(within context)
Validate Build

Minimize development costs and achieve some degree of parallelism

Manage Iteration
Develop Solution (for requirement)(within context)
Validate Build



Key Considerations

Typically, Construction phase has more iterations than the other phases (two to four), varying on the types of projects:

  • simple project - one iteration to build the product (to a beta release)
  • more substantial project - one iteration to expose a partial system, and one to mature it to a beta testing
  • large project - three or more iterations, given the size of the project (number of requirements to implement for a beta release)