Vous êtes sur la page 1sur 9

Whitepaper

Hexaware Technologies Nurturing Relationships. Enhancing Value.

Title Published on Author (s)

Agile Methodology: An Airline Business Case

: June 2009 : 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 Very tight feedback loop. Feedback is gathered early, customer corrections are easier to integrate. Cons 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. More chances to miss the big picture while digging in the small details. 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.

Strong focus. People keep focused on the goal(s) for the iteration; there is no chance to get distracted. Constant planning. This ensures that reality always intervenes with plans.

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

Vous aimerez peut-être aussi