Professional Documents
Culture Documents
Agenda Content
Agile Characteristics Agile Vs Waterfall Agile Methodologies Overview Scrum Deep Dive Sharing of experiences by a project team Product Backlog User Stories, Use Cases Prioritising Product Backlog Pair programming Test Driven Development Continuous Integration Agile Reflections
2 Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
1
Its simple to explain and recall.
Do the requirements, then design, and then implement. IID is more complex to understand and describe. Even Winston Royces original two iteration waterfall immediately devolved into a single sequential step as other adopters used it and writers described it.
2
It gives the illusion of an orderly process.
It gives the illusion of an orderly, accountable, and measurable process, with simple document- driven milestones (such as requirements complete).
3
It was promoted heavily.
It was promoted in many software engineering, requirements engineering, and management texts, courses, and consulting organizations. It was labeled appropriate or ideal, seemingly unaware of this history or of the statistically significant research evidence in favor of IID
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Where these statements are not yet true, we will work together to make them a reality.
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Uses continuous stakeholder feedback to deliver high-quality, consumable code through user stories and a series of short, timeboxed iterations.
Principals
End Users
Partners
Insiders
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
10
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Plan
Understand and confirm how to build it
Develop
Build it
Qualify
Test it
ROLLOUT
Deploy it!
Agile-Core Process
Concept
Understand what is to be built and who to build it for
Plan
Understand and confirm how to build it
Iteration 1, 2, 3
Build it and test It n Develop & qualify phases
ROLLOUT
Deploy it!
11
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Project Characteristics
Project whose business case has stringent revenue targets that need to be achieved in a short period of time. Project that has legal, accounting or environmental requirements (e.g. Daylight Savings time) with a specific deployment date. Large, complex, integrated portfolio of projects Well understood Architecture Business needs known up front Fixed Scope, Cost and Delivery Date Well understood business process and requirements Small or Large Teams Collocated or Dispersed
Waterfall Process
Concept
Design & Requirements signed off (100%)
Right Project
Plan
Develop
Qualify
Rollout
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Project Characteristics
Requirements / Design must be committed at a Plan DCP May involve user interface or sun set of legacy systems Projects with data mart, complex reporting or user dashboard Project with legal, accounting or environmental requirements (e.g. Daylight Savings time) with a specific deployment date. Highly engaged Client/SMEs Collocated or very strong virtual teaming Small or Medium teams are preferred. Large teams should be broken into focus groups with stringent project management disciplines Collocated or very strong virtual teaming
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Iteration
Develop
Right Project
Iteration
Qualify
13
Stakeholder Feedback
Self-Directed Team
Sustainable Pace
14
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
SCRUM
Crystal
Adaptive
Dynamic Systems Development Method (DSDM): 3 primary phases: PreProject, Project Life-Cycle , Post-Project
Feature Driven Dev. Develop feature list Plan, Design, Build by Feature
Small teams of 68 people Backlog defined requirements that will be addressed in each Sprint Daily 15 min.Scrum meeting to discuss work for the day
Repeating Speculate, Collaborate, Learn cycles Provides for continuous learning and adaptation to changing project state
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Questions?
16
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Credits
18
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Scrum
19
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
4 Key Roles
3 Key Meetings
5 Key Artifacts
1 Development Process
20
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Roles
Responsible for the value delivered by the release Develops and maintains the product backlog Prioritizes the Product Backlog Empowered to make decisions for all customers and users Shields team from external influences Presents and explains Product Backlog to the Team Communicates project progress to Stakeholders Drives User Experience and User Design Accepts and Rejects work results Responsible for maximizing team productivity Sets up and facilitates various Iteration meetings Shield team from external influences Removes barriers Responsible for estimating and committing to work Is self organized and cross-functional Has full autonomy and authority during a Sprint Collaborates with Product Owner Demos to Products Owner
Product Owner
Scrum Master
Scrum Team
Stakeholders
Observes and advises Has material interest in the work of the Scrum Team Provides input via the Product Owner
21
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Key Artifacts
Product Backlog
List of requirements & issues Owned by Product Owner Anybody can add to it Only Product Owner prioritizes
Iteration Goal
One-sentence summary Declared by Product Owner Accepted by team
Iteration Backlog
List of tasks Owned by team Only team modifies it
Blocks List
List of blocks & unmade decisions Owned by ScrumMaster Updated daily
Increment
Version of the product Shippable functionality (tested, documented, etc.)
22
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Key meetings
Iteration Planning Meeting
Hosted by ScrumMaster Attended by all Input: Product backlog, existing product, business and technology conditions 1. Select highest priority items in Backlog; declare the iteration goals 2. Team turns selected items into Iteration Backlog Output: Iteration Goal, Iteration Backlog
Reflection
Every iteration ask What should we: STOP ? START ? CONTINUE ? Then every 2 months do DEF
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Product Backlog
Iteration Goal
Iteration Backlog
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
25
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
DONE
DONE
No Sev 3s or Sev 4s the team including client has not agreed to
DONE
Code, and configuration are unit tested, function tested, system integration tested, performance tested, tested end-to-end, environment test and appropriate user tested. User documentation complete.
DONE
A meaningful stakeholder and user review has been conducted
No Sev 1s or Sev 2s
26
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Scaling Scrum
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Scrum of Scrums
Mountain Goat Software, LLC 28 Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Mountain Goat Software, LLC 29 Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Mountain Goat Software, LLC 30 Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Attendees
Each team sends an individual contributor If four or fewer teams, its OK to send a ScrumMaster also Rotate based on whose skills are needed most Some say daily I usually do these MWF or TuTh These are problem-solving meetings Not time-boxed to 15 minutes Everyone answers four questions
Frequency
Agenda
31
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Questions?
32
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
User Story
34
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
1
A brief description of the story used for planning
2
Conversations about the story
3
Tests that convey and document details
4
Assumptions
5
Estimating Elements IBM Account Adds two additional things
35
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Card
Stories are traditionally written on note cards May be annotated with notes, estimates, etc.
Conversation
Details behind the story come out during conversations with product owner
Confirmation
Acceptance tests confirm the story was coded correctly
36
Source: XP Magazine 8/30/09, Ron Jeffries Mountain Goat Software, LLC Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
A User Story takes the form of: As a <Role>, I want to <Goal> so I can <Business value>. Examples
As a DBA at Wal*Mart, I want to be able to reduce storage consumption so that I manage fewer storage devices.
Note: DBA at Wal*Mart is administering DB2
DBA at Wal*Mart
Sales Representative
As a sales representative in Australia I want to know the release date of the sales order (processing is over) so that I can know when the item is available to ship.
37
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Warning
Include as many people as you can. Make sure that all disciplines are represented.
38
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Testable so that you have an easy, binary way of knowing whether a story is finished
As a sales group person in Australia I want to know the release date of the sales order (processing is over) so that I can know when the item is available to ship
The correct release date is on the product analyst report Must respond within 10 secs Release date is within 30 days of order created Release date can be viewed in the second column
39
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Determine appropriate estimating elements for the User Story to help establish size and complexity.
Numberaof ETLsWal*Mart, I want As DBA at to be created Number of tables to be storage to be able to reduce created Number of Jobs to be created consumption so that I manage fewer Jobs to be modified Number ofstorage devices. Number of Unix scripts to be modified Number of source columns to add
40
Number of tables required Number of service API definitions Number of service resource classes Number of message formats required Number of new security roles Number of supporting web pages
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
document type item category type (related configuration elements required along with item category type can be classified as additional estimation elements), number range categories
# of user education packages needing updates # of interfaces # of security roles / profiles # of Workflow objects # of portal screens # of SAP screens # of BASIS / infrastructureIBM Global Business Services Copyright IBM Corporation 2009 Generation Open | elements
Brief Description
Actor
Successful Solution
Key:
User Story
User Cases
Problem Statement
42
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Product Backlog Consist of the 3 Cs Written using the template Good user stories have the following qualities Broken down into tasks
User stories make up the product backlog Card, Conversation, Confirmation, plus estimation elements and assumptions As a <Role>, I want to <Goal> so I can <Business value>. Independent, Negotiable, Valuable, Estimatable, Sized appropriately, Testable User Stories are broken down into tasks that form the iteration backlog during iteration planning
44
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Product backlog
46
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
47
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Summary
Numerical prioritization
Prioritization takes the form of MoSCoW followed by numerical prioritization
Competing stakeholders
Competing stakeholders can be worked using the prioritization grid
48
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Pair Programming
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Simple concept: two programmers work together at one computer on the same task Driver
Type code, write design
Navigator
Look for defects Think ahead - strategize Brainstorm at any level e.g. design, debug
Together
Reality
Productivity is about equal, elapsed time is halved, quality is improved Study - 22% of extreme programmers spend > 75% of a day in pair programming. Email etc. will always result in part of the day being spent alone Studies show it works well with most pairs 83% of surveyed projects simply rotate pairs changing pairs after several hours or several weeks
This will only work well with the right partner Pair programming is good for training, but once you know what youre doing it is a waste Ill never get credit for anything Ill have to share credit with a partner
Tasks should still have one owner, but on Agile projects, team credit is preferred
51
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Pair Pressure
So as not to let their partner down programmers work smarter and harder in pairs Less likely to violate standards/processes
Pair Negotiation
Each brings different skills, outlook, approach Software decisions are mostly intellectual and have a demonstrably correct answer. Groups typically recognize and select correct intellectual answers.
52
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Pair Courage
Affirmation from your partner avoids time wasted on dithering - if it looks right to me and looks right to you, then its probably right.
Pair Reviews
Immediate feedback - The earlier a defect is found, the easier/cheaper it is to fix (minimal technical debt)
Pair Debugging
Immediate feedback - the earlier a defect is found, the easier/cheaper it is to fix (minimal technical debt) Another person will ask questions, present challenges you hadnt anticipated
53
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Pair Learning
One on one opportunity to teach each other concepts/details on programming language, techniques (e.g. Test Driven Development), standards, patterns, tools etc. Pair Learning happens continually
Pair Trust
A natural outcome of working closely together now Leads to improved communications and teaming later
Fun
54
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Knowledge Transfer
Multiple people become familiar with each part of the system New people to project can contribute earlier Turnover is costly Seven studies 90% of pair programmers agreed they enjoyed their jobs more when pair programming
Happy employees
Elapsed time
Work is accomplished with higher quality in about 1/2 the elapsed time
Teams work together and communicate more effectively. Trust, rapport, common ground enhanced through pair programming
55
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Rotation
Pairs learn more when rotated dysfunctional teams are less of a problem Problems/questions may arise where someone else at the meeting has ideas on resolution pairing may be a good approach to solve the problem Set a rule . When a task owner asks for help, the team member has to say yes
Training
56
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Tips
Give the driver a moment Give the driver a second to correct mistakes, find menu choices etc. It can be annoying to be continually corrected
Swap positions
If youre getting bored or tired, swap positions grab the keyboard if youre navigator
For peace and harmony, talk ground rules first . Start the session talking about likes and dislikes when pairing. Navigator can maintain a side list of issues Separate for a specified period e.g. 10 minutes Let navigator drive for a specified time to demo alternate approach Path for escalating issues Be assertive without being aggressive learn balance
Apply standards
57
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
More tips
Use TDD Write test cases first to provide more focus
Talk a lot
Not listening?
Remote pairing
When co-located
58
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
TDD: Benefits
Increased code quality The tests document the system Confident refactoring Removes paranoia Early defect detection & No Debugging More modularized, flexible, and extensible code
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Continuous Integration
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Benefits
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
67
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Record Feedback
Record feedback from stakeholders
68
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Demo Checklist
Iteration goal Demonstrate working software Keep a high pace Business-oriented demos What did we do Dont demo minor fixes and features
Clearly present the iteration goal Dont spend too much time preparing for the demo focus on demonstrating working software Keep a high pace fast rather than beautiful Keep demo on a business-oriented level leave out technical details Focus on what did we do rather than how did we do it Dont demo minor fixes, trivial features mention them only dont detract from the more important user stories
Scrum and XP from the Trenches, Henrik Kniberg, 2007 C4Media inc
69 Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Answer questions
What did we deliver versus what we expected to deliver? Are we really Agile? What debt did we incur? What went well? What needs improvement? What one or two things could we do better next time?
70
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
You know youre not iterative when Iterations are longer than 4 weeks They are not time-boxed (Each iteration has its own deadline) Team tries to finish all design specifications before programming Iteration doesnt result in workable code Iterations dont include testing
You know you do not use Scrum when The team doesnt know who the product owner is Your user stories dont contain estimates You cannot generate a release burn-down chart and you dont know your velocity
71
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
72
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Big Picture
Bullpen [Custom] Vision Use Cases Automated Unit Tests
Stakeholder Feedback Want more Time-Boxed Iterations Daily Scrum Test Early Reflections Static Analysis Not well specified Not Fridays Not enough TDD Need clear actions Not automated yet. 8.5 8.3 9.3 4.5 8.8 3.3 0.58 0.50
Scrum meeting
0.50
Iterative
2.91 0.50 0.96
Improve Reflect for each iteration Tackle new practices Optional DEF approach
Used by the team to improve not a scorecard Triggers discussion. Team reflects for one hour each iteration. Choose and *Nail* two improvements in the next 2 months. Tackle new practices when others are mastered Optional: share experience report at end of release on your wiki Use this DEF approach, or choose something at least as good
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
See https://w3.webahead.ibm.com/w3ki/display/agileatibm/DEF
73
We dont mind if they share data, pitfalls, and improvements with the organization. But its optional because they have to feel comfortable doing self reflection.
74
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Questions?
75
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009
Thank You!
76
Generation Open | IBM Global Business Services Copyright IBM Corporation 2009