Monday, June 15, 2020

Software Development Methodologies Essay - 2475 Words

Software Development Methodologies: Agile versus Waterfall (Essay Sample) Content: Agile versus WaterfallMarcus J. NormanStrayer UniversityAgile versus waterfall software development methodology.Agile methodology43053003096260TEST00TEST-35687025120600628332280797100-3048002510790Start020000Start-3524253686810High LevelRequirements00High LevelRequirements-3905253191510Define Requirements00Define Requirements-3810002762885Initiate project00Initiate project52197002940685Release to the market00Release to the market485775031102300018907491151819004135621312470135331402900680YES00YES29337002005965Release020000Release30086302324100Feedback Review020000Feedback Review34575752605405Accept?020000Accept?148809228770020025647654489450Record and incorporate changes020000Record and incorporate changes12966704478655Adjust and trackRe-prioritize features020000Adjust and trackRe-prioritize features7378701862455008388353860800NEXT ITERATION 1.Onto the development 4, 5 etc.020000NEXT ITERATION 1.Onto the development 4, 5 etc.34575753928745N000N018669001818640Developme nt nFunctionality n.020000Development nFunctionality n.13144502214880Development 2.Functionality 2.020000Development 2.Functionality 2.9899652729230Development 1.Functionality 1.020000Development 1.Functionality 1.Agile development methodology is a type of incremental model where a software is developed in small incremental and rapid cycles. It promotes interactions over processes and tools. Each of these cycles result in software release, built on previous functionality. Each release is thoroughly tested to ensure the software quality is maintained. The methodology is used for time critical applications and uses feedback rather than planning as the primary control mechanism.Figure 1.Steps in agile methodologyAs Cohn Ford (2003) argue, Agile development does not have clearly defined methods and is based on a manifesto with the following main values: 1 Individuals and interactions over processes and tools. 2 Working software over comprehensive documentation. 3 Customer collaboration over contract negotiation. 4 Responding to change over following a plan.This incremental model involves planning what one wants and then adapting the plans to the outcome. Extreme programming is a perfect example of agile methodologyIn the development of the proposed e-Commerce Website, agile development would be used to produce the simplest, quickest, and most basic website and then rapidly evolving this website based on the feedback from real users and their demonstrated needs. Consequently, a level will be reached where all functionalities will be realized. By having three months to come up with the Website, agile development would be much suited since ità ¢Ã¢â€š ¬s aimed at producing visible results quickly.The development of the e-Commerce website by agile methodology would receive much boost by having skilled developers who are adaptable and able to think and work independently, since they are geographically apart.Waterfall model28194003202305Testing0Testing17526002630805Imp lementation0ImplementationThis model is also known as s a linear-sequential life cycle model (Gaedk GrÃÆ'f, 2001).. In the model, each phase must be completed before the next phase can begin. The model develops systematically from one phase to another in a downward fashion like a waterfall. These phases are Conception, Initiation,Analysis, Design, Construction, Testing and Maintenance. The following picture depicts the model.1466850218440000-635Requirement Analysis0Requirement Analysis257175030861000107632599060System design0System design3800475360045002228850184785Implementation0Implementation3409950279400Testing0Testing4381500341630Deployment0Deployment47815508890005857875118110005219700451485Maintenance0MaintenanceFigure 2. Waterfall modelWaterfallà ¢Ã¢â€š ¬s defined stages allow for thorough planning, especially for logical design, implementation and deployment. The model is ideal for building software with well-known requirements and the available technology. Waterfall model may not, therefore, be suited for the development of the e-commerce site since the project requirements are known.Similarities between Agile and Waterfall methodologiesBoth the Agile and waterfall models implement the same technical and development building blocks such as: 1 Requirement analysis. 2 Design a capability to satisfy the requirement. 3 Build the capability. 4 Test the capability to ensure the requirement is met. 5 Deploy the capability.Both methods allows for several parts of the project to be done at the same time, through departmentalization.DifferencesAgile Waterfall Complete requirement doesnà ¢Ã¢â€š ¬t need to be known upfront since even late changes in requirements are welcomed (Cohn Ford, 2003). The model is used only when the requirements are clearly known and fixed. Methodology allows for changes to be made after the initial planning, as the client may decide to make changes in the course of project. Once a step has been completed, the developers canà ¢Ã¢â€š ¬t go back to a previous stage to make any change. Testing is done at the end of each sprint which ensures that the bugs are caught early in the development cycle. This makes sure that bugs wonà ¢Ã¢â€š ¬t be found at the end. The whole product is only tested at the end. If bugs are written early but discovered late, their existence may have affected how the other code was written. Since the initial project doesnà ¢Ã¢â€š ¬t have a definitive plan or complete requirements, it is difficult to figure out the final product. The client knows what to expect at the end of process .There is an idea of the size, cost, and timeline for the project. Evaluation of the pros and cons in agile and Waterfall project management in respect to planning and the execution of projects and collaboration among project team membersAgile ModelPros 1 The method is best for projects that deal with non-physical deliverables e.g. software, as opposed to tangible projects. 2 It allows for quick course correctio n based on the stakeholders and customers feedback. 3 It facilitates the project teams to work together on a project creatively and more efficiently. 4 It promotes collaboration and engagement among team members.Cons 1 Presence of uncertainty around the scope and the schedule can make the stakeholders and the executives nervous at the beginning. 2 Since project requirements are not clear at first, only senior programmers are capable of taking the kind of decisions required during the development process. This doesnà ¢Ã¢â€š ¬t provide a room for newbie programmers or inexperienced team members.Waterfall modelPros 1 The project is easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process. 2 Since developers and customers agree on the deliverables early in the development cycle, planning and designing become easier. 3 In the course of development, ità ¢Ã¢â€š ¬s possible for various team members to be involved or to continue with other pending work, depending on the projectà ¢Ã¢â€š ¬s active stage (Petersen, Wohlin Baca, 2009). For example, business analysts can document what needs to be done, while the developers are working on other projects. Testers can prepare test scripts from requirements documentation while coding is underway.Cons 1 Waterfall method doesnà ¢Ã¢â€š ¬t account for a clientà ¢Ã¢â€š ¬s evolving needs. Because the deliverables are based on the initial requirements, the client may not see the project until towards the end. And if they donà ¢Ã¢â€š ¬t like it, changes might be difficult and expensive. 2 Because of its rigidity and inflexibility structure, if some of the original requirements is found to be faulty, the whole project has to start all over again.Choosing the best model in the development of E-commerce website.For the development of the proposed e-commerce site, agile model would be the best suited. The following points support the argument: 1 Our end-users will be dispersed. By th at, we are likely to have a wide range of requirements which ca...