extreme planning: agile turned to the max devday.lk johannes brodwall @jhannes

85
Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Upload: roderick-carpenter

Post on 31-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Extreme Planning:Agile turned to the max

DevDay.LKJohannes Brodwall

@jhannes

Page 2: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

This talk is about

Page 3: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

What’s this thing we are building?

Page 4: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Use that understanding to plan the work

Page 5: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

A simple way to measure progress

Page 6: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

A simple way to measure progress

(that works just as poorly, but is simpler)

Page 7: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

After this talk

Page 8: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Uncover what needs to be done

Page 9: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Forecast from actual progress

Page 10: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan ourself out of the rush

Page 11: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

But first

Page 12: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Where does the rush come from?

Page 13: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Part I

Page 14: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Yesterday’s weather

Page 15: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes
Page 16: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes
Page 17: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

“How long will it take to drive to

Chicago”

Page 18: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

“How long will it take to drive to

Chicago”Kandy

Page 19: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

t = s/v

Page 20: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

After 1 hours, we have only got to

Mahara…

Page 21: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

vestimate > vmeasured

Page 22: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Product backlog

Page 23: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

8

Page 24: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

8 weeks?

Page 25: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

8 sprints?

Page 26: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

5 stories planned

Page 27: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes
Page 28: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes
Page 29: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

(or 5 stories * 3-8 story points

= 25 story points)

Page 30: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes
Page 31: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

5 stories planned

Page 32: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

4 stories delivered

Page 33: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

6 stories delivered

Page 34: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

7 weeks

Page 35: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Wee

k 1

Wee

k 2

Wee

k 3

Wee

k 4

Wee

k 5

Wee

k 6

Wee

k 7

Wee

k 8

Wee

k 9

Wee

k 10

Wee

k 11

0

20

40

60

80

100

120

DoneTotal

Page 36: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

How many hours?

Page 37: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Cost = (burn rate) * (time)

= (team cost) * (backlog) / velocity

Page 38: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Week numWeek ends Stories plannedAccum Team accum hoursMilina Asanka Chamath Hiran Sankalpa1 07-Apr 5 5 170 40 40 40 10 402 14-Apr 6 11 340 40 40 40 10 403 21-Apr 5 16 510 40 40 40 10 404 28-Apr 7 23 680 40 40 40 10 405 05-May 5 28 850 40 40 40 10 406 12-May 6 34 1020 40 40 40 10 407 19-May 5 39 1190 40 40 40 10 40

Page 39: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Week numWeek ends Stories plannedAccum Team accum hoursMilina Asanka Chamath Hiran Sankalpa1 07-Apr 5 5 170 40 40 40 10 402 14-Apr 6 11 340 40 40 40 10 403 21-Apr 5 16 510 40 40 40 10 404 28-Apr 7 23 680 40 40 40 10 405 05-May 5 28 850 40 40 40 10 406 12-May 6 34 1020 40 40 40 10 407 19-May 5 39 1190 40 40 40 10 40

Architect

Page 40: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

The worst way to answer: To estimate

hours per task

Page 41: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Actual hours =

Σ estimated hours per task * “load factor” * “management overhead” * fudge factor

Page 42: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Actual hours =

Σ estimated hours per task * whatever

Page 43: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Part II

Page 44: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Creating the backlog

Page 45: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

• Vision• Usage flow

• Product backlog

Page 46: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Vision, stakeholder

Page 47: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

For some stakeholderWho wants achieve some goal

The ??? system Is a type of application

Which lets them perform some actions.

Unlike most relevant alternativeOur product has some advantage

Page 48: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

For company employees

Who wants to take leave from work

The Leave-IT system

Is a responsive web application

Which lets them register leave applications and get them approved

Unlike sending emailsOur product lets them keep track of leave days

available and team leaves

Page 49: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Employee

Team lead

PMO

HR

Leave-IT

HRDB

SSO

Page 50: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Usage flow

Page 51: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

1. HR admin logs in via SSO (same for the other stakeholders)

2. HR admin navigates to Leave-IT

3. HR admin allocates leave quotas based on information in HR database

4. HR admin builds company calendar

5. HR admin adjusts the leave quota for an individual user in HR system

6. HR admin assigns leave approvers from uses in HR system

7. Employee views their available leave

8. Employee submits leave request

9. Leave-IT notifies Team leader of a new pending leave request via email

10. Team leader views pending leave applications

11. Team leader checks the other leaves in the same time period

