Performance & Load Testing

Resources Center

AGILE – What, Why, How…???

by Swaraj Gupta

How will I define it?

A highly collaborative and incremental method of project execution that produces ‘high quality’ output with ‘just enough’ input can be termed as AGILE. AGILE means flexible and that’s what the methodology is. Can be molded / redesigned the way the project & end product demands it.

What will make me call a project AGILE?

This way every team has a different way / manner of executing an AGILE project and some of the clues that I look for while terming a project as AGILE are –

Is the team following test-driven-development (TDD)?

Is every stake holder in the project lifecycle (developers – testers – business stake holders – end users) actively involved in the project execution (product development)

Is the team working in a highly collaborative and disciplined manner?

Are they following a self-improvement approach while developing the product?

Is the team aspiring to product an extremely high quality product in the least possible cost?

Lean principles and those of AGILE are extensively been adopted in software development projects and AGILE is gaining a huge popularity in the technology solution development community.

Let’s look at what methodology was popular before AGILE and analyze what AGILE brought to the table:

Waterfall Model –

The traditional model of software development is a vertical model of development wherein the requirements of the project were laid down right in the beginning, post which the design phase began, later the implementation and verification and the process ended with the maintenance phase. This method was observed to be extremely time consuming and very expensive. A lot of wastage (in the form of human hours) was observed and some other negatives were observed –

In most cases, either requirements were not gathered appropriately or requirements changed in the due course of product development and a wrong / unwanted functionality was delivered to the end customers.

Walls between different teams caused communication gap and thus issues and defects in the end product

Fixing defects was again time consuming and thus expensive.

Some key steps in an AGILE engagement

The entire AGILE project lifecycle can be broken down into three essential steps –

Inception:

It calls for the start of the product development. It consists of requirement gathering, team building, making requirements, goals and objectives clear to the development team. Basically all of the stake holders involved in the project come to some sort of a common understanding while in this phase and they define / envisage a common objective by the end of this phase. With regards to testing, activities like environment setup, tool identification & purchase, documentation and planning become the part of this phase.

Development – Iterative:

This phase is the key phase of agile project wherein the product is being built, tested, delivered and improved (gradually). When the team begins with the product development, their first target is to deliver the first workable version of the software and at the earliest. The team follows the approach of prioritizing the requirements (based on business needs), determining and allocating the number of hours (efforts) required to deliver those requirements and then delivering the product in the allocated time. At the same time, as the product is being developed, the testers are building their test code (or regression suite) to achieve testing the product based on the development completed (test – driven –development)

Delivery – Transition:

The product is successfully deployed on production environment and handed over to the business teams in this phase for product usage. A lot of teams get involved into the project lifecycle now including, support, operations, UAT testing and customers. The marketing teams also get involved in this phase and they start selling the product. As a part of this phase, as and when request for product improvements come, the product is updated and released iteratively.

Why AGILE over Waterfall?

About Swaraj Gupta

Swaraj is a performance, automation and functional test expert who has worked on variety of desktop and mobile applications. The major areas that he focuses on are - functionality, usability, performance and consistency of application behavior. He manages the entire performance testing cycle of the projects that he is responsible for and works on multiple such engagements simultaneously. He has worked in variety of different business domains that include - Hi tech consulting, Financial services, management consulting, auditing services, e commerce, e learning, etcT