Upload
others
View
25
Download
0
Embed Size (px)
Citation preview
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
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
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
What is Scrum?
• Framework - for agile software
development
• Key concepts: - Iterative and incremental - Small self-organizing teams - Short feedback loops - Priority by business value
• Articulate the project vision • Determine and prioritize goals and
objectives • Define incremental releases • Get vision accepted by all
stakeholders
Starting a Scrum Project - Envisioning
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
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
• 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
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
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
• 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
• 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
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
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)
• How long will it take? - Is a legitimate question - Based on past performance
rather than guessing - Agile estimating works
Agile estimating and tracking
• 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/
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
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
Mars .NET reports and charts
9%
30%
24%
28%
10%
ArcGIS Runtime for WPF (Mars .Net)
DesignDevelopmentTestDocumentationEvent
• 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
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
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
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
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
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
Benefits
• Bring the maximum value to our users
• More productive • Successful Projects • Accurate Estimates • Transparency to Stakeholders • All team members participate • Continuous process improvement
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
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
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
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]