SDLC Methodologies Discussion Board Responses
I’ve provided 3 discussions that need to be responded separately. This week’s discussion is the following ‘write a summary comparing and contrasting two SDLC methods’.
I want to discuss about few of the comparing and contrasting points between waterfall and V-model methodologies.
The main difference between waterfall model and V model is that in waterfall model, the testing activities are done once the development phase is completed whereas the testing activities are started initially with the first stage in V model (James, 2012). Therefore, waterfall model is considered as continuously iterative and V model as simultaneous process. Since the testing activities are done simultaneously in V model, the software which is made (designed) by using V model possess a smaller number of defects when compared to software made using waterfall model (Edwards, 2015). The software which is made by using V model process looks lower since it undergoes various types of testing activities simultaneously in contrast to waterfall model while doing a project. Whereas testing is done in waterfall model once the project is completed (James, 2012). Making changes in the software of waterfall model is costlier and difficult since the changes must be made to the whole project if any defects are found after testing (Because testing is done in the waterfall model after the completion of project). Whereas defects are initially identified and easily corrected in V model, due to its simultaneous testing process from starting stage (James, 2012). Therefore, one must use waterfall model if the requirements of user are fixed and remain unchanged in the development phase. V model methodology can be adopted if the requirements of the user keep changing and changes are included continuously. V model is also cheap to implement since the testing and development phase in this methodology are done simultaneously (Edwards, 2015).
I can finally say that one must use either waterfall or V model depending upon their user requirements. It is better to use waterfall model for small systems, because changes can be made easily even though any defects are found after testing. And the bigger systems must use V model exclusively since it can help in identifying defects and solve it simultaneously while developing the project (Edwards, 2015).
2-)In this discussion board, I would like to compare and contrast the Agile and Waterfall models. Waterfall model is one of the oldest models of Software development. Agile is one of the latest models for Software development. In the waterfall model, every phase is conducted in a sequential manner. Requirements are gathered for the entire project and refined first. Only after the requirement gathering and refinement are completed, the design phase is started. Agile methodology is an iterative methodology. Agile is not part of Project management framework. It is a set of principles and values required for successful product development. The deliverables are analyzed and developed in an incremental approach. “One key aim of Agile is to try to retain as much flexibility as possible throughout the development cycle” (Lonergan, 2016).
In an Agile model, the risks involved in faulty design are reduced considerably since the output is reviewed by the developers frequently and any changes required in the design are implemented immediately. In the Waterfall model, the requirements are clearly listed in the initial phases of the project and any changes required should come through the change control process. Large scale projects with considerable changes in the design should be implemented with the waterfall model since it is important to list all the requirements clearly and understand the downstream impact thoroughly before proceeding with large scale design changes. In contrast, new projects where the requirements are not known clearly can follow agile model since incremental development is the best approach for such kind of projects.
After watching video, I have learned about Agile, Waterfall and Spiral methodologies. Now I want to compare and contrast Agile and Waterfall methodologies.
Software development life cycle is a methodology used by software development team for creating a checklist for developing software products. It details the list of phases that one must go through to develop a software. Different phases of SLDC are Planning, Analysis, Design, Development, Testing, Implementation and Maintenance (Mohamed, 2012).
Waterfall model is a linear and sequential project management approach where each phase of SDLC should be completed before starting the next phase and no two phases can overlap each other (Mike, 2012). Requirements, Design, Implementation, verification and maintenance are the common phases of waterfall methodology (Mike, 2012). It has huge emphasis on planning and design phases before you even start building any software. It has strict planning and project timelines and too rigid to adapt any change in requirements. Does not allow for any deviation in the project plan. Some of the advantages are easier to plan for concrete time lines, everyone working in the project will be aware of the current phase of the project and their tasks.
The agile methodology relies on the core idea that plans do change, and we should be prepared and open for change in requirements. It doesn’t mean that we can skip the SDLC phases we still have to prepare the checklist for our development project. It is an iterative process where product is delivered to customer in phases for their feedback (Mike, 2012). It deemphasizes the planning and designing phases and gives more importance to collaboration, building and testing the product. One of the main differences when compared to waterfall methodology is instead of planning the timelines of all the phases a head, agile operates in sprints where prioritized tasks will be completed in 2 weeks or 4 weeks (Mohamed, 2012). Few of the disadvantages with agile are lack of rigid planning might delay and increase the cost of the project and de emphasis on planning can result in unclear path.