43
Agile Software Development Stefan Balbo / Patrick Dolemieux

agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Embed Size (px)

Citation preview

Page 1: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Agile Software Development Stefan Balbo / Patrick Dolemieux

Page 2: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Content

• Why go Agile? • Introduction to Scrum

- Process - Roles

• Agile Estimating and Tracking • Scaling Scrum • Design in the Scrum Process • Benefits • Pitfalls and Best Practices • Resources

Page 3: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Why go Agile?

Development projects have progressed over time • More complex

• More scope changes

Page 4: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Why go Agile?

Development process has stayed the same • Inadequate process results in

projects that - Fail

- Have poor quality

- Are frustrating to work on

- Take longer than expected

32%

44%

24%

IT Project Survey (Standish 2009)

SuccessFailingFailure

Page 5: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Requirements

Design

Implementation

Test

The Waterfall Model

Page 6: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

What is Agile Software Development?

The Agile Manifesto (2001): Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Page 7: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

What is Scrum?

• Framework - for agile software

development

• Key concepts: - Iterative and incremental - Small self-organizing teams - Short feedback loops - Priority by business value

Page 8: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

• Articulate the project vision • Determine and prioritize goals and

objectives • Define incremental releases • Get vision accepted by all

stakeholders

Starting a Scrum Project - Envisioning

Page 9: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars.NET Project Vision

• Mars .Net is a project dedicated to the WPF .Net developer community that is aiming the following objectives:

- Integrated into the ArcGIS Ecosystem

- Fast Display

- Small Footprint

- Easy to Deploy

• Mars .Net is a code name

• The product name is ArcGIS Runtime SDK for WPF

• Mars logo is

• Project started in Q3 2010 - Current sprint is #26

Page 10: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .Net – The Context

WPF SDK Java SE SDK

WPF API

ArcGIS Runtime

Software Developer Kits

Object Models

Runtime

Java SE API

Android SDK

Android API iOS API

iOS SDK

Local Server

Core Runtime

Mars .Net

Page 11: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

• Create a prioritized list of Epics • Create a prioritized backlog of

items (PBIs) - Tip: INVEST in your backlog

- Independent, Negotiable, Valuable, Estimable, Small, Testable

• Estimate the items • Estimate team’s velocity • Calculate preliminary date • Get stakeholder consensus

and commitment to proceed

Starting a Scrum Project - Release Planning

renjith krishnan / FreeDigitalPhotos.net

Page 12: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET – Releases and PBIs

Page 13: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET – Backlog description

Page 14: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Scrum Framework

Iteration 3 weeks

Product Backlog

Iteration Backlog

Scrum Questions: § Done? § Do? § Impediments?

Potentially Shippable Product

“Done”

Daily

Scrum

Iteration Review

Iteration

Retrospective

Iteration Planning

Page 15: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Responsibilities of a Scrum Team

• Cross-Functional (5-9 members) • Agrees to iteration goal and

specifies work results • Empowered to do anything to

reach the iteration goals - within the project guideline

boundaries

• Organizes itself and its work • Demos work results to the

stakeholders

renjith krishnan / FreeDigitalPhotos.net

Page 16: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

• Defines product features • Prioritizes product backlog • Establishes, communicates and

nurtures the vision • Accepts or rejects work results • Grooms the product backlog • Product Owner is the

- vision keeper - daily decision maker - single wringable neck

Product Owner Responsibilities

Page 17: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

• Ensures team is productive • Enables close cooperation • Removes barriers • Shields team from interferences • Ensures the process is followed • Invites to Scrum meetings • The Scrum Master is the

- Shepherd - Bulldozer - servant leader

Scrum Master (Agile Coach) Responsibilities

Page 18: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars.NET – The Team

Product Engineers Developers Adrien (samples) Chris (Dev Lead) Dara (Doc & Test) Innes Kerrie (Test) Morten Mike (Product Owner)

Mary (Scrummaster)

The team works in coordination with: • Mara – Documentation/Resources Center Coordinator • Lindsay – Release Coordinator • Rob – Product Manager • Patrick – Program Manager • Scott, Clint, Jim, Euan – Stakeholders

Page 19: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Sprint planning

• Prerequisite: - PBIs considered in Sprint are fully defined (What?)

• Team effort (1/2 to 1day) • Define Goals • Select PBI’s • Determine implementation (How?)

- Define Tasks for each PBI - UI Design - Architecture - Dev - Test - Doc

- Estimate tasks in hours (2-24)

Page 20: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET Sprint Planning – Sprint Goals

Page 21: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET Sprint Planning – PBI and Tasks

Page 22: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET Sprint Planning – Task description

Page 23: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

• How long will it take? - Is a legitimate question - Based on past performance

rather than guessing - Agile estimating works

Agile estimating and tracking

Page 24: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

• Relative estimating - against baseline PBI

• Backlog Items in story points • During a Planning Poker game

- Fun - Entire team participates - Gain mutual understanding

• Measure velocity each iteration

Agile estimating and tracking

http://www.agile42.com/cms/pages/poker/

Page 25: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Agile estimating and tracking

-40

-20

0

20

40

60

80

100

120

140

160

0 23-Mar1

10-Apr2

1-May3

22-May4

12-Jun5

