extreme planning: agile turned to the max exilesoft johannes brodwall exilesoft chief scientist...

Post on 01-Apr-2015

215 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Extreme Planning:Agile turned to the max

ExilesoftJohannes Brodwall

Exilesoft Chief scientist

@jhannes

What are we going to do?

When will we get done?

How will we be able to do it?

After this talk

Forecast from actual progress

Uncover what needs to be done

Plan ourself out of the rush

But first

Where does the rush come from?

Part I

Yesterday’s weather

“How long will it take to drive to

Chicago”

“How long will it take to drive to

Chicago”Kandy

t = s/v

After 1 hours, we have only got to

Mahara…

vestimate > vmeasured

Product backlog

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

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?

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?

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

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)

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

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

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

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

How many hours?

Cost = (burn rate) * (time)

= (team cost) * (backlog) / velocity

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

6 stories delivered

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

6 stories delivered

Architect

The worst way to answer: To estimate

hours per task

Actual hours =

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

Actual hours =

Σ estimated hours per task * whatever

Part II

Creating the backlog

• Vision• Usage flow

• Product backlog

Vision, stakeholder

For Exilesoft Global Employees

Who wants to take leave from work

The MyLeave 

Is a responsive web application

Which lets them register leave applications and get them approved

Unlike current LMS/Standard Systems

Our product can be used globally/has the advantage of integratability and flexibility

Usage flow

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

2. HR admin navigates to MyLeave

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. MyLeave notifies Team leader of a new pending leave request via email

10. Team leader or delivery manager views pending leave applications

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

12. Team leader or PMO approves leave

13. MyLeave 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

Minimum interesting demo

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

2. HR admin navigates to MyLeave

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. MyLeave notifies Team leader of a new pending leave request via email

10. Team leader or delivery manager views pending leave applications

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

12. Team leader or PMO approves leave

13. MyLeave 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

Experimental X

Simplified X

Basic X

Complete X

Improved X

Demo/deploy/automate

Styling

Testing

Learning

Product backlog

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

Experimental X

Simplified X

Basic X

Complete X

Improved X

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

EstimatePlan

Part III

Planning the sprint

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

Planning the demo

Planning the demo

(content)

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

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

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

Planning the demo

Planning the demo

(time)

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

Planning the demo

(time)

Planning the demo

Planning the demo

(practice)

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

What are we doing?

When are we done?

Cost = (burn rate) * (time)

= (team cost) * (backlog) / velocity

Create backlog from usage flow

Track stories per week• Forecast

• Actual

Plan features with demo script

jbr@exilesoft.com

http://JohannesBrodwall.comhttp://exilesoft.com

http://twitter.com/jhannes

Thank you

top related