Loading

Agile vs. Traditional Development


Introduction

Software development life cycle has evolved with newer and more robust kind of approach. It is a conceptual model that lays the foundation for development of software systems, with well defined phases. Typically the phases are - user requirements definition, system requirement definition, analysis and system design, system development, testing, implementation and maintenance.

Software Development Life cycle

There are various models, each having its own approach, provide a strong foundation for an efficient software development life cycle. Few among the many are - Waterfall, Spiral, rapid, prototyping.

Traditional Development Model

The traditional approach to software development includes Waterfall model. Waterfall Model is the oldest form of software development model that offers the various stages through which the cycle of software development has to go.

Waterfall Model

The very essence of a traditional software development life cycle lies in the following few facts:

  • The aim is to understand from a user's perspective as to what their requirements are, design a robust structure that shall help in delivering the right product, flawlessly.
  • Planning risk management tasks.
  • The traditional model emphasises on finding alternative solutions towards attaining the desired objective, that is, choosing the best alternate among the available list of alternatives.
  • Such a model relies on the fact that there is an optimal solution available for a problem, as a given problem is considered to be well-defined.
  • It assumes that the processes are predictable and are repetitive.
  • The model believes that the processes are measurable and any variations in the processes can be controlled and during the development life cycle.

Based on understanding of systems development, an organisation follows a certain kind of management style.

  • A hierarchy is maintained, therefore assuring a stability across the various levels.
  • An environment of formalisation and standardisation in created. People with specialisation in different roles are assigned tasks which they are expected to accomplish, to produce the desired outcome.
  • Customers play an active role, mostly during the specification and implementation stages.

Agile Model

Agile methods took over the traditional methods, to overcome the rigidity of the traditional model. Agile follows a dynamic approach to software development. It is an interactive and team based method that aims to deliver an application in a short span of time.

In agile methodology, tasks are categorised into phases and are ''time-boxed'', that is, time frames are allotted to each task. Each time-boxed phrase is called a sprint. Each sprint has a defined duration of time, say, a week, few days or month.

agile development model

A detailed description of how the agile model helps to overcome the shortcomings of the traditional model.

  • Agile is based on empirical process, which provides a control mechanism based on a defined set of methods. Empirical method is meant for those processes that are not very well defined, unpredictable or unrepeatable. Agile technique implements control through frequent inspection and adaptation.
  • It is a dynamic approach to software development. That is, this technique is quick in adapting to changes as requested by the user.
  • It has brief iterative life cycles, which reflects periodic changes, and thus integrating small change cycle to the overall system development process.
  • Involves communication with customers consistently, taking their feedback as input, during the different iterative cycles.

Agile Vs Traditional

SNo. Traditional Model Agile Model
1. Follows a top down approach, and making changes is not easy as finishing one phase leads to another Team conducts experiments on various techniques and gradually arrives at the best possible solution
2. It has a leadership style of working In agile, there is free flow of communication, anyone can present their ideas within the team
3. Pre-planning is done to carry out the various phases This is more flexible as compared to traditional model, as it can change it's work flow based on any new request for modifications
4. Customer is involved only in the initial phases of requirements gathering Customer involvement is crucial for this model to prove its mettle
5. The project plan is prepared before commencing the process of system development Project work is delivered to the client in small amount, that is, as and when one module is prepared, a demonstration is given to the client, so as to confirm the work progress in a right direction
6. The ownership lies on the Project manager It has the concept of shared ownership, i.e, every team member is equally responsible for their individual contribution
7. Believes in one-time delivery of the product Relies on incremental delivery of the product

Conclusion:

Both agile and traditional models are essential for an efficient software development process. However, in the process of choosing an appropriate model for software development, one needs to identify the scope and requirements of the project to be developed. Accordingly, a model is chosen that helps to deliver the right things at the right time.

Agile Model does overcome few deficiencies that the traditional model imbibes, but at the same time each model's pros and cons must be weighed before reaching a consensus.