pptx estimating is not planning

Download Pptx estimating is not planning

If you can't read please download the document

Upload: dhaval-panchal

Post on 12-Apr-2017

3.838 views

Category:

Technology


1 download

TRANSCRIPT

Estimating is NOT planning

Estimating is NOT planningDhaval Panchal

Hofstadters law: It always takes longer than you expect, even when you take into account Hofstadters law

2 things are certain about estimatingYou will always be WRONG.You will spend more time estimating, that you could have used to do the work instead.

*Agile* Estimating does not exist!

EstimateGUESSEmpirically derived intelligent GUESSGUESSEmpirically derived, consensus based intelligent

If estimates were accurate we would call them FACTS

Expert Judgement BasedStatistical Analysis BasedExpressed as a RangeExpressed in Probabilities or Percentile ConfidenceGuesses on Known-Knowns and Tolerance for Known-Unknowns

What you know you knowWhat you know you dont knowWhat you dont know, you dont know

I dont know

Author (A) - Brad says: beware of copyright infringement. Dont print or distribute this image in any way.Diminishing ReturnsWhen people are asked to think in detail about how they plan to finish a task, there is an ever greater tendency to underestimate its duration

-Beuhler & Griffin, 2003

AccuracyEffort Spent Estimating

100%

the confidence estimators have in their own estimates is unjustifiably high

- Jrgensen, M., Teigen, K. J., and Mlokken-stvold, K. Better sure than safe? Overconfidence in judgement based software development effort prediction intervals. The Journal of Systems and Software, 70, (2004)

Anchors

When asked to make decision under uncertainty we (humans) grasp at any information offered (the anchor). Further adjustments to arrive at the decision (eg: estimate) are made with reference to this anchor and these adjustments are unable to compensate for negative effects of the anchor.

Anchors operate unintentionally and work even when people are forewarned. Its just . a button

Anchoring and Adjustment in Software Estimation: Aranda & Easterbrook (2005)

Im a Lead, Im better than them

Therefore estimate for lower size

The lead will obviously work on this story

my estimate does not matterI will go with the team .. (lead)

Competence

Your estimate for the work clearly implicates youEstimate is often treated as a reflection of persons ability. People frequently under-estimate to impress.See: The social implications of planning: How public predictions bias future plans : Stephanie P. Pezzoa. Mark V. Pezzob, and Eric R. Stone : Journal of Experimental Social Psychology, 2006

Avoid Irrelevant and Misleading InformationGoldilocks User StoryAs a Goldilocks User Story CardI want to have written on me - Not too little, and not too much, but just rightSo that my author speaks - for not too little, and for not too long, but just enoughHow to Avoid Impact from Irrelevant and Misleading Information when Estimating Software Development Effort : Jrgensen and Grimstad 2008

Temporal DistanceCase 1: Three months from today, you have to write your name on a white index card with blue fountain pen.Estimate: ______ ?Abstract plan that was decontextualized.(find pen, find index card, write name, done!)

Biases estimates to be optimisticIncreased specificity of task, that is contextualized. Thinking in terms of impediments.

(Do I have a blue ink pen?, Where is my white index card?)Case 2: Right now!! you have to write your name on a white index card with blue fountain pen.Estimate: ______ ?

Bye, Bye, Big Upfront Estimating!It is un-safe (intended) to make plans based on estimates of backlog items that are not going to be worked on until further into future (> 2 months)

shorter releases or as Scrum says always be potentially shippable at end of every sprint. Easier said than done!, I know

Dont have large number of backlog items in your product backlog.

Dont blindly believe in the magic of Fibonacci sequence.

But my management wants long term predictions - they have no business being in management

An Ellipse is more similar to a circle THAN a circle is to Ellipse

Myth: research shows people are better at relative than absolute estimation

http://guide.agilealliance.org/guide/relative.html

Relative Size EstimationDirectional Bias- You are likely to get different result if you switch your target story for estimation with reference story for comparison.

Assimilation Effect: Is a 8 point User Story, 8 times more .. than a 1 point User story ?- Remedy: Create a reference story set of 2 or 3 User Stories for each size in your set and refresh your references every few sprints.Sequence Reference Bias : Your previous estimate of task/story acts as implicit reference for the next story/task you estimate.- Relative Estimation of Software Development Effort: It Matters With What and How You Compare : Jrgensen (2013)

Even if they are aware that they did not finish the task when planned, their memory of how long it took to complete the task itself might still be an underestimation of the actual durationRoy and Chesterfield and McKenzie, 2005 : Underestimating the duration of future events - Memory incorrectly used or Memory bias?

benefittime

estimate

expected or accepted tolerance zone

Time spent to estimateCost to estimate

Start Work

Anchoring EffectAwareness of Estimate has pinching effect - Eroding benefits from outcomes when work is completed outside of tolerance zone.

With what you know now, would you still go back and Ask for estimates?

"Teams first struggle with estimation, then get quite good at it, then reach a point where they don't need it - @martinfowler

Expectations from PlanningExposes RiskReduces UncertaintyBetterS decision makingConveys informationReveals OptionsImproves Coordination

Story Points : ApplicabilityFully Cross-Functional TeamsIdea to Delivery can be achieved by a single teamIn Scaled environments: Feature TeamsAll of the above implies that teams have DevOps capability or healthy processes and practices with Operations teams. With of course no manual testing hand-offs.

Story Points are not comparative between teams. (Apple points and Orange points)

Remember

Story points between teams cannot be added to project on overall release.

Analysis

Design & dev

Testing

Ops and Release Ready

Front-End

Middle Tier

Integration tierBack-end

Definition of DoneEnd-to-End Functionality

Potentially Shippable Product Increment5385

21 Story Points

