You are on page 1of 9

Whitepaper

Hexaware Technologies
Nurturing Relationships. Enhancing Value.

Agile Methodology: An Airline Business Case

Title

Published on

: June 2009

Author (s)

: Ramesh & Lakshmi Narasimhan

Copyright, Hexaware Technologies

www.hexaware.com

Agile Methodology: An Airline Business Case

Disclaimer
Contents of this whitepaper are the exclusive property of Hexaware Technologies and may not be
reproduced in any form without the prior written consent of Hexaware Technologies.

Address
Jamesburg, NJ
1095 Cranbury South River Road, Suite 10,
Jamesburg,
NJ 08831

Main : 609.409.6950
Fax : 609.409.6910

Copyright, Hexaware Technologies

www.hexaware.com

Agile Methodology: An Airline Business Case

Table of Contents
Introduction
Subject Clarity
Agile Methodologies
Pros & Cons of Agile
Summary

Copyright, Hexaware Technologies

www.hexaware.com

Agile Methodology: An Airline Business Case

Introduction
Agile software development is characterized by an emphasis on people, communication, working software and
responding to changes. Predominantly, Agile and Iterative methods have emerged as the most popular approaches to
software development with a good reason. A recent survey conducted by Dr. Dobbs journal shows that 41 percent of
development projects have now adopted agile methodology and agile techniques are being used on 65 percent of such
projects. The purpose of this document is to share ideas, information and opinion on notable aspects of Agile software
development that were embraced by the Agile practitioners.

Subject Clarity
Agile is an iterative and incremental (evolutionary) approach to software development performed in a highly collaborative
manner by self-organizing teams within an effective governance framework. It produces high quality software in a cost
effective and timely manner which meets the changing needs of its stakeholders.
Every Agile methodology engages in an iterative workflow and incremental delivery of working software in short
time-boxed iterations. Iteration is essentially a small release of software. Generally during iteration, many activities occur
in parallel such as requirements, coding and testing. Typically, iterations have a fixed length (although this length varies
between the methodologies) and are referred to as time-boxed. The time allocated to this iteration is sometimes referred
to as a cycle time. Agile software development is a style of software development characterized by an emphasis on
people, communication, working software and responding to change.
Agile vs. Waterfall: Practical differences in methodology:
Waterfall is the methodology that has dominated software development projects for decades. In simple terms, Waterfall
is a serial method for managing software projects through five stages as shown below:

Copyright, Hexaware Technologies

www.hexaware.com

Agile Methodology: An Airline Business Case

Adoption of Waterfall has helped drive down the failure rate of software development projects. Even with rigorous project
management and processes, a full 70 percent of software projects using this methodology fail to meet their objectives.
Organizations tried to cut the failure rate by insisting on more detail in the requirements and design phases. This process
of requiring extensive, exhaustive, heavy-weight document-driven methodology culminated in a light-weight methodology
such as Agile.
The most important differences between the agile and waterfall approaches are:
Waterfall features distinct phases with checkpoints and deliverables at each phase, while Agile methods have
iterations rather than phases. The outputs of these iterations are working codes that can be used to evaluate and
respond to changing and evolving the user requirements.
Waterfall assumes that it is possible to have perfect understanding of the requirements from the start. But in software
development, stakeholders often are not able to provide upfront on what they want and cannot articulate their
requirements.
Agile methodologies embrace iterations. Small teams work together with stakeholders to define quick prototypes, proof of
concepts or other visual means to describe the problem to be solved. The team defines the requirements for the iteration,
develops the code and defines and runs integrated test scripts and the users verify the results. Verification occurs much
earlier in the development process than it would with Waterfall, allowing stakeholders to fine-tune the requirements while
theyre still relatively easy to change. A generic Agile development process featuring an initial planning stage, rapid
repeats of an iteration stage and some form of consolidation before the release is provided below:

Copyright, Hexaware Technologies

www.hexaware.com

Agile Methodology: An Airline Business Case

Agile Methodologies:
The most widely used methodologies based on the agile philosophy are XP and Scrum. These differ in particulars but
share the iterative approach described above.
1.XP Extreme Programming
This methodology concentrates on the development rather than managerial aspects of software projects. XP projects start
with a release planning phase, followed by several iterations, each of which concludes with user acceptance testing.
When the product has enough features to satisfy users, the team terminates iteration and releases the software.

Users write user stories to describe the need the software should fulfill. User stories help the team to estimate the time
and resources necessary to build the release and to define user acceptance tests. A user or a representative is part of the
XP team, so he or she can add detail to requirements as the software is being built. This allows requirements to evolve as
both users and developers define what the product will look like.
To create a release plan, the team breaks up the development tasks into iterations. The release plan defines each
iteration plan, which drives the development for that iteration. At the end of iteration, users perform acceptance tests
against the user stories. If they find bugs, fixing the bugs becomes a step in the next iteration.
Iterative user acceptance testing, in theory, can result in release of the software. If users decide that enough user stories
have been delivered, the team can choose to terminate the project before all of the originally planned user stories have
been implemented.