12. Team leader approves leave

13. Leave-IT notifies Employee of an update of his leave request via email

14. Employee checks status of own leave application

15. Employee cancels own leave

16. PMO views the teams' leave calendar, plans and history

17. PMO may cancel leave if necessary

Page 52: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Minimum interesting demo

Page 53: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

1. HR admin logs in via SSO (same for the other stakeholders)

2. HR admin navigates to Leave-IT

3. HR admin allocates leave quotas based on information in HR database

4. HR admin builds company calendar

5. HR admin adjusts the leave quota for an individual user in HR system

6. HR admin assigns leave approvers from uses in HR system

7. Employee views their available leave

8. Employee submits leave request

9. Leave-IT notifies Team leader of a new pending leave request via email

10. Team leader views pending leave applications

11. Team leader checks the other leaves in the same time period

12. Team leader approves leave

13. Leave-IT notifies Employee of an update of his leave request via email

14. Employee checks status of own leave application

15. Employee cancels own leave

16. PMO views the teams' leave calendar, plans and history

17. PMO may cancel leave if necessary

Page 54: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Product backlog

Page 55: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

1. Experimental submit leave

2. Experimental show leave status

3. Simplified layout and style

4. Simplified approve leave

5. Simplified view leave request

6. Simplified submit leave

Page 56: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Experimental X

Simplified X

Basic X

Complete X

Polished X

Page 57: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Demo/deploy/automate

Styling

Testing

Learning

Page 58: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

Step 4

Step 3

Step 2

Page 59: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Experimental X

Simplified X

Basic X

Complete X

Polished X

Page 60: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan weekUser story1 Experimental submit leave request1 Experimental check status of leave request1 Experimental Log in1 Experimental layout and styling1 Log in using Exilesoft SSO (foreign user story from SSO)2 Basic deployment to the cloud2 Simplified view pending leave requests2 Simplied approve or reject leave2 Basic submit leave request2 Experimental check leave calendar for team2 Basic layout and styling3 Simplified view pending leave requests3 Simplified deployment to the cloud with cool demo3 Basic build company holiday calendar3 Basic apply annual leave quotas (accrue or expire)3 Basic apply monthly leave quotas4 Fetch employees with regions from HR system (foreign user story)4 Simplified apply event-based leave quotas4 Complete submit leave request4 Full flow system testing4 Complete check status of leave request4 ISO compliance documentation audit4 Simplified Adjust leave quota5 Pilot deployment to the cloud with cool demo5 Check leave calendar for team5 Build company holiday calendar5 Approve or reject leave5 Check status of leave request6 Apply annual leave quotas (accrue or expire)6 Apply monthly leave quotas6 Apply event-based leave quotas6 Adjust leave quota6 Assign leave approver (roles)6 View available leave quota7 Submit lien leave request7 Submit leave request for other user7 Notify of new leave request7 Forward leave7 Cancel own leave8 Withdraw leave8 Additional functionality #1 identified by ISO audit8 Additional functionality #2 identified by ISO audit8 Additional functionality #3 identified by ISO audit8 Development ends

Release/deployment

Architecture through spike

Technology study

Page 61: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

EstimatePlan

Page 62: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Part III

Page 63: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Planning the sprint

Page 64: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Monday Tuesday Wednesday Thursday FridayNon-project Modelling Mob coding Requirements Pair codingKickoff Mob coding Pair coding Pair coding Pair coding

Monday Tuesday Wednesday Thursday FridayStabilizing Planning ExperimentsDemo Pair coding Pair coding

Page 65: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Planning the demo

Page 66: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Planning the demo

(content)

Page 67: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Experimental submit leave request

1.Go to the front page2.See that there is a dropdown with possible users and

approvers3.Select a user, approver, start date, end date, reason4.See that the number of days is updated5.Click submit6.See that the data is in the database7.Submit a request with no start or end date8.See that there is an error message9.See that the data is not in the database

Page 68: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Log in using Exilesoft SSO (foreign user story from SSO)

1.Open a new web browser and go to the application2.Verify that the user is not logged in3.Click login4.The user is sent to Exilesoft SSO5.Verify that the username is correct when the user is

returned to applicationTODO• SSO must support cross-domain authentication

Page 69: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Log in using Exilesoft SSO (foreign user story from SSO)

1.Delete any existing permission from https://security.google.com/settings/security/permissions

