AGILE vs. WATERFALL METHODOLOGIES
Introduction Agile and waterfall are two major methodologies that software developers and project managers have the option of using. Some of the goals of developers and managers are timely delivery of projects, remaining within budget and meeting the needs of the customer. The methodology to use to attain maximum satisfaction is a vital decision for project managers to make. However, it is not easy bearing in mind that methodologies are many. This is the reason why software developers and project managers have to make the best choice of a methodology considering all factors and goals. This paper will compare waterfall and agile methodologies and consider instances where each methodology can be used.
WATERFALL METHODOLOGY The Waterfall approach is one of the heavyweight methodologies. These methodologies follow the model of requirements-design-build. They have processes that are standard and well defined. It involves a progress that is well structured through definite phases. In every phase are specific activities and deliverables that have to be completed before commencing with the next phase. Benefits of Waterfall Methodology Waterfall is well disciplined It has to start with complete requirements Analysis and design must be done first Drawbacks of Waterfall Methodology Early feedback is absent Response to change is slow There is a high cost if a requirement is missing or unclear Optimization is made for hardware ignoring the necessary qualities of a software Waterfall methodology is made complex by some factors. First, it is hard for users to present all their requirements to the developers in a precise understandable manner. In addition, with growth in system sizes, a large team of developers is required together with a complex communication and coordination. Furthermore, there are a large number of paths through a code, making it impossible to have a conclusive testing. Without mathematical tools and having difficulty in modeling the behavior of large systems, developers are forced to settle for sub-optimal confidence in the systems. Some developments have occurred with time aimed at improving waterfall methodology. This evolution has helped to: Bring optimization of waterfall method Enable developers to understand the requirements of users better through prototyping of software Reduce marketing time and pressures so that quality is improved Increase reusability
AGILE METHODOLOGY Agile methodology is termed lightweight. The qualities of these methodologies include fast marketing, responding well to the customer s interests and high application quality. Unlike waterfall methodology, which works on one rigid process, agile methodology involves interactions and changes are welcome at any stage. Examples of agile methodologies include Extreme Programming (XP) and Scrum among others. The Agile manifesto was published in 2001 declaring introduction of better ways of software creation. The values ingrained in the Agile manifesto: Instead of processes and tools, it upheld individuals and interactions Instead of heavy documentation, it moved towards working software It departed from contract negotiation to customer collaboration It upheld response to change instead of following a laid plan Principles of Agile Methodology Satisfaction to customers by delivering software rapidly Changes in requirements are acceptable throughout the development process Frequent delivery of software Cooperation on a daily basis between the software developers and entrepreneurs Building projects with people who are trustworthy and are motivated Communication is face-to-face. Progress is measured through working software. It is possible to have a maintained pace. Thus, development is sustained. Technical excellence is upheld together with good design Simplicity Teams organize themselves. Adapting to changes as and when they arise. In agile methodology, emphasis is put on speed rather than documentation. The cycle of interactions goes on until a product that exactly satisfies the needs of the customer is delivered. Agile methodology is more efficient than a waterfall because it is more adaptive. It allows for changes and the product is released to customers on time.
WHEN TO USE... the waterfall method? Waterfall is a choice model for stable programs whose design requires no major modification. In addition, in cases where developers can accurately cite expected flaws and outcomes in advance, it is proper to use waterfall. The advantage of waterfall is that it is easily managed and its cost is determined early enough. Waterfall is used when the customer provides requirements that they are certainly won t require changes. Furthermore, when the project is set for a long period, waterfall is a good choice. the agile method? Agile methodology is the method of choice when the customer is not clear about their needs. It is also applicable where the team has experience enough to handle the project. Another consideration is whether the project is required to be delivered within a short time. Agile methodology is the best for web applications where various bugs are encountered during the process. Agile Vs. Waterfall CONCLUSION It is clear that different scenarios require different methodologies and therefore a model is chosen if it suits the experience and interests of the team and users. However, an ideal model is needed, which merges Waterfall accountable and predictable qualities with the agility and adaptability of Agile model. Software development and design process keeps on improving over the years creating a stronger need for a more iterative and incremental approach when change in requirements takes place. The newest player, the Agile methodology. Its flexible feature allows the development to respond to modifications effectively and rapidly. But, in overalls, when you understand your project, you know exactly which method would work best.