Kudler Fine Foods (KFF) is a local upscale specialty food store that is committed to providing customers with the finest selection of specialty foods. In addition, KFF would like to reward their customers for their loyalty by incorporating a frequent shopper program. KFF is planning on developing a system that tracks customer purchases and awards loyalty points for redemption. The system will assist KFF in satisfying their most valued customers.
Smith Systems Consulting Firm has been contracted for the development of the system. Smith Systems Consulting has been serving clients since 1994 with high value web and business application services. In this proposal, Smith Systems consulting will propose two alternative methods for completing the frequent shopper application. The advantages and disadvantages for each method and how the firm would conduct testing for each development method will be discussed.
Regardless of which method is used, most software process models, follow a similar set of phases and activities. The difference between models is the order and frequency of the phases. The specific parts of the software process are presented below: 1. Inception – Software product is created and defined.
2. Planning – Resources, schedule, and cost are determined. 3. Requirements Analysis – Specify what the application must do. 4. Design – Specify the parts and how they fit
5. Implementation – Write the code
6. Testing – Execute the application with input test data
7. Maintenance – Repair defects and add capability (TechTarget, 2014)
The first model that will be proposed is the “waterfall” process. The “waterfall” process is the oldest software process model and despite its weaknesses, it is still in widespread use today. The waterfall process requires following the phases in a sequential order where the output for one phase is used as the input for the next. The next phase in the process is not started until the previous one has been completed, although a small overlap between phases is accepted. Two advantages and disadvantages of using this model relative to the frequent shopper program will be discussed.
The first advantage is the practicality of the process. We have been using this process for many years and have a great deal of experience with it. All individuals involved have and understanding of the process and its execution. The second advantage is the process is simple and easy to use. The criteria of each phase are set and completed sequentially. The order of execution is easy for everyone to comprehend. There is no question on what needs to be completed before the next phase can begin.
The first disadvantage is that requirements need to be known up front. KFF currently has a broad range of requirements and every detail is not known. As the project progresses, more details may become known; which could cause the project to be stopped and re-imagined. The second disadvantage is that there is no feedback of the system by stakeholders until after the testing phase. KFF has no way of knowing if the program meets their requirements because the “waterfall” process does not facilitate intermediate versions.
The second method that will be proposed is the agile methodology. The agile methodology proposes alternatives to traditional project management. Agile development focuses on keeping code simple, testing often, and delivering functional bits of the application as soon as they are ready (TechTarget, 2014). One goal of agile development is to build upon small-client-approved parts as the project progresses, as opposed to delivering one large application at the end of the project.
One advantage to using agile methodology for the frequent shopper application is the ability to respond to changing requirements. KFF may decide to change the requirements of the project, which can easily be handled using the flexibility of the agile methodology. A second advantage is the face-to-face communication and continues input from customer representatives making sure that there is no guesswork (Buzzle, 2013). The result is exactly what the customer has required.
The first disadvantage of the agile methodology is the possibility that the project can be taken off track. KFF is not one hundred percent clear on the final outcome that they want; therefore, the project has the potential to get off track because requirements are constantly changing. Another disadvantage is that it is difficult to assess the effort needed to complete this project at the beginning of the software development life cycle. Since KFF is not specific on the requirements for the project, we cannot plan how much time or the amount of resources we will need to complete the project.
Regardless of the method that is used for the frequent shopper application, testing is a necessary component of the process. Testing is conducted differently depending on which software model is used. Since the waterfall method follows a sequential approach, the testing is done so also. The flexibility of the agile method also allows flexibility for the testing process.
Using the waterfall method testing would begin during the implementation stage. The work would be divided into modules and the coding would begin after receiving the system design documents. The frequent shopper program would be developed into small programs called units. As an example, there would be a program that handles the input from the customer and another program that would track the employee’s reward points. Each unit is developed and then tested for functionality. Unit testing verifies if the units meet the specifications.
The units are then integrated into a complete system during the integration phase and tested to see if all units coordinate between each other and the system functions as a whole per the specification (Onestoptesting, 2014). After testing of the frequent shopper program is successful, the software is delivered to the customer. If problems are found after deployment they are solved immediately. This is referred to be maintenance and sometimes that process is virtually never ending.
Agile testing focuses on testing being an integral part of software development rather than a separate phase. (“Agile Testing”, n.d.) Testing from the beginning of the project and continually testing throughout the project lifecycle is the foundation in which agile testing is built. Agile testing is software testing based on the principles of agile software development.
The combined team, including the testing team will take responsibility of analyzing the business requirements of the frequent shopper program. Together the team will define a sprint goal. The testing team will then begin work on the test plan that is validated by the entire team and KFF. As the development team starts the implementation, the test team will begin working on the test case design.
When the code is ready to test, the test team will do a quick test on the development environment, in order to identify the early stage defects. Developers will fix the defects on a priority basis. This iteration will continue until the end of the code implementation. In addition after approval from KFF, automated test cases will be run on a daily basis. Because of the frequency of testing using the agile method, automated tests are needed.
Smith Systems Consulting needs to choose the methodology that works for them and the client. Since each project is unique, there is not a one-size fit all methodology. Two alternative methods for completing this project were presented and Smith Systems Consulting can make a decision on which to choose.
Buzzle. (2013). Retrieved from http://www.buzzle.com/articles/software-testing-methodologies.html TechTarget. (2014). Retrieved from http://searchsoftwarequality.techtarget.com/definition/agile-software-devel