The spiral model consists of progressive iterations to achieve the end goal. It has evolved from the more structured Waterfall model. At a broad level, the spiral development methodology includes the following phases:
- a) Pre development
- b) Development
- c) Post Development
Each of these phases is performed iteratively in delivering the solution. Below is a more detailed look at each phase.
a) Pre-Development All activities and tasks performed before the actual coding is done are clubbed in the pre-development phase. The pre-development is divided into:
- Gap Analysis: An in-depth study of the client requirements is undertaken and on the basis of which solution is proposed.
- Functional Specifications Document: The proposed solution is documented in the form of a functional specification document. Each feature that is available in the solution and how they work and interact within the system as a whole is also documented. Prototypes or wireframes for the proposed solutions are also developed giving shape to the solution and providing clients with a feel of the final solution.
We move on to the next stage only after approval of the functional specification document from the client.
- DB Design: After client approval on the FSD, the next step is to create and design the database structure of the solution based on the solution proposed in the FSD.
- GUI Finalization: The initial design concepts are decided upon and sent to the client for approval.
b) Development The development stage begins with the creation of the project plan and ends with the demo to the client. The stages include:
- Creation and Submission of Project Plan: The solution proposed in the FSD is broken down into tasks. The project team is identified and the timelines for each activity is laid down. The project plan is submitted to the client for approval.
- GUI Design: All unique pages in the solution are designed as per the GUI concept finalized in the pre-development phase.
- HTML conversion: Once the designs are ready, they are converted to HTML.
- Development Environment Setup: With the designs and HTML pages in places, the next step is to setup the development environment i.e. deciding on the technology/versions to be used, setting-up of project repositories etc.
- Coding: The next stage is the actual coding of the solution. Each developer works on his/her assigned tasks; at the end of which the work is integrated.
- Modular Testing: Modular testing is undertaken to ensure that the integrated system is bug free and functions as it was intended to.
- Demo: A demo of the tested modules is given to the client. Feedback and changes (is any) are incorporated. The number of client demos within a project is based upon the project duration, size. The project modules that are required to be completed for each demo are listed in the project plan.
Client approval is required before proceeding to the development of the next modules.
c) Post Development The post development phase is carried out when the development process is complete and client has approved of the work done so far. The post development stage involves:
- QA And Security testing: Quality checks are done to ensure that the solution conforms to the features and functionalities listed in the FSD. Security tests are conducted to ensure that the solution cannot be hacked.
- Beta Release: Once the QA and security tests are done the solution is delivered to the client for user acceptance testing (UAT).
- Debugging/Changes as per client feedback: Any issues identified and the feedback given by the client in the UAT is incorporated.
- Go Live: Upon client approval in the UAT, the solution is made live.
Following the spiral development methodology has several advantages. Which are:
- Client feedback and approval is sought through the project delivery; the clients are aware about the progress made.
- Client requests for changes/additions can be incorporated with ease