The company’s software development process comprises several necessary phases irrespectively of the choice of model and methodology. These are:
- Acquaintance — acquiring clients requirements, preliminary estimation of necessary resources .
Output: preliminary project plan and technical scope of work, preliminary project cost
- Specification – detailed technical requirements and design specification are elaborated, final resources estimation is done.
Output: Agreement, Scope of Work, Testing Plan, initial Prototype (optional).
- Development – design implementation: coding and testing of the product, documentation writing.
Output: deliverable product, a set of test suites, test cycles execution results reports, full product documentation.
- Deployment — product packaging and delivery on client site, users’ training.
Output: released product, plans for next cycle.
- Support – this phase starts after the completion of a product development cycle and lasts until product end of life. It includes bug fixing and user support.
In many cases it’s hard to define full set of requirements for new software project. Then iterative approach for software life cycle can help if applied, when project development is planned as a set of iterations. Each iteration implements new requirements, appearing during project evolution. This approach mostly fits real needs of our clients and is the closest to us. See also software development page.