a study in agile development - university of birmingham...the best architectures, requirements, and...

38
Slide 1 A Study in Agile Development Birmingham University Commercial Programming Lectures Tuesday, 29 November 2011

Upload: others

Post on 10-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Slide 1

A Study in Agile Development

Birmingham University

Commercial Programming Lectures

Tuesday, 29 November 2011

Page 2: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Slide 2

Agenda

1. Introductions

2. Agile fundamentals

3. A large scale commercial Agile development project

4. Getting the Agile basics done well

5. More advanced Agile adoption

6. Agile in the marketplace

Page 3: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

1. Introductions

Slide 3

Page 4: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Richard Hilsley...

Slide 4

• Senior Technology Manager at Bank of America Merrill Lynch (BAML)

• In charge of a large development programme building a new global banking platform: 3 year programme, $multi-million, 60 person global team

Background:

• MEng Electronic Engineering, Southampton University, 1996

• I was a techy …C, C++, Mainframe, VB, Java & web (9 yrs)

• Since then, roles in team leading, Project & Program management, Architecture, Consulting, Sales…

• Broad cross-sector experience: retail, healthcare, insurance, new media & entertainment, insurance, banking

• Keen interest in Methodologies, especially Agile for the last 8 years

[email protected]

All comments made in the presentation are the opinion of the presenters and do not

represent any opinion from the Bank of America Merrill Lynch

Page 5: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Bank of America Merrill Lynch...

Slide 5

• One of the world's largest financial institutions

• Serving individual consumers, small- and middle-market businesses and

large corporations

• Biggest Consumer Bank in US (1 in 2 US Households)

• Major supplier of Home Loan and Insurance products in US

• Biggest Credit Card Provider in Europe and 2nd biggest in US

• Has a presence in over 40 countries

• Approx 300,000 employees

• Technology & Operations ~100,000 people!

IBM, Oracle, Microsoft, Google. . . . . BAML

Page 6: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

2. Agile Fundamentals

Slide 6

Page 7: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Agile Manifesto – The Four Guiding Value Statements

Slide 7

We are uncovering better ways of developing

software by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on

the right, we value the items on the left more.

Kent Beck

Mike Beedle

Arie van Bennekum

Alistair Cockburn

Ward Cunningham

Martin Fowler

James Grenning

Jim Highsmith

Andrew Hunt

Ron Jeffries

Jon Kern

Brian Marick

Robert C. Martin

Steve Mellor

Ken Schwaber

Jeff Sutherland

Dave Thomas

© 2001, the above authors

this declaration may be freely copied in any form,

but only in its entirety through this notice.

Page 8: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

The 12 Agile Development Principles

Slide 8

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Welcome changing requirements, even late in development. Agile processes harness change for

the customer's competitive advantage.

Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the

shorter timescale.

Business people and developers must work together daily throughout the project.

Build projects around motivated individuals. Give them the environment and support they need,

and trust them to get the job done.

The most efficient and effective method of conveying information to and within a development

team is face-to-face conversation.

Working software is the primary measure of progress.

Agile processes promote sustainable development. The sponsors, developers, and users should be able to

maintain a constant pace indefinitely.

Continuous attention to technical excellence and good design enhances agility.

Simplicity--the art of maximizing the amount of work not done--is essential.

The best architectures, requirements, and designs emerge from self-organizing teams.

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts

its behavior accordingly.

Page 9: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Agile is...

• Agile is a set of software development best practices that allow for rapid

delivery of high-quality software

•Test-driven development; test automation

•Continuous code improvement

• Agile is a project management process that encourages frequent

inspection and adaptation

•Iterative development

•Release early, release often (e.g. every 2 weeks)

•„Just-in-time‟ requirements definition - teams respond quickly to changing

business requirements.

• Agile fosters strong team work

•“People” over “Process”

•…but this is also a challenge as it is a shift in the way people have traditionally

worked in software engineering

Slide 9

Page 10: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Agile lifecycle

• Incrementally deliver versions of the solution.

• At each iteration, design modifications are made and new functional capabilities

(stories) added, informed from learning of previous development and usage

• Constant feedback cycle; highly collaborative

• Focussed on delivering Business Value early – “release early, release often”

Slide 10

Page 11: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Improvements over Waterfall

Slide 11

• Waterfall is linear & process driven. Work cascades down the stages, handled by

separate teams

• BUT Waterfall does not cope with uncertainty. It requires complete closure of a

stage before moving to next

• YET software development is inherently uncertain:

