Developing software is far from an exact science and without a structured system to guide the process a project is likely to fail. Defining and adhering to a Software Development Life Cycle (SDLC) early in the project will help to guide the development of a new information system. In addition to having the structure for the development team to work within a defined and agree upon SDLC will help to set the proper expectations for deliverables with the stakeholders and customer(s). Smith Consulting has been given the task of creating a Frequent Shopper program for Kudler Fine Foods.
As a result Smith Consulting needs to decide on which SDLC will work best for this project. In addition to selecting a SDLC to use Smith Consulting will need to determine how testing will be conducted. The purpose of this paper is to compare and contrast Waterfall and Scrum SDLC’s, including how testing will be performed for each, such that Smith Consulting will be able to make an informed decision on which methodology to use when creating the Frequent Shopper Program for Kudler Fine Foods. The term SDLC has been tied to a certain type of development style as Waterfall.
Waterfall SDLC is the concept where each phase of the development process is completed before the next begins. There has been much debate on who was the originator of the Waterfall SDLC process, most reference Dr. Winston Royce. Dr. Royce described a development methodology where each phase is completed before the next begins but never used the term Waterfall in its description. In his description of what is known now as Waterfall, Dr. Royce did not recommend this as a viable SDLC (Font, 2010). There are five phases that need to be completed in sequence during the Waterfall process which are: * Gather Requirements Design the software * Implement the design * Verify the implementation * Maintenance The diagram shown in Figure 1 illustrates the phased development cycle that Waterfall employs in developing software: Figure 1 (Joyce, 1970) The biggest advantage with using Waterfall SDLC is the comfort that there is a specific delineation between the different phases of the development (Joyce, 1970). Once each phase is complete the next can begin, this is easy to communicate and manage. Testing during the Waterfall development cycle is clearly defined and occurs after the code has been implemented.
The test team creates Test Plans, Cases, and any other artifacts during the Requirement, Design, and Implementation phases so that when the code is ready the team can begin the quality passes. The testing phase is complete when the test team has reached the quality goal that has been agreed upon with the development and management teams. The advantages of Waterfall are also some of the biggest disadvantages as well. Many times these phases can take a long time to be completed and by the time the customer has a working system.
Once the customer has received the final software the requirements may have changed or the system does not meet the expectations. If either of these situations occurs then the process would need to be repeated. The other SDLC that Smith Consulting should consider is Scrum which is an Agile development methodology. The term Scrum is in reference to the sport Rugby where teams huddle together to begin a game. The principle idea with Scrum is the focus on creating working software over documentation. This is not to say that there that documentation does not occur during Scrum but it is only created when it is deemed necessary.
Requirements are represented in the form us User Stories which are no more than a couple sentences describing a feature, including the acceptance criteria. These user stores are then arranged into a list known as a Backlog. The Backlog is then prioritized based on what the customer and product team feels is the more important features to be implemented. The development group is then divided into Scrum Teams of about 7 – 10 members which include both developers and test engineers. The team commits to working on a number of Stories that can be completed in a 2 week development cycle known as a Sprint.
Once the Sprint is completed the team will have created working software that the customer is then able to use and provide feedback. The biggest advantage that Scrum has over Waterfall is the ability for the customer to see and use the software early. Many times customers do not really understand what they want until they are actually using the software so having the software available early allows them to provide feedback immediately. If there are changes to made they can be added to the next sprint and adjusted quickly without much cost in development.