2.Open a new web browser and go to the application3.If you are logged in, click log out4.Click login5.The user is sent to Gmail to authenticate6.Deny the authentication request7.Verify that the login button is still displayed8.Click login again9.Allow the authentication request in Gmail10.Verify that the users email address is displayed11.Click log out12.Verify that user email address is no longer displayed

Page 70: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Planning the demo

Page 71: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Planning the demo

(time)

Page 72: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Monday Tuesday Wednesday Thursday FridayNon-project Modelling Mob coding Requirements Pair codingKickoff Mob coding Pair coding Pair coding Pair coding

Monday Tuesday Wednesday Thursday FridayStabilizing Planning ExperimentsDemo Pair coding Pair coding

Page 73: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Planning the demo

Page 74: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Planning the demo

(practice)

Page 75: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Log in using Exilesoft SSO (foreign user story from SSO)

1.Delete any existing permission from https://security.google.com/settings/security/permissions

2.Open a new web browser and go to the application3.If you are logged in, click log out4.Click login5.The user is sent to Gmail to autenticate6.Deny the authentication request7.Verify that the login button is still displayed8.Click login again9.Allow the authentication request in Gmail10.Verify that the users email address is displayed11.Click log out12.Verify that user email address is no longer displayed

Page 76: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

What are we doing?

When are we done?

Page 77: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Cost = (burn rate) * (time)

= (team cost) * (backlog) / velocity

Page 78: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Create backlog from usage flow

Page 79: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Track stories per week• Forecast

• Actual

Page 80: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

Plan features with demo script

Page 82: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

• Context– “We get a tender with epics and need to give a price” (Janini, Virtusa)

– We have a team that is “confused” – beginning or halfway through

• Get a team together and discuss the who, why, what (actions) and alternatives (vision statement)• Use actions to start the discussion of the usage flow (a narrative that starts with the first

interaction with the (sub)system and ends when the business value is produced)• Create the product backlog from the usage flow. I like the items on the product backlog to be

man-week sized. Each action from the usage flow goes into the product backlog. In addition, the product backlog should contain activities for layout, deployment, specific testing etc.

– Separate different iterations on the same increment in time to accumulate feedback– Prioritize the items for the first internal demo, first external demo and first trial deployment– Simplified user stories can be used to detach teams

• This gives a list which length predicts the number of weeks. Weeks = # Items / number of item producers. Hours = Weeks * Burn rate

• Tracking– As project proceeds, track actual progress (count of items per week) versus forecasted progress. Also track changes in total

scope. This will adjust the forecasted times and costs.– Demonstrate with the customer whenever you can. This will determine if the quality matches their expectations– Deviation in progress, changes in scope or missed expectations mean you should discuss contract with customer or suffer

consequences

• Focus through demo planning– In scrum planning, when you know the scope, come up with a screenplay script for the demonstration. Get someone brave to give

a mock demonstration during the planning. => Focus on the outcomes– Use the demo focus to help the team break down technical dependencies– Practice the demo towards the end of the sprint– Give a demo like you mean it, but don’t lie (unless you want to delude the value of the feedback)

Page 83: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

• Planning – man-week sized items– Gather “everyone” to discuss => usage flow– Usage flow actions x revisits (experimental, simplified, basic,

complete, polished), technical items (layout), releases => product backlog (releases planned in time)

• Revisits with different expectations (experimental, simplified, basic, complete, polished) – also used to avoid deps

• Technical items with visible results• Releases

– Product backlog => time and cost (t = s/v)

• Tracking every week– Actual production, changes in scope– Demonstrations with customers => expectations– Progress, scope, expectation/insufficient done-ness => risk

• Accelerating with demo– Practice mock demo during planning

• Example project: Planning Monday, Demo rehearsal Friday morning, Demo Monday morning

– Use demo driven work to focus on feature slices (avoid deps)– Demonstrate with externals to get feedback

Page 84: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

• Planning – man-week sized items– Gather “everyone” to discuss => usage flow– Usage flow => product backlog– Product backlog => time and cost (t = s/v)

• Tracking every week– Actual production, changes in scope– Demonstrations with customers => expectations– Progress, scope, expectation/insufficient done-ness => risk

• Accelerating with demo– Practice mock demo during planning– Use demo driven work to focus on feature slices (avoid deps)– Demonstrate with externals to get feedback

Page 85: Extreme Planning: Agile turned to the max DevDay.LK Johannes Brodwall @jhannes

TODO

• Need better example project

• (Architecture – don’t play)• Team-mbedded product management