– Many of the [system's] details only become known to us as we progress in the

[system's] implementation. Some of the things that we learn invalidate our design and

we must backtrack1

Agile development seeks to remedy this

1 David Parnas, early pioneer of Software Engineering

Page 12: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Stories, Story points, Velocity, Burn-downs...??

... Are all Agile terms & metrics for requirements

management & progress reporting

Slide 12

Page 13: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Stories and Story Points

Slide 13

34

1 2 3 5 8 13 21 34 55 89 144 233 377 ....

13

55

5

89

Story „Backlog‟

Fibonacci series

• Story points provide a means for estimating the

relative size and complexity of stories without

creating the implied precision that estimates

given in hours would give

• The Project Team and Project Stakeholders

should understand the lack of precision that is

possible when estimating requirements,

regardless of the format

• Normalizing the estimation of requirements is

critical to tracking team metrics during the

project, and to estimating and prioritizing

features

Story (requirement)

Page 14: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

-100

0

100

200

300

400

500

600

700

800

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Sto

ry P

oin

ts

Iteration

Burn-Up and Burn-Down

Remaining Story Points

Completed Story Points Cumulative

Total Story Points (Scope)

Linear (Remaining Story Points)

Burn Charts (Progress)

14

Green Line representsthe estimated story backlog which has been established during iteration

Red Line representsthe cumulative delivery of working functionality (stories)

Blue Line represents

the remaining

estimated story

backlog

Page 15: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

3. A large scale commercial Agile

development project

Slide 15

Page 16: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Global Liquidity Platform

“A strategic platform to enhance the delivery of its global

liquidity product offering. The new Global Liquidity

Platform is a centralized technology hub that enables the

company to provide consistent, seamless and integrated

liquidity solutions to clients around the world.”

http://www.finextra.com/news/announcement.aspx?pressreleasei

d=34704

16

Page 17: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Project background & why Agile

• A strategic new platform

– multi-year

– substantial $ investment

– Market differentiating

• Being a new platform, solution is not crystal clear, problems are not

predictable

– We can embrace change

– Deliver market-aligned products

• Business see results faster in the form of working versions of

software

– Frequent releases, faster products to market

– Future investment more assured

17

Page 18: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Technology Challenges

• New platform, „new‟ technology in legacy dept with prevailing „slow‟

processes

• Business want everything yesterday! AND they want high quality

• How many people? >> Double it!!

• Lack of domain knowledge

• Lack of Agile know-how

Slide 18

Page 19: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

4. Getting the Agile basics done well

Slide 19

Page 20: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

lessons learned

1. Write good stories, especially good quality acceptance

criteria

Stories are the currency of engagement with the business so if we get it

wrong, we can lose our audience or build the wrong product.

Story acceptance criteria drive the testing activity so a poorly written

story can create a lot of defect rework later on

20

Page 21: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

lessons learned

2. Done must mean DONE

This is about confidence that each new story is properly delivered

(coded and fully tested), which all too often had not been happening.

It is vital as it drives the burn-up charts which is the only true measure

of progress (working software)

21

Page 22: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

lessons learned

3. You need some basic Engineering Practices in place at

the start

Continuous Integration

Pair Programming

Domain Driven Design

Test Driven Development

Refactoring

You need these in order to become Agile (flexible) in the first place -

retrofitting is hard.

22

Page 23: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

lessons learned

4. Effective communication

Agile is all about frequent communication (people over process) but is a

culture that needs fostering.

Despite the apparent simplicity of agile principles, continuous re-

enforcement & coaching to teams is necessary

23

Page 24: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

5. More advanced Agile adoption

Slide 24

Page 25: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Team room

Slide 25

In a recent survey of agile projects, success rates for teams located in the same

room were over 20% higher than those for geographically distributed teams

Scott Ambler, Has Agile Peaked?, Dr. Dobbs Journal, June 2008

Page 26: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Kanban story wall

Slide 26

Page 27: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Nice reports

Slide 27

Page 28: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Delivery pipeline reports

Slide 28

Page 29: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Blockage charts

Slide 29

Page 30: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Continuous Delivery Pipeline

Slide 30

Automate

Everything!!

Page 31: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Continuous Delivery Tools (e.g. Hudson)

Slide 31

Page 32: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Quality Analysis tools (e.g. Sonar)

Slide 32

Page 33: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

6. Agile in the Marketplace

Slide 33

Page 34: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Industry research says

Slide 34

Forrester Research‟s “Forrester Wave Q2 2010” says, “Agile

rapidly becoming the norm” for software development:

Page 35: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Lots of noise & rhetoric in the Agile community!

Slide 35

Extreme Programming (XP)

scrum Iterative

Agile Unified Process (AUP)

Kanban

Cleanroom

lean

RAD Rational Unified Process (RUP)

Page 36: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Amazon book search!

Slide 36

# books

time1980 1990 2000 2010

?3,979

1,224

Oct 1985

C++ first

commercial

release

Early 2001

Agile manifesto

published

“C++” “Agile”

Page 37: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Project Topics

1. Large scale software projects can have many technical Enterprise dependencies. What patterns & practices are needed in introducing a continuous delivery pipeline in this type of environment?– Critique the assumption that people processes are less important than

technical rigour/automation

– Describe the types of tools required to facilitate a Continuous Delivery pipeline (assuming a software project written in the language of your choice, e.g. Java, C#)

2. Compare & contrast iterative methodologies RUP, Scrum & Kanbanand comment on their relative strengths, weaknesses and suitability for commercial application.

References:http://agilemanifesto.org (the underlying principles of Agile by its Inventors)

http://www-01.ibm.com/software/awdtools/rup/

http://www.scrum.org/

http://www.kanbanblog.com/explained/index.html

http://continuousdelivery.com

Book: Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation

Slide 37

Page 38: A Study in Agile Development - University of Birmingham...The best architectures, requirements, and designs emerge from self-organizing teams. ... •Agile is a set of software development

Slide 38

Further reading

Agile Software Development

• Head First Software Development, Dan Pilone & Russ Miles, 2008 (Overview Book)

• The Pragmatic Programmer: From Journeyman to Master, Andy Hunt & Dave Thomas, 1999

• Extreme Programming Explained: Embrace Change 2nd Edition, Kent Beck & Cynthia Andres, 2004

User Stories

• User Stories Applied: For Agile Software Development, Mike Cohn, 2004

Agile Estimation & Planning

• Agile Estimating & Planning, Mike Cohn, 2005

Test Driven Development

• Test Driven Development: By Example, Kent Beck, 2002

• Pragmatic Unit Testing (NUnit and JUnit editions), Andy Hunt et al, 2004-2007

• xUnit Test Patterns: Refactoring Test Code, Gerard Meszaros, 2007

Refactoring

• Refactoring: Improving the Design of Existing Code, Martin Fowler et al, 1999