Upload
arjan-franzen
View
229
Download
1
Embed Size (px)
Citation preview
Who are we?• Arjan Franzen
• In professional software engineering since 2000 (hobby since I was 9)
• Titles & Roles: Engineer, Lead Engineer, Architect, Development Manager, Scrum master, Agile Coach
• Cheering agile since 2005, lean since 2010
• Hugo Messer• MBA Erasmus in Rotterdam• 2005: Start Bridge• 2008: lived in India 1,5 years• 2005-2010: cried many times• 2014: Wrote 6 books about managing remote teams• 2015: Ekipa.co & start workshops to help others
What have we tried so far?
•Waterfall
•V-Model
•RUP
•Scrum
•Statistics are against us here:•Normal distribution? No!
The Agile Manifesto –a statement of values (2001)
Process and toolsIndividuals and interactions over
Following a planResponding to change over
Source: www.agilemanifesto.org
Comprehensive
documentationWorking software over
Contract negotiationCustomer collaboration over
‘Elaborateness’Agile methodologies compared (Roles, Activities & Artifacts)
120+13 9 6 0
RUP XP Scrum Kanban Whatever
More adaptiveMore prescriptive
Agile & Scrum Compared
“ Scrum is an implementation for software projects that follows the values of the agile manifesto.”
Lean Thinking
• Eliminate waste
• Build quality in
• Create knowledge
• Deliver as fast as possible
• Defer commitment
• Respect people
• Optimize the whole
Agile & Lean ComparedAgile and Lean are not exactly defined but rather are principles and practices
“ Agile focuses on well organized process which allows frequent delivery which makes it easy to adjust the course of development”
“Lean focuses more on limiting waste (Inc. WIP which is a waste) and making production and delivery workflow efficient”
• Kanban (method) = approach to incremental, evolutionary process improvement for organizations = change management tool = managing flow
• Scrum = an iterative and incremental agile software development framework for manageing software projects and products or application development (managing iterations)
Compare Scrum to Kanban
• Limit work in Progress (WIP)
• Visualize the workflow
• Manage flow
• Make policies explicit
• Implement feedback loops
• Improve Collaboratively, evolve experimentally (Scientific Method)
Kanban is Simplehas only 6 key principles
Sprints
• Scrum projects make progress in a series of “sprints”
• Typical duration is 2–4 weeks or a calendar month at most
• A constant duration leads to a better rhythm
• Product is designed, coded, and tested during the sprint
Sequential vs. overlapping development
Source: “The New New Product Development Game” by Takeuchi and Nonaka. Harvard Business Review, January 1986.
Rather than doing all of one thing at a time...
...Scrum teams do a little of everything all the time
Requirements Design Code Test
No changes during a sprint
• Plan sprint durations around how long you can commit to keeping change out of the sprint
Change
Product owner
• Define the features of the product
• Decide on release date and content
• Be responsible for the profitability of the product (ROI)
• Prioritize features according to market value
• Adjust features and priority every iteration, as needed
• Accept or reject work results
The ScrumMaster
• Represents management to the project
• Responsible for enacting Scrum values and practices
• Removes impediments
• Ensure that the team is fully functional and productive
• Enable close cooperation across all roles and functions
• Shield the team from external interferences
The team• Typically 5-9 people
• Cross-functional:
• Programmers, testers, user experience designers, etc.
• Members should be full-time
• May be exceptions (e.g., database administrator)
The team
• Teams are self-organizing
• Ideally, no titles but rarely a possibility
• Membership should change only between sprints
Cross functional team
• Multiple ‘Hats’
• Web Developer ‘Hat’
• Test ‘Hat’
• Delivery Engineer ‘Hat’
• Code Analysis ‘Hat’
• Design ‘Hat’
• Database ‘Hat’
• Operations ‘Hat’
• Security ‘Hat’
• Sprint Planning
• The Daily scrum
• Sprint Review
• Sprint Retrospective
•Backlog refinement (grooming)
Scrum Ceremonies
Sprint planning• Team selects items from the product backlog they
can commit to completing
• Sprint backlog is created• Tasks are identified and each is estimated (1-16 hours)
• Collaboratively, not done alone by the ScrumMaster
• High-level design is considered
As a vacation planner, I want to see photos of the hotels. Code the middle tier (8 hours)
Code the user interface (4)Write test fixtures (4)Code the foo class (6)Update performance tests (4)
Sprint planning meeting
Sprint prioritization
• Analyze and evaluate product backlog
• Select sprint goal
Sprint planning
• Decide how to achieve sprint goal (design)
• Create sprint backlog (tasks) from product backlog items (user stories / features)
• Estimate sprint backlog in hours
Sprint
goal
Sprint
backlog
Business
conditions
Team
capacity
Product
backlog
Technology
Current
product
The daily scrum
• Parameters
• Daily
• 15-minutes
• Stand-up
• Not for problem solving
• Whole world is invited
• Only team members, Scrum Master, product owner, can talk
• Helps avoid other unnecessary meetings
Everyone answers 3 questions
• These are not status for the ScrumMaster• They are commitments in front of peers
What did you do yesterday?1
What will you do today?2
Is anything in your way?3
The sprint review
• Team presents what it accomplished during the sprint
• Typically takes the form of a demo of new features or underlying architecture
• Informal
• 2-hour prep time rule
• No slides
• Whole team participates
• Invite the world
Sprint retrospective• Periodically take a look at what is and is not working
• Typically 15–30 minutes
• Done after every sprint
• Whole team participates
• Scrum Master
• Product owner
• Team
• Possibly customers and others
Start / Stop / Continue• Whole team gathers and discusses what they’d like to:
Start doing
Stop doing
Continue doingThis is just one of many ways to do a sprint retrospective.
Product backlog• The requirements
• A list of all desired work on the project
• Ideally expressed such that each item has value to the users or customers of the product
• Prioritized by the product owner
• Reprioritized at the start of each sprintThis is the
product backlog
A sample product backlog
Backlog item Estimate
Allow a guest to make a reservation 3
As a guest, I want to cancel a reservation. 5
As a guest, I want to change the dates of a
reservation.3
As a hotel employee, I can run RevPAR reports
(revenue-per-available-room)8
Improve exception handling 8
... 30
... 50
The sprint goal• A short statement of what the work will be focused
on during the sprint
Database Application
Financial services
Life Sciences
Support features necessary for population genetics studies.
Support more technical indicators than company ABC with real-time, streaming data.
Make the application run on SQL Server in addition to Oracle.
Managing the sprint backlog• Individuals sign up for work of their own choosing
• Work is never assigned (push vs pull)
• Estimated work remaining is updated daily
Managing the sprint backlog• Any team member can add, delete or change the
sprint backlog
• Work for the sprint emerges
• If work is unclear, define a sprint backlog item with a larger amount of time and break it down later
• Update work remaining as more becomes known
A sprint backlog
Tasks
Code the user interface
Code the middle tier
Test the middle tier
Write online help
Write the foo class
Mon
8
16
8
12
8
Tues
4
12
16
8
Wed Thur
4
11
8
4
Fri
8
8
Add error logging
8
10
16
8
8
Ho
urs
40
30
20
10
0Mon Tue Wed Thu Fri
TasksCode the user interface
Code the middle tier
Test the middle tier
Write online help
Mon8
16
8
12
Tues Wed Thur Fri4
12
16
7
11
8
10
16 8
50
Definition of Done
• Stories allowed to move to done when they comply to this definition
• “Done” or “Done Done”
• Example:• Code Complete
• Unit tests written and executed
• Integration tested
• Performance tested
• Documented (just enough)
• Form teams of 4-6 people• Each Team 1 lego box
• There is 1 Product Owner (who is also a trainer)
Scrum in PracticeRules
• Pre-game (50 min)• Organizing teams
• Defining the Process
• Project chartering
• Building the Backlog
• Estimating
• Game (3 sprints)• Sprint Planning (3min)
• Sprinting (7min)
• Sprint Reviewing (5min)
• Post-game• Debriefing
Phases
• All teams will be building a single product – they are not competing, rather they work for the same vendor.
• The product is a CITY with certain features.
• The main building elements are LEGOs, though any other material can be used in addition.
• The PO is the main decision maker of the product – it is my city.
• I will be involved in the development process by being available to answer questions and provide feedback.
Goals
What to build
• 1 storey-buildings (several)
• 2 storey-buildings (several)
• Shop
• School
• Hospital
• Kindergarten
• Bus Stop
• Intersection
• Park
• River
• Bridge
Debriefing
• What did you observe?
• How did it feel being on a scrum team?
• How did the short iterations go?
• How accurate were the estimations (provided the Release Burndown is there)
• What would we have done differently from the beginning, if we had another chance to play the game?
• How did it feel after the first sprint when almost all items required re-work?
• What did the scrum master do?
• How will your strategy change, if you know the Product Owner is unavailable during sprints?
• How did inter-team communication go? Where there any dependencies? How were they resolved?
• What did students learn?
Scalability
• Typical individual team is 7 ± 2 people
• Scalability comes from teams of teams
• Factors in scaling
• Type of application
• Team size
• Team dispersion
• Project duration
• Scrum has been used on multiple 500+ person projects
To DevOps
Customer
Delivery team
Constant flow of new features into production
Operation + Release
Analysis + Design
Integration + QADevelopment
Testing + DemonstrationCustomer
Centralized QA Centralized IT Operations
Agile team
The Last Mile
“If it hurts, do it more often”Frequent Releases Infrequent releases
Smaller releases, Less risk
Effort peaks, High risk
Ch
an
ge
Time
Ch
an
ge
Time
Frequent Releases Infrequent releases
Smaller releases, Less risk
Effort peaks, High risk
Ch
an
ge
Time
Ch
an
ge
Time
Development / DevOps Culture
• Continuous Improvement
• Ideas are experimented with (Kata) instead of squashed
• Feedback instead of fire fighting
• Visualized overview instead of unread documents
• Team Autonomy instead of Centralized control
• Eliminate all costly work handover
• Context , not Control
• Tribes, Guilds, Chapter
• System owners/ Architects
• Loosely coupled & tightly aligned
Is it Continuous
• ‘How long does it take to change a single line of code?’
• Small releases
• Continuous Integration• Branching/Merging
• Continuous Deployment• Automated tests
• DevOps
Agile Software Requirements
• Use Cases, User Stories
• S.M.A.R.T• Specific
• Measureable
• Attainable
• Relevant
• Timely
• Lean Startup (Customer Development)
84
uc my real User Story
Administrator
User
General requirement
Configure recorder
Record Stuff
External System
Interface with
recorder
My Real User Stories: Roles and Systems
User Story
• Always use the Narrative
• Always describe the benefit
• User Stories in central location (not email)
• Dan North article
User Stories: Pitfalls
• Describe the problem, not the solution• As a Home owner
• I want to Shovel Snow
• So that I can get out of my driveway to get to work
• Problems!
• Better:• As a home owner
• I want my driveway to be cleared of snow
• So that I can drive in and out of my driveway to get to work
1. Focus on the user
2. Use stories to facilitate a conversation
3. Story writing is teamwork
4. Keep your stories simple and concise
5. Progressively decompose
6. Don’t forget the acceptance criteria
7. Consider grouping user stories into themes
8. Use paper cards
9. Keep your stories visible
10. Some things aren’t stories
Roman Pichler’s 10 tips for user stories
Thank you!
• http://blog.ekipa.co/CSM_training (scrum Alliance Training)
• http://sparkeducation.nl/scaling-up-summit/ (Jeff Sutherland)