5385

21 Story Points/Sprint

110 Story Points

~ 5-6 Sprints

Alternatively Count Stories/Sprint3-5 Stories/Sprint => 20 stories in 6-4 sprints

Shift from Story Points to Story CountingAgreement on priority of item in product backlogAgreement on acceptance criteriaConversation about User StoriesStrong Definition of Done.Use yesterdays weather techniqueAgreement on priority of item in product backlogAgreement on acceptance criteriaConversation about User StoriesStrong Definition of Done.Use yesterdays weather techniquePlanning poker to arrive at consensus on estimate and ONLY splitting stories when greater than ___ (13) pointsSplit all stories. A sprint has atleast 4-5 User Stories that have discreet business value.

But But.. IN the Real World!

Weak Definition of DoneDefinition of Done < Potentially Shippable Product IncrementExamplesDevelopment team defers many aspects of quality to later sprintsDevelopment Team relies on an Manual QA team for full regression test pass.Business Analysts teams works ahead of Development and Test TeamsBusiness receives functionality from scrum team that is UATed before release to end-user.

Serialization of backlogsNew Items from PO

Product BacklogDelivery Team

Un-tested ProductTestingTeam

Defects/Bugs detected

Potentially ShippableProduct Increment

Backlog Items Remaining Development TeamBacklog Items Remaining Testing TeamSerialization of backlogs

Every Source of Delay between Development and Test whiplashes the final GO-LIVE date.

Development

TestDelay

Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

- Principles Behind Agile Manifesto

The most powerful way to reduce variability in forecasts is to shorten our planning horizons- Donald G. Reinertsen: The Principles of Product Development FLOW

Gathering Empirical DataHow many Stories can we develop if we must be shippable at least every two months?Destabilizing Stories (N)

Stabilizing Stories (?)example: 20 stories require 15 stories worth stabilizationImprove planning For Future Releases

Dependencies

2 Laws of Dependency ManagementDo not create dependencies.If you must, then schedule dependent work ONLY with knowledge of dependent service teams PULL schedule and expected cycle time.

But But.. IN the Real World!

Go Look at does not work!How is the project doing?Do you have capacity to take this on?What is the status of Feature/Initiative?Will I get Feature X?When will I get Feature X?

Go look at online toolEasier to answer for single X-functional teamsBlob of many interdependent teams

Team Level MetricsImpediments from daily scrumVelocity (#of Story Points or # of Stories)Cost $$ of funding a sprintetc. etc.ALM Tool?Program LevelTeam Level MetricsTeam Level MetricsTeam Level MetricsTeam Level Metrics

Team Level MetricsImpediments from daily scrumVelocity (#of Story Points or # of Stories)Cost $$ of funding a sprintetc. etc.ALM ToolTeam Level MetricsProgram LevelInter-Connection of dependent teamsSystem throughput capacity Cycle time @ Feature/Epic levelTeam Level MetricsTeam Level MetricsTeam Level MetricsHow many active dependencies can system handle?How many dependencies can a team handle?

Team ATeam BTeam CEpic 1Epic 2Epic 3

Most at Risk EpicMost involved teamDependency BoardI Can see big pictureFirst Order Information

Dependency Board PurposeTo determine if features are being developed too late or too early.To see which features are related to each other so as to make trade-off decisionsTo identify unknown and duplicate work.To identify at-risk features.To allow teams to pick up right work.

Dependency Board PurposeTo determine if features are being developed too late or too early.To see which features are related to each other so as to make trade-off decisionsTo identify unknown and duplicate work.To identify at-risk features.To allow teams to pick up right work.

Epic 3

Team A

Team B

Cycle Time

DelayDelays in resolving dependencies contribute the most to project delivery timeline.

StartShippable

Program Cumulative Flow Diagram (CFD): Queue Sizes

time# of Epics

Epics ShippableCumulative # of EpicsWIPSecond Order Information

Program Cumulative Flow Diagram (CFD) : Time

time# of Epics

Cycle Time

delayTeam B Velocity Team A Velocity

Second Order Information

Epic 3

Team A

Team B

Cycle Time

DelayStartShippableOptimize interconnected team system to reduce this.

Actively Manage delay caused by DependenciesPrioritize Epics at program level. Work in prioritized order.Stop starting, start finishingActively monitor dependency queuesCreate Kanban slots to constrain # of Dependent items for a service team.

Where there is delay there are backlog items

Dependencies Waiting to be resolvedbacklog

Wait Time OR DelayQueue size is leading indicatorThroughput is Lagging Indicator

Controlling Queue Size directly controls cycle timeLittles Law: Average Cycle Time = (Average number of Items in Queue) / (Average Processing Rate)Do not let Dependencies to accumulate.Set Explicit Kanban limits on Dependencies between teams.

CTeam B has Two (fixed) Kanban Slots for Servicing external dependenciesTeam ATeam BKanban Dependency SlotsLets work on these two storiesLook. team B has only one of the two dependency slots open. So we should not create more dependenciesAnd PULL only our highest priority story that requires dependent workWe can now focus on finishing dependent workWe can predict that one more dependent item will be added soonAnd we are always working on high priority for teams.

SummaryAt best, Estimates are educated guessesStory Points are no better than simply counting stories per sprintFor a cross-functional team that produces potentially shippable code every sprint, Velocity is a good forecasting measure.In all other (real-world) cases, focus on getting to shippable state. You will discover that planning is emergent and estimating not necessary any more.Increase action on dependencies by creating team level dependency Kanban limit.To forecast: your Queue (backlog) Size is leading indicator of challenges ahead.End-to-End measurements of Cycle Time are better for forecasting on programs with dependent teams. Team level velocities do not account for wait period in between backlogs

Q&A