A Journey from waterfall to agile second generation

Whenever we start any software design project, it is a good practice to ensure the basics of software design project and investigate which method is right for our project. Before settling on a decision, it is vital to do some research and comprehend the points of interest and constraints of every methodology. Let’s take a brief look at the journey of agile generation from waterfall methodology.a

Like its name suggest Waterfall is a Linear Sequential Life Cycle Model. Here development flows sequentially from begin point to end point, with a few different stages: Conception, Initiation (requirements), Analysis, Design, Construction, Testing, Implementation, and Maintenance. The emphasis of waterfall is on the project plan and therefore before beginning of development, a clear plan and vision is required as the waterfall method requires upfront, extensive planning and documentation.

The waterfall methodology is a very good approach for small project; it is easy to use and follow as well as easy to manage. A new designer or developer can easily replace old one by following the development plan without a problem. The waterfall method is best suitable for low budget projects. Also when there are stable changes in the projects. On the other hand the waterfall method is incredibly rigid and inflexible. Once a phase has been completed; it is almost impossible to roll out improvements to it. In short altering the project design at any stage is almost difficult. So while using waterfall, it is mandatory to gather all of the requirements upfront. Another major problem with waterfall model is feedback and testing stages comes at the later stage of the project. As the problem identification takes place at the end stage of project; it is very difficult to respond and manage at that stage.

In contrast, the agile technique proposes an incremental and iterative way to deal with software design. It was basically created in response to the limitations of Waterfall method, as an approach to give planners more opportunity and freedom. The design procedure is broken into individual models. There is no pre-decided strategy or course of action with the agile method. The designers are allowed to respond to changes in requirements as they emerge and make changes as the project progresses. Though agile is a new player in the market; it has made remarkable popularity in the last couple of years. It offers an incredibly flexible design model, advancing adaptive planning and evolutionary development. Developer works on small modules at a time with regular customer feedback simultaneously with development. Agile is beneficial in situation where end goals of project are not clearly defined; it is an excellent option for experimental software design. In agile late changes in requirements are welcomed.  While considering other side of agile; this method is quite time consuming method. In agile development is much more person based; so a person drops out will have high impact on project progress.  Agile methodology need rapid decision making ; as senior programmers are only capable of taking such a kind of decisions during process; newbie programmers won’t work independently unless combined with experienced resources.  As the technology industry trend is always towards the perfectionism; second generation agile has come up with new additions. Second generation agile is basically based on principles, values, Human behavior and Product development flow.

Want to know “What is agile second generation?? “ ……………………….stay tune with us…