1. In Waterfall method once a stage is completed there is no going back because it is designed and implemented in such a way, where as in case of Agile it adapt to change, as at end of the stage it adapt to the new ideas and it can be implemented at the end of the stage as well.
2. One of the Advantageous of Agile is at the end of the tested stage its a releasable product. This ensures that bug caught in the initial stage can be eliminated at that stage and bugs will be minimized. It is double tested after the first bug caught, whereas in case of Waterfall, the product is tested at the end of the stage and if bug caught at that time the entire program has to be rewritten and its tough to make the changes at that time.
3. In Agile the customers are satisfied as it has a working model for the timely release and where as in case of waterfall there is only one main release and any problems or delays means highly dissatisfied customers.
4. Both methods do allow for a sort of departmentalization e.g. in waterfall departmentalization is done at each stage. As for Agile, each coding module can be delegated to separate groups. This allows for several parts of the project to be done at the same time, though departmentalization is more effectively used in Agile methodologies.
We have a team here that uses agile methodology and a team that used waterfall, and as I understand it the main difference in testing as you asked, is that in agile, the QA, BA, and SD work together to determine the tests first and the code is written to meet the tests. Where those of us on the waterfall side, write our tests based on the specifications given to the developers at the same time as the developers are writing code.
Most of the other replies I read reference more the difference in the project styles verses the testing and most of the advantages to agile can be incorporated into waterfall if you have a good customer representative in the design of the product.
I got a good article and this one got good information..i hope you all like it..
I really appreciate for your feedbacks..
WATERFALL vs. AGILE METHODOLOGY
There is no IT meeting that does not talk and debate endlessly about Waterfall vs. Agile development methodologies. Feelings run strong on the subject with many considering Agile ‘so of the moment’, just so right, while Waterfall is thought to be passé! But, before deciding which is more appropriate, it is essentially important to provide a little background on both.
A classically linear and sequential approach to software design and systems development, each waterfall stage is assigned to a separate team to ensure greater project and deadline control, important for on-time project delivery. A linear approach means a stage by stage approach for product building, e.g.
1. The project team first analyses, then determining and prioritising business requirements / needs.
2. Next, in the design phase business requirements are translated into IT solutions, and a decision taken about which underlying technology i.e. COBOL, Java or Visual Basic, etc. etc. is to be used.
3. Once processes are defined and online layouts built, code implementation takes place.
4. The next stage of data conversion evolves into a fully tested solution for implementation and testing for evaluation by the end-user.
5. The last and final stage involves evaluation and maintenance, with the latter ensuring everything runs smoothly.
However, in case a glitch should result, changing the software is not only a practical impossibility, but means one has to go right back to the beginning and start developing new code, all over again. That’s Waterfall for you! Now, as for minimal risk Agile, it is a low over-head method that emphasizes values and principles rather than processes. Working in cycles i.e. a week, a month, etc., project priorities are re-evaluated and at the end of each cycle. Four principles that constitute Agile methods are:
1. The reigning supreme of individuals and interactions over processes and tools.
2. As does, working software over comprehensive documentation.
3. Likewise, customer collaboration over contract negotiation.
4. And again, responding to change over plan follow-throughs.
To synopsise the difference between the two, one can say the classic waterfall method stands for predictability, while Agile methodology spells adaptability. Agile methods are good at reducing overheads, such as, rationale, justification, documentation and meetings, keeping them as low as is possible. And, that is why Agile methods benefit small teams with constantly changing requirements, rather more than larger projects.
Agile, based on empirical rather than defined methods (Waterfall) is all about light maneuverability and sufficiency for facilitating future development. By defined methods what one means is that one plans first and then enforces these plans. However, Agile methods involve planning what one wants and then adapting these plans to the results. Extreme Programming (XP) is an excellent example of Agile methodology i.e.:
1. Communication between customers and other team members;
2. Simple, clean designs;
3. Feedback given on Day 1 of software testing;
4. Early delivery and implementation of suggested changes.
Agile methodology means cutting down the big picture into puzzle size bits, fitting them together when the time is right e.g. design, coding and testing bits. So, while there are reasons to support both the waterfall and agile methods, however, a closer look clarifies why many software and web design firms make the more appropriate choice of employing Agile methodology. The following table enumerates the raison d’être for choosing Agile methodology over the Waterfall method.
1.Once a stage is completed in the Waterfall method, there is no going back, since most software designed and implemented under the waterfall method is hard to change according to time and user needs. The problem can only be fixed by going back and designing an entirely new system, a very costly and inefficient method. Whereas, Agile methods adapt to change, as at the end of each stage, the logical programme, designed to cope and adapt to new ideas from the outset, allows changes to be made easily. With Agile, changes can be made if necessary without getting the entire programme rewritten. This approach not only reduces overheads, it also helps in the upgrading of programmes.
2. Another Agile method advantage is one has a launchable product at the end of each tested stage. This ensures bugs are caught and eliminated in the development cycle, and the product is double tested again after the first bug elimination. This is not possible for the Waterfall method, since the product is tested only at the very end, which means any bugs found results in the entire programme having to be re-written.
3.Agile’s modular nature means employing better suited object-oriented designs and programmes, which means one always has a working model for timely release even when it does not always entirely match customer specifications. Whereas, there is only one main release in the waterfall method and any problems or delays mean highly dissatisfied customers.
4.Agile methods allow for specification changes as per end-user’s requirements, spelling customer satisfaction. As already mentioned, this is not possible when the waterfall method is employed, since any changes to be made means the project has to be started all over again.
5.However, both methods do allow for a sort of departmentalization e.g. in waterfall departmentalization is done at each stage. As for Agile, each coding module can be delegated to separate groups. This allows for several parts of the project to be done at the same time, though departmentalization is more effectively used in Agile methodologies.
In conclusion, though on the plus side, waterfall’s defined stages allow for thorough planning, especially for logical design, implementation and deployment, Agile methodology is a sound choice for software development and web design projects. More and more firms are becoming Agile!
There are two general schools of thought concerning software development. We have the traditional sequential waterfall methodology and a group of iterative methods, which Agile methodology is a part of. It is essential to understand basic distinctions between these two approaches so we can fully understand what sets the Agile Method apart.
The waterfall method of software development assumes that the process of building complex software systems is a series of steps performed sequentially. During the first phase all system specifications are gathered by Requirement Analysts. They are then passed to the Designers, who plan out and decide how the code should be implemented. At the end of this process the code is finally implemented into the software by a group of Developers. Consequently waterfall software development can be compared to a modern day assembly line. This comparison is merited because like in an assembly line once the product has gone past a workstation there is no going back to make changes to once specified requirements, ideas, objectives, technological conditions, or even changes in the business climate one might find oneself in.
One of the alternatives to the waterfall methodology is the Agile methodology. This approach focuses on the assumption that something will inevitably be left out while putting together all the necessary requirements at the beginning of the development process. The simple fact that these variables can be changed outside of their respective "phases" saves time and corrects a lot of costly problems down the line. The Agile method also introduces the idea of revisiting requirements periodically and adjusting them accordingly to the dynamics of the situation. This unique aspect of Agile methodology is called "incremental and iterative development" or IID. According to this method the software development process is cut up into increments and "iterations". During the course of software development each iteration reaches each of the development phases subsequent to it and if a new specification appears the IID processes capture them iteration after iteration.
Waterfall methodology, on the other hand, requires large amounts of up-front planning. Customers are asked to specify all the features of the system, and they don't have a chance to see how the process develops or to make any needed adjustments during said process. When using the Agile methodology, however, the problem is seen from a different light. Instead of concentrating a lot of effort on costly up-front analysis, small additions of the code are added according to the ever changing needs of the client. What is more, the customer is actively involved during all the phases of the developing process, thus giving the customer the opportunity to provide feedback on the fly. Also, unlike in waterfall methods the Agile method finds that it is better to postpone all the irreversible decisions until the last moment. This is done so that the organization implementing software development has options and important decisions can be made at a better time, after the organization has an access to more precise information.
Another difference between the waterfall and Agile methods would be the fact that in the latter method teams that are working on a project are synchronized throughout software development. This means that the code base does not extend in a different direction for long periods of time and this helps reduce the risks associated with large scale integration at the end of each project. On the contrary, in the waterfall approach software development is compared to a production line conveyor belt. In such a system each team works separately and after their part of the work is done it is passed to the next group of analysts. Also, a unique characteristic of Agile methodology is that long before all of the specifications are gathered, work on a project can begin. It is this unique characteristic that is vitally important when an organization does not have enough analysts available to do a detailed requirements analysis, which is generally the case with small businesses.
With that said, we can easily see there are many distinctions between waterfall and Agile methodology. It is important to keep that in mind when choosing the one that suits a specific company the most.