3-Jul6

24-Jul7

14-Aug8

Effo

rt in

Poi

nts

Iteration

MapX Burndown Chart

Velocity Trend

Scope change Trend

Page 26: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET - Estimating

• Product Backlog Items • Story points • It is not time • Based on 3 criterias • Compare to a baseline story • Using Fibonacci suite (1,2,3,5,8,13) • 13 story points is the maximum

• Tasks • Hours • Use ideal time for estimates • Only remaining hours are tracked • Generally between 1-24 hours • 40 hours maximum

Uncertainty

Effort Complexity

Page 27: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET reports and charts

Sprint Burndown Chart

Page 28: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET reports and charts

Team Member Load Chart

Page 29: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET reports and charts

Page 30: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET reports and charts

Page 31: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET reports and charts

9%

30%

24%

28%

10%

ArcGIS Runtime for WPF (Mars .Net)

DesignDevelopmentTestDocumentationEvent

Page 32: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

• Define Team Structure - Feature vs. Component Teams

- Lean towards Feature Teams

• Establish Communities of Practice - Topics affecting many teams

• Hold Scrum of Scrums meetings - Share information between teams

• Look two to three iterations ahead - Coordinate between teams each iteration

• Use Epics to track and communicate - High level Stories

Scaling Scrum

Filomena Scalice / FreeDigitalPhotos.net

Page 33: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .Net – Dimensioning the Teams

WPF SDK Java SE SDK

WPF API

ArcGIS Runtime

Software Developer Kits

Object Models

Runtime

Java SE API

Android SDK

Android API iOS API

iOS SDK

Local Server

Core Runtime

7 members 8 members

8 members

5 members

8 members 6 members

Page 34: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Design in the Scrum Process

• Design and Architecture - Architecture is on the system and sub system level

design is at the class level - Same principles apply - Architecture evolves

• Architecture owner - includes the entire team - coordinates - doesn't dictate architecture

Page 35: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Design in the Scrum Process (cont.)

• Agile Architecture and Design - evolve iteratively

• through - an initial envisioning - implementation of backlog items - refactoring and restructuring

• avoid waterfall BDUF (Big Design Up Front) • that doesn’t mean no design up front

Page 36: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Design in Scrum: Architecture Envisioning

- When? Sprint 0 - Where? Architecture workshop (whole team) 1-3 days - Architecture Workshop

- domain modeling - UI prototyping - identify desired architecture qualities and concerns (e.g.

Portability, Usability, Modifiability, Performance, Security) - identify cross-cutting requirements - Prioritize architecture features by business value - include architectural features into the user stories

- Benefits: - clarity of critical technical issues - shared understanding of architecture and design

Page 37: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Design in Scrum: Architecture Implementation

- select a story and include an architectural feature - select a second story and evolve architecture by

refactoring common functionality - select a third story extending and validating the

architecture - have brainstorming session before and after a

architectural feature is implemented - decide on which/how architectural features to build

during iteration planning - Important

- Hold a technical debt workshop - Document architectural decisions

Page 38: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Benefits

• Bring the maximum value to our users

• More productive • Successful Projects • Accurate Estimates • Transparency to Stakeholders • All team members participate • Continuous process improvement

Page 39: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Pitfalls when using Scrum

• Backlog Items are too big • Backlog Items not fully defined • Team over-commits • Unclear definition of “Done” • Team is too large • Distributed Teams • Product owner proxies • Team members assigned to

multiple Scrum teams • Too many hats • Little or no Release Planning

Page 40: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET Best Practices

• Estimates • Always have a baseline PBI in mind • When a PBI is estimated at 13 story points, consider splitting it • When a task is estimated at 40 hours, consider splitting it

• What means done? • PBI done = Design, implementation, testing, and documentation is done

• This must be a goal for the team • A Design task is never completely done

• It is an iterative process • The first level of being done is the ability to start securely an implementation task

• An Implementation task is done when it is ready to test • A Test task is done when all testing has been achieved and the tester has a list of Change Requests to assign to the developer

Page 41: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Mars .NET Best Practices

• Do design at the earliest

• Avoid having many tasks in progress unless there are impeded

• Speak loud and clear

• Be specific and concise

• Days off and working days on other projects • Must be known in front of sprint • Goal is to better balance the workload

Page 42: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Links, Tools and Literature

• www.scrumalliance.org

• Scrumworks by CollabNet [easy to use, focused Scrum Tool]

• Agile Software Development with Scrum - by Ken Schwaber and Mike Beedle [The first Scrum book]

• Scrum and XP from the Trenches - by Henrik Kniberg [very practical how-to-guide]

• Succeeding with Agile | Software Development Using Scrum - by Mike Cohn (2010) [Helpful for larger scrum implementations]

• Lean Software Development - by Mary Poppendieck and Tom Poppendieck [A good intro to Lean]

Page 43: agile software development - Amazon S3 · Mars .Net is a project dedicated to the WPF .Net developer community ... Scrum Questions: § Done? § Do? ... Agile Software Development

Summary

• Why go Agile? • Introduction to Scrum

- Process - Roles

• Agile Estimating and Tracking • Scaling Scrum • Design in the Scrum Process • Benefits • Pitfalls and Best Practices • Resources