agile methodology: an airline business case - … · whitepaper agile methodology: an airline...

8
© 2009 Hexaware Technologies. All rights reserved. www.hexaware.com Whitepaper Agile Methodology: An Airline Business Case Published on: Jun-09 | Author: Ramesh & Lakshmi Narasimhan YOUR SUCCESS IS OUR FOCUS

Upload: phungbao

Post on 01-Sep-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Methodology: An Airline Business Case - … · Whitepaper Agile Methodology: An Airline Business Case Table of Contents 1. Introduction 2. Subject Clarity 3. Agile Methodologies

© 2009 Hexaware Technologies. All rights reserved. www.hexaware.com

WhitepaperAgile Methodology: An Airline Business Case

Published on: Jun-09 | Author: Ramesh & Lakshmi Narasimhan

YOUR SUCCESS IS OUR FOCUS

Page 2: Agile Methodology: An Airline Business Case - … · Whitepaper Agile Methodology: An Airline Business Case Table of Contents 1. Introduction 2. Subject Clarity 3. Agile Methodologies

WhitepaperAgile Methodology: An Airline Business Case

Table of Contents1. Introduction2. Subject Clarity3. Agile Methodologies4. Pros & Cons of Agile5. Summary

0303040607

Author’s BioRamesh has 13+ years of experience in SW development. He has managed big projects in airline domain that includes re-engineering of legacy cargo operations system to a Java based solution as well as specializes in software development & maintenance of airline applications and portals.

Lakshmi Narasimhan (Lakshmi) has 20+ years experience in airline industry both in business domain and IT. As part of his service with 2 major airlines, leading airline Product Company and leading IT Services Company, he has special-ized in business consulting, product conceptualization & implementation and business process management.

2© 2009 Hexaware Technologies. All rights reserved. www.hexaware.com

Page 3: Agile Methodology: An Airline Business Case - … · Whitepaper Agile Methodology: An Airline Business Case Table of Contents 1. Introduction 2. Subject Clarity 3. Agile Methodologies

1. IntroductionAgile 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. Dobb’s 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.

2. Subject ClarityAgile 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:

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:

3

Whitepaper

© 2009 Hexaware Technologies. All rights reserved. www.hexaware.com

Offshoring ETL Development in EPM projects

Waterfall features distinct phases with checkpoints and deliverables at each phase, while Agile methods haveiterations rather than phases. The outputs of these iterations are working codes that can be used to evaluate andrespond to changing and evolving the user requirementsWaterfall assumes that it is possible to have perfect understanding of the requirements from the start. But in softwaredevelopment, stakeholders often are not able to provide upfront on what they want and cannot articulate their requirements.

Design

Requirements

Implementation

Verification

Maintenance

Page 4: Agile Methodology: An Airline Business Case - … · Whitepaper Agile Methodology: An Airline Business Case Table of Contents 1. Introduction 2. Subject Clarity 3. Agile Methodologies

4

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 they’re 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:

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 ProgrammingThis 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.

Whitepaper

© 2009 Hexaware Technologies. All rights reserved. www.hexaware.com

Agile Methodology: An Airline Business Case

3. Agile Methodologies

Project Sign -off

Release

Iterations

Pre - IterationPlanning Iteration Planning

Iteration Wrap - up

Iteration Execution

Post - IterationConsolidation

Test Cases

User Stories

Requirements

ReleasePlan

NextIteration

SmallRelease

LatestVersion

BugsNew User Stories

ReleasePlanning

Iteration AcceptanceTesting

Page 5: Agile Methodology: An Airline Business Case - … · Whitepaper Agile Methodology: An Airline Business Case Table of Contents 1. Introduction 2. Subject Clarity 3. Agile Methodologies

5

Whitepaper

© 2009 Hexaware Technologies. All rights reserved. www.hexaware.com

Agile Methodology: An Airline Business Case

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.

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.ScrumScrum 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.

Sprint

Scrum Management

Scrum Development

Planning & High levelDesign

Sprint Plan

Sprint Review

Release

Adjust Wrap

Review

Develop

Page 6: Agile Methodology: An Airline Business Case - … · Whitepaper Agile Methodology: An Airline Business Case Table of Contents 1. Introduction 2. Subject Clarity 3. Agile Methodologies

Scrum ManagementAt 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 room—standing 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 DevelopmentThe 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.

4. Pros & Cons of Agile

6

Whitepaper

© 2009 Hexaware Technologies. All rights reserved. www.hexaware.com

Agile Methodology: An Airline Business Case

snoCsorP

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.

Page 7: Agile Methodology: An Airline Business Case - … · Whitepaper Agile Methodology: An Airline Business Case Table of Contents 1. Introduction 2. Subject Clarity 3. Agile Methodologies

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.

7

Whitepaper

© 2009 Hexaware Technologies. All rights reserved. www.hexaware.com

Agile Methodology: An Airline Business Case

5. Summary

Page 8: Agile Methodology: An Airline Business Case - … · Whitepaper Agile Methodology: An Airline Business Case Table of Contents 1. Introduction 2. Subject Clarity 3. Agile Methodologies

8

Whitepaper

© 2009 Hexaware Technologies. All rights reserved. www.hexaware.com

Agile Methodology: An Airline Business Case

Address1095 Cranbury South River Road, Suite 10, Jamesburg, NJ 08831. Main: 609-409-6950 | Fax: 609-409-6910

Safe Harbor Certain statements on this whitepaper concerning our future growth prospects are forward-looking statements, which involve a number of risks, and uncertainties that could cause actual results to differ materially from those in such forward-looking statements. The risks and uncertainties relating to these statements include, but are not limited to, risks and uncertainties regarding fluctuations in earnings, our ability to manage growth, intense competition in IT services including those factors which may affect our cost advantage, wage increases in India, our ability to attract and retain highly skilled professionals, time and cost overruns on fixed-price, fixed-time frame contracts, client concentration, restrictions on immigration, our ability to manage our international operations, reduced demand for technology in our key focus areas, disruptions in telecommunication networks, our ability to successfully complete and integrate potential acquisitions, liability for damages on our service contracts, the success of the companies in which Hexaware has made strategic investments, withdrawal of governmental fiscal incentives, political instability, legal restrictions on raising capital or acquiring companies outside India, and unauthorized use of our intellectual property and general economic conditions affecting our industry.

To learn more, visit ..........................................................