32
Agile Software Methods (fact or fiction) Matt Ganis, IBM/Pace University [email protected] http://webpage.pace.edu/mganis presented at TCF 2010 (http://www.tcf-nj.org/) presentation available at: http://www.slideshare.net/ganis/agile-methods-fact-or-fiction (Template courtesy of: www.presentationmagazine.com )

Agile Methods: Fact or Fiction

Embed Size (px)

DESCRIPTION

Presentation given at the Trenton Computer Festival in April 2010

Citation preview

Page 1: Agile Methods: Fact or Fiction

Agile Software Methods(fact or fiction)

Matt Ganis, IBM/Pace University

[email protected]://webpage.pace.edu/mganis

presented at TCF 2010 (http://www.tcf-nj.org/)

presentation available at: http://www.slideshare.net/ganis/agile-methods-fact-or-fiction

(Template courtesy of: www.presentationmagazine.com)

Page 2: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 2

Matt Ganis

•26 years at IBM

•Professor of Computer Science/Astronomy at Pace University, NY

•IBM Agile Leadership team (leading over 10,000 IBM’ers in their use of Agile/Scrum)

(due June 2010)

Page 3: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 3

Agenda

• What IS Agile ?• Does it really work ?• Who’s doing it ?• But I’ve heard lots of “bad” things….

Page 4: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 4

“Internet Time”

“The Conventional wisdom about competition in the age of the Internet is that the business world has become incredibly fast and unpredictable, and we need to throw out the old rules of the game…..

For companies competing in the new information economy, the Internet is forcing managers and employees to experiment, invent, plan, and change their ideas constantly while they try to build complex new products and technologies”

Competing on Internet Time: Lessons from Netscape and it’s battle with Microsoft

- Michael Cusumano and David Yoffie

Page 5: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 5

Definition of Agile1

Agile is an iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner with "just enough" ceremony that produces high quality software which meets the changing needs of its stakeholders.

1 http://www.agilemodeling.com/essays/agileSoftwareDevelopment.htm

Page 6: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 6

Lean Crystal RUP

Extreme Programming

Scrum

Page 7: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 7

Page 8: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 8

Why Agile ?

• Many clients are struggling with application delivery issues:

– Poor IT relationship with the business– Track record of poor project delivery– Inability to deliver on-time, on-budget– Inability to delivery solutions that meet the needs of the business– Poor results with offshore delivery, or seek to avoid offshore delivery– Large project backlog

• Internal and external IBM delivery projects are interested in Agile techniques to help address delivery excellence challenges

– Requirements often are not well-defined– Speed time to deliver critical business functionality– Reduce technical risk for first of a kind solutions

Page 9: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 9

Exploring (not Big Up-Front Planning)

• Agile is a methodology where by we come up with a solution to a problem not by planning or analysis, but by exploratory programming

• This leads us to Iterative development…

Page 10: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 10

Iterative development(getting closer to the target)

Further iterations

Assuming you knew all the requirements

Page 11: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 11

Agile (XP) Practices

• Planning Game• Small Releases• Simple Design• Continuous Testing• Refactoring• 40-hour work week

• Pair Programming• Collective code ownership• Continuous Integration• On-Site customer• Coding standards

XP is extreme in the sense that it takes 12 well-known software development "best practices" to an extreme

Page 12: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 12

Key Agile Terms

Term Definition

Stories A project conducted under an Agile Method is broken up into a set of very small deliverables called stories.

Velocity Velocity is a method for measuring the rate at which teams consistently deliver business value in a software system (at what rate can they deliver stories)

Iteration

Software developed during one unit of time is referred to as an iteration, which may last from one to four weeks. Each iteration is an entire software project: including planning, requirements analysis, design, coding, testing, and documentation. Stories are implemented within iterations

Customer The stakeholder that is responsible (i.e., has money) and “owns” the requirement

Page 13: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 13

Iterative Development Flow

Stories

Velocity

Unfinished Work

New Function

BugFixes

New Velocity

Refactoring

Retrospective

Iteration Planning Development

Latest Version

ReleasePlan

Bugs

CustomerInteraction

Iteration Plan

Time (two week Iterations)

Page 14: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 14

Trusting the Evidence

Page 15: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 15

“You do not do Agile, you ‘are’ Agile” – Scaling Software Agility – Dean Leffingwell” A Developing Trend

• 65 % work in organizations that have adopted one or more Agile development techniques

• 41 % work in organizations that have adopted one or more Agile methodologies

• 60 % report increased productivity

• 66 % report increased quality

• 58 % report improved stakeholder satisfaction

Page 16: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 16

A better chance for success

• VersionOne Reports

– The results show that, using Agile methods, 86% of respondents saw a better than 10% improvement in time-to-market, while 60% of respondents indicated more than a 25% accelerated time-to-market.

– 81% of respondents considered the Agile projects within their organization as “Somewhat Successful” or “Very Successful” in comparison with only 29% for non-Agile projects.

Page 17: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 17

Happy Customers

A basic Agile principle states:

“Satisfy the customer through early and continuous delivery of valuable software“

If you let customers ask for only their highest priority features, deliver them quickly, then ask for the next highest priority, you are more likely to get short lists of what is important. Moreover, you can respond to their changing circumstances.

Page 18: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 18

Happy Customers

(Taken from a 2009 Dr. Dobbs Survey on the State of Agile Development)

Page 19: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 19

Less Waste !

Customers often don't know exactly what they want at the beginning of a project.

Customers often don't know exactly what they want at the beginning of a project.

64% of the features in a product aren’t

really useful!!!

Page 20: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 20

The Road to success

• Project failures have declined to 15% of all projects, a vast improvement over the 31% failure rate reported in 1994.

• However, projects meeting the “challenged” description—meaning that they are over time, over budget and/or lacking critical features and requirements— total 51% of projects in a recent survey.

Page 21: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 21

Why are they succeeding ?

• The Standish Group having studied over 40,000 projects in 10 years concludes:

– ‘The primary reason is the projects have gotten a lot smaller. Doing projects with iterative processing as opposed to the waterfall method, which called for all project requirements to be defined up front, is a major step forward.’

Page 22: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 22

Saving money (or making more)

• Best in class performers are not only 1.4x more likely to have pursued Agile Development methods, they are hitting high marks on metrics that drive profitability, including revenue, product cost, quality, and launch date targets— 80% or more of the time.

• As a result of streamlining product development with Agile methods and best practices, these companies enjoy 53% more productive product development time per person than their average competitors, and bring products to market 25% faster on average.

Page 23: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 23

Cash flow starts earlier, profits are higher

Opportunity costs are high in single big-bang releases. Agile projects are earlier to market with faster product evolution.

Page 24: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 24

Quality

Surveys looking at the quality of code produced by teams that practice Agile methods shows a rate of

quality (based on the number of reported defects in the deployed code)

Page 25: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 25

Test Driven Development

Page 26: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 26

Test Driven Development

• Having a large set of unit tests enables the frequent change that will occur during an Agile project.

• A large suite of tests will also encourage the team to quickly assemble a working prototype, knowing full well that in future releases that code will be refactored

Page 27: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 27

Let’s look at a few examples……

Page 28: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 28

Lockheed Martin

• Before:

– Were Waterfall where last few months of projects were “fire-drills” which led to errors or omissions compounding “down the line” and “nobody was talking to each other”.

• After:

– A significant majority of those polled within the business area stated they saw a greater than 10% improvement in productivity, product quality, our ability to produce a product quickly with customer satisfaction

• Changes

– There was no ‘recipe' card with the answer for them. Experimentation with various Agile methods and practices was key and they settled on a Scrum framework with Agile best practices pulled from XP, Crystal, Lean, and others for the initial pilot

Source: http://www.agilejournal.com/content/view/313/33/

Page 29: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 29

Adobe• Before:

– We were scrambling so hard to get all the committed features in by the feature complete date - working nights and weekends up to the deadline - that the program was always very buggy at that point.

• After:

– The quality of the program was higher throughout the development cycle, and they reported to have fewer total bugs.

– They were able to incorporate more feedback from outside testers because we didn't switch into "frantic bug fix mode" so early.

• Changes

– Moved from a traditional waterfall method to an incremental development model.

– Resulting in more weekends off, and a third fewer bugs to fix. Source: “Adobe edits the Development style”, - The Register, 2007

Page 30: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 30

Sabre Holdings

Doing more in less time

With a higher level of quality

Page 31: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 31

Summary

Agile is a user-centric development process that focuses on delivering systems that meet dynamic business requirements

Agile is designed to not only cope but welcome changing requirements. It is efficient because it builds quality into it’s

processes.

The customer gives up some certainty about scope and cost.  In return, they get quality, value for money and visible progress.

All parties benefit from the open collaboration and transparency fostered by Agile processes

Page 32: Agile Methods: Fact or Fiction

Matt Ganis – [email protected] / http://webpage.pace.edu/mganis

Slide 32

Thank you !!

Matt Ganis

[email protected]