GCMSI considers the software development process as naturally partitioning into several stages, including:
- Planning Stage - building the business Structure for the project, understanding the project scope and initial requirements.
- Design Stage - refining the project requirements, establishing priorities, determining the risks involved and investigating approaches & setting a project schedule.
- Development Stage - designing, building, testing the code that implements larger modules of the project requirements, while refining the requirements to reflect increased clean object structure.
- Implementation - run extensive tests on the completed product specifically to detect bugs and error and correcting them.
These stages are not exclusive, they also may be repeated during the course of a larger project. The last two stages, in particular, may be repeated several times over the life span of an application. Various tools are available to assist with the different stages of the project, which provide details of the operation of the system from the standpoint of the user, make up an important part of the Design stage for systems centered around user interaction.