Inteks SEP divides every software development project into five following phases:
Main objectives of the Inception phase are to outline and document requirements for the future software and provide an estimate for the product development.
| Inception phase deliverables:|
|Technical proposal document containing:|
| Description of the software requirements|
| Outline of the system architecture|
| List of technologies to be used for project implementation|
| Preliminary project schedule and cost estimation|
| List of the risks which may affect development schedule and costs |
|Open issues document containing all the questions to be answered before the product implementation starts.|
Elaboration phase is usually performed as a single iteration, but the projects which need prototyping may require two phases. The goal of elaboration phase is to detail the requirements for the software to be developed, define system architecture and testing plan, conduct technological testing to choose the best possible way of the system implementation and eliminate risks connected with some technologies.
Optionally a prototype (or several prototypes) of the software system can be created during the elaboration phase. GUI prototype that shows the system behavior in terms of its user interface is the most common prototype developed during this phase. If some concepts described in requirements have to be proven we develop a functional prototype that can demonstrate not only GUI, but a sample of future application functionality. The situation when software requirements are changing during the development is not an unusual one. The way of storing and processing changes in the requirements and other customer wishes is also defined during elaboration phase.
| Elaboration phase deliverables:|
|Software Development Plan with clarified estimation|
|Software Requirements Specification (or detalization of Requirements section in Technical Proposal)|
|Software Architecture Document|
|Technological Testing Plan (optional)|
|Technological Testing Results (optional)|
|Product Acceptance Plan|
|Configuration Management Plan|
|Change and Requirements Management Plan|
|Risk List (actual version based on technological testing results)|
|Functional Prototype (optional)|
The goals of the Construction phase are to detail system design, code up the solution described in the software requirements during Elaboration phase and to test the solution developed. Construction is divided at least in two sub-phases – one implementation phase and one testing phase.
Depending on project size there can be more implementation and testing phases to give customers more control and provide them ability to see a real project progress.
Each sub-phase (either implementation or testing) ends with a milestone when delivery of implemented and/or tested code is performed.
At the end of Construction phase we deliver beta version that is stable, but may have some issues which are resolved during the Transition phase.
| Construction phase deliverables:|
|One or more deliverables of product integration builds (executable code delivered at the end of each implementation sub-phase)|
|Beta version executable, source code and installation package|
|Beta version testing report|
|User manual (optional)|
Transition phase is aimed to deliver a final software version to customer. Activities performed during transition phase are mostly polishing software system (i.e. fixing minor issues) and testing it for correctness and integrity.
| Transition phase deliverables:|
|Final version of user manual (optional)|
|Release version testing report|
|Final version of the source code, executables and installation package|
Support of a complex system consists of two different processes: development of new versions and day-by-day support which means fixing urgent bugs and collecting the requirements for new versions. Development of a new version is performed as described above: first four phases are performed with new requirements collected from users' feedback. Users' feedbacks are collected at the product web-site and then forwarded to the support team. For each fixed problem we deliver a new version of installation bundle and updated set of executable files which can be used as a patch for old version.