Agile Introduction

Agile Methodology Introduction


Traditional Waterfall Approach

Traditional Waterfall Approach is used to build complex software systems, which can be built in sequence and phase-wise. Here all the requirements are captured at the beginning of the Project. Design is completed next, followed by Coding, Testing and finally Software is implemented. This approach holds very good where complex software system can be built without changing or revisiting already captured business requirements/design/layouts and have no dependencies with other systems /developments / sub projects.

Under this approach, Project Managers are putting lot of effort in the project plan.
From my experience, most of the Software Projects failed due to not meeting the project time frame and/or cost overrun. Key success factors are making timely project implementation using best practices, next generation technology vision and meeting project time line. I came across a scenario where Customer was looking for a complex ERP solution within a particular time frame, which had 'n' number of dependencies, open solutions/requirements and so many integration touch points with various legacy systems.


I attempt to put forth my experience on the reason for the failure of Traditional Waterfall Approach in so many cases.


Traditional Waterfall Approach - Issues


1. Requirements captured Up-Front: One of the biggest issue with Waterfall is the assumption that all the requirements are captured up-front at the beginning of the project. All the requirements are finalised and documented in Requirement Document.


Requirement document forms the baseline for the Functional Specification Document and is passed to development team to start the development. It is possible that the Requirement Document miss some important details at the beginning of Requirement gathering phase or leave some open issues or holds on to some assumptions. This means, we have to change the requirements outside the requirement gathering phase. This gives rise to Change Requests (CR). In many cases, this will lead to design change and will also impact the next phases of the project. It will finally affect the Project Cost as well as Project time line.


So Project cost increases exponentially over time in case of Water Fall model. A long-term business will be extremely expensive where cost of change increases exponentially.


2. Having working Software Product always: Customer always expect to see and feel something related to the project as early as possible. This will help the customer to describe their requirements effectively. Water Fall model asks the Customers to define entire product/software/application at the beginning without giving them a chance to view , feel or review the application periodically and amend the requirements as and when needed.


So Water Fall model allow us to collect the requirements up-front, develop the entire product/software/application and deploy to customer for their testing. There are two issues here, one is restriction on the amendment to the requirements as needed, secondly, the customer sees the product at the end of the development and is kept in dark until then.


Agile Methodologies

Agile is a Software development framework which allows the development team to carry the software development in iterations throughout the project life cycle and each iteration touches all the traditional phases of development life cycle.

Requirements, design, testing cycles are revisited in each release of the Software in Agile.

Agile is an iterative product development approach and has continuous design - code - test cycle throughout of the project. This helps in reducing the cost of the Change Requests.

Agile Project Management

Agile has different flavors like XP, Scrum etc used for Rapid Application Development. Scrum is one of the flavors to implement Agile methodology. It is an iterative and incremental process to develop a software product enabling the Customer to have workable software product at any point of time. Scrum consists of series of 'n' day sprints, each sprint producing a usable software product.

Scrum is a Project Management approach in which project plans are continuously inspected and has full control on four important factors of the Project.

1. Project Cost

2. Project Schedule

3. Project Scope

4. Product Quality

Functionalities developed using iteration approach will have high quality because of short feedback cycle and controls can be adjusted frequently and quickly and resources can be utilised effectively.

Agile is not expecting any Up-front requirements, this will help Customers to take the decision when they have more details or after seeing initial version of the product. Frequent releases gives a chance to the Customer to test the Product periodically and give feed backs.

Another advantage is that development can start before all the requirements are known.

Much less interesting....


  • Agile is a Software development framework which allows the development team to carry the software development in iterations throughout the project life cycle.



  • Scrum is one of the flavors to implement Agile methodology. It is an iterative and incremental process to develop a software product enabling the Customer to have workable software product at any point of time.


0 comments:

உங்கள் கருத்தைப் பதிவு செய்யுங்கள்; *

குறிப்பு: மௌனமான நேரம் இணையதளத்தில் செய்திகளுக்கும் கட்டுரைகளுக்கும் வாசகர்கள் பதிவு செய்யும் கருத்துக்கள் தணிக்கை இன்றி உடனடியாக பிரசுரமாகும் வகையில் மென்பொருள் வடிவமைக்கப்பட்டுள்ளது. எனவே, வாசகர்களின் கருத்துக்களுக்கு மௌனமான நேரம் நிர்வாகமோ அதன் ஆசிரியர் குழுவோ எந்தவிதத்திலும் பொறுப்பாக மாட்டார்கள். நாகரீகமற்ற வார்த்தைகளைப் பயன்படுத்துவதை தவிர்க்கும்படி வாசகர்களை கேட்டுக்கொள்கிறோம். வாசகர்கள் பதிவு செய்யும் கருத்துக்கள் தொடர்பான சட்டரீதியான நடவடிக்கைகளுக்கு வாசகர்களே முழுப்பொறுப்பு. கடுமையான கருத்துக்கள் குறித்து எங்கள் கவனத்திற்கு கொண்டு வந்தால் அவற்றை நீக்க நடவடிக்கை எடுக்கப்படும்.