Software Development Life Cycle
A software development methodology is the process used in software development. Each methodology is made up of one, or multiple, of each of the following phases:
Requirements Gathering
This is the stage where, if you are being contracted you would either confer with the client over one or multiple sessions to determine exactly what software they need. For some methedologies this would happen multiple times throughout the development process. This is necessary, not only so you know what the client wants and so the planning stage can commence, but also because the requirements can be used to create a quote for the client so they know how much your sevices will cost. This means that no matter what methedology you are using, the process must start with a thorough conference with the client to gather requirements
Planning
The planning stage sets out the order that certain goals will be achived and assigns tasks to different people. When planning it is necessary to:
Establish scope: You need to determine what the project will and will not include to prevent going over budget
Allocate resources: Allocate the human, technological, and monetary recouces you have avaliable to the necessary parts of the project
Develop a timeline: Create a timeline that shows in what order you will have completed key phases of the project and approximates times
All of the above must then be outlined in a comprehensive document
Design
The design phase is where you decide and map out out how the software will function and look. This is necessary because, no matter what methodology you are using, this phase provides a blueprint for the developers. For some methodologies, designers will return to the client several times to confirm or refine how the finshed project will look, ensuring that the architecture and user interface align with their vision. Not only does this ensure smooth development later on, but it also allows for early adjustments before coding begins, saving time and costs in the long run.
Implementation
The implementation phase is where the actual coding of the software takes place based on the design documents. This is the stage where developers write and test the code, following the specifications agreed upon during the design phase. Depending on the methodology used, implementation may occur in one go, or in iterative cycles where parts of the system are developed and reviewed in stages. Regardless of the approach, developers must work closely with the design and testing teams to ensure the software functions as intended, and any issues can be addressed promptly. This phase turns the plans into a working product.
Evaluation
The evaluation phase is where the software is tested and reviewed to ensure it meets the client's requirements and functions as expected. This stage involves thorough testing, including checking for bugs, performance issues, and whether the software delivers on the agreed-upon objectives. Depending on the development methodology, evaluation can be ongoing or happen after full implementation. It may also involve gathering feedback from the client and end users to confirm that the software performs well in real-world scenarios. Any necessary adjustments or refinements are made here, ensuring the final product is polished and ready for release.
An example of a methodology:
Waterfall
When using a waterfall development methodology, each phase is completed in it's entirety and then the next phase is moved on to as illustrated in this diagram:
This methodology can have drawbacks, for example the client must know exactly what they want from the very begining.