Copyright, Hexaware Technologies

www.hexaware.com

Agile Methodology: An Airline Business Case

XP Agile experience from an Airline Product development:


I recently had an opportunity to work with a development team focusing on an Airline Cargo product covering core
modules including Reservations, Warehouse Management, AWB Management, ULD Control and Rating & Participants.
The requirements were rapidly evolving across iterations as well as constantly changing, and at the same time, there was
tremendous pressure on the team for delivering a high quality product. To tide over such challenges, the team embraced
XP Agile techniques, which not only accommodated changes in requirements but also offered incremental delivery of
working software in short time-boxed iterations.
Though the team initially resisted the agile approach, we quickly found that the ability to collaborate and bounce ideas off
of each other was quite beneficial to their success versus being bound to the walls of their cubicles on various areas of
the floor. The team was able to brainstorm ideas and quickly rule them in or out by conducting mini-proof of concepts that
allowed us to understand the solution in more detail and determine if it was a logical path to follow. As far as possible, we
also encouraged the practice of paired-programming for critical use cases that helped in producing better code coverage
and developing solutions more rapidly.
Another observation that I could easily figure out was that most of the work produced by the team was immediately being
tested by the team itself or by dedicated testers. Hence the solution was continuously being improved and proven out.
Automated unit tests (against the programmer's criteria) and broader acceptance tests (against customer requirements)
must be passed at the end iteration before the next can begin.
2.Scrum
Scrum for software development came out of the rapid prototyping community because prototype developers wanted a
methodology that would support an environment in which the requirements were not only incomplete at the start, but also
could change rapidly during development. Unlike XP, Scrum methodology includes both managerial and development
processes. A typical Scrum process is depicted below.

Copyright, Hexaware Technologies

www.hexaware.com

Agile Methodology: An Airline Business Case

Scrum Management
At the center of each Scrum project is a backlog of work to be done. This backlog is populated during the planning phase
of a release and defines the scope of release. After the team completes the project scope and high-level designs, it
divides the development process into a series of short iterations called sprints. Each sprint aims to implement a fixed
number of backlog items. Before each sprint, the team members identify the backlog items for the sprint. At the end of a
sprint, the team reviews the sprint to articulate lessons learnt and check progress.
During a sprint, the team has a daily meeting called a scrum. Each team member describes the work to be done that day,
progress from the day before, and any blocks that must be cleared. To keep the meetings short, the scrum is supposed to
be conducted with everyone in the same roomstanding up for the whole meeting. When the backlog has been
implemented enough so that the end users believe the release is worth putting into production, management closes
development. The team then performs integration testing, training and documentation as necessary for the product
release.
Scrum Development
The Scrum development process concentrates on managing sprints. Before each sprint begins, the team plans the sprint,
identifying the backlog items and assigning teams to these items. Teams develop, wrap, review and adjust each of the
backlog items. During development, the team determines the changes necessary to implement a backlog item. The team
then writes the code, tests it and documents the changes. During wrap, the team creates the executable necessary to
demonstrate the changes. In review, the team demonstrates the new features, adds new backlog items and assesses
risk. Finally, the team consolidates data from the review to update the changes as necessary.

Pros & Cons of Agile:


Pros

Cons

Very tight feedback loop. Feedback is gathered early,


customer corrections are easier to integrate.

High overhead. The shorter the iteration, the more


time is spent on retrospectives, reporting, etc.

First deliveries are released real soon. Tight


feedback loop is always important. The first feedback
is even more important.

More difficult to get resources on time. The shorter


your planning horizon is, the more difficult it is to
order the external resources like consultations or
prototypes on time.

Strong focus. People keep focused on the goal(s) for


the iteration; there is no chance to get distracted.

More chances to miss the big picture while digging in


the small details.

Constant planning. This ensures that reality always


intervenes with plans.

It might look cumbersome to deduce the planned


efforts with evolving and changing scope. But, with
constant re-planning all the time this could be
mitigated.

Copyright, Hexaware Technologies

www.hexaware.com

Agile Methodology: An Airline Business Case

Summary:
Consistently a successful software development is the result of skilled professionals engaged in a collaborative process of
continuous planning and disciplined execution. The methodologies of agile development do not have the corner on this
market, but it has rightly identified many of the practices, processes and values that make it possible.
Particularly, the agile practices and processes would reap significant benefits towards executing projects and software
product developments in large and dynamic industries like Airlines & Logistics as that helps in realizing the full business
benefit of agility through application of the focused approach. This means better meeting the business expectations in
terms of time, cost and functionality through improved IT productivity.

Copyright, Hexaware Technologies

www.hexaware.com

You might also like