#noestimates - stop lying to yourself and your customers, and stop estimating

Post on 08-May-2015

1.331 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

After his successful session last year on Agile Scrum, our resident Scrum White Robe Gerard Beckerleg is at it again, except this time he's taking on one of the most divisive topics in software development: Estimation. In this video recorded at the Sydney SSW offices, Gerard Beckerleg takes a dive into the depths of this controversial topic and extracts the most interesting ideas and raises some very difficult questions about the big white elephant in the room that is Software Estimation. After examining the pros and cons of estimation Gerard lays the blueprint for a better way to help you and your clients get what they are really looking for.

TRANSCRIPT

Do My Requirements Look Big In This?

#NoEstimates

Gerard Beckerleg

Solution Architect

Live Backchannel: #NETUG #NoEstimates

Delivering Awesome Web Applications

“Is there is a way to work, where the software you write ends up being valuable, and the business people you work with end up being happy?”

Dan Milstein

"#NoEstimates is not about ditching estimates. It is about improving the way we work such that estimates become redundant.“

Neil Killick

About me

Gerard Beckerleg

Solution Architect at SSW SSW Scrum White Robe Agile Automated testing Continuous delivery

Do My Requirements Look

BIG In This?

Agenda

Background

Why estimate?

Problems with software estimation

Are there any alternatives?

Discussion

What is an estimate?

verb (used with object), es·ti·mat·ed, es·ti·mat·ing.

1. to form an approximate judgment or opinion regarding the worth, amount, size, weight, etc., of; calculate approximately: to estimate the cost of a college education.

2. to form an opinion of; judge.verb (used without object), es·ti·mat·ed, es·ti·mat·ing.

3. to make an estimate.

Noun

4. an approximate judgment or calculation, as of the value, amount, time, size, or weight of something.

5. a judgment or opinion, as of the qualities of a person or thing.

6. a statement of the approximate charge for work to be done, submitted by a person or business firm ready to undertake the work.

Dictionary.com

What is an estimate?

“A good estimate is an estimate that provides a clear enough view of the project reality to allow the project leadership to make good decisions about how to control the project to hit its targets.”

Steve McConnell

1. Why estimate?

Click icon to add picture

What problem does estimating solve?

“the business as a whole is trying to make a decision — about how to spend it’s money (your time)” Dan Milstein

Businesses need certainty about what they will get and when

Unfortunately for most businesses there is very rarely any certainty in software design and development

What’s the best thing to do when faced with uncertainty?

Seek information

Cost 20,000

Value 50,000

Decision: BUILD IT

Cost 60,000

Value 50,000

Decision: DON’T BUILD IT

Development

Business

Project x

Project y

100,000

2. Problems with software estimation

Click icon to add picture

VacationsHolidaysSick daysTrainingWeekendsCompany meetingsDepartment meetingsSetting up new workstationsInstalling new versions of tools on workstationsTroubleshooting hardware and software problemsRamp-up time for new team membersMentoring of new team membersManagement coordination/manager meetingsCutover/deploymentData conversionInstallationCustomizationRequirements clarificationsMaintaining the revision control systemSupporting the buildMaintaining the scripts required to run the daily buildMaintaining the automated smoke test used in conjunction with the daily buildInstallation of test builds at user location(s)Creation of test data

Steve McConnell

Management of beta test programParticipation in technical reviewsIntegration workProcessing change requestsAttendance at change-control/triage meetingsCoordinating with subcontractorsTechnical support of existing systems during the projectMaintenance work on previous systems during the projectDefect-correction workPerformance tuningLearning new development toolsAdministrative work related to defect trackingCoordination with test (for developers)Coordination with developers (for test)Answering questions from quality assuranceInput to user documentation and review of user documentationReview of technical documentationDemonstrating software to customers or usersDemonstrating software at trade showsDemonstrating the software or prototypesof the software to upper management, clients, and end usersInteracting with clients or end users; supporting beta installations at client locationsReviewing plans, estimates, architecture, detailed designs, stage plans, code, test cases, and so on

Functional Requirements Areas

Setup/installation program

Data conversion utility

Glue code needed to use third-party oropen-source software

Help system

Deployment mode

Interfaces with external systems

 

 

 

 

 

Steve McConnell

Effect of personnel factors on project effort

21st Century 20th Century

Overestimation

Is it better to over or underestimate?

Requirements

“Until each specific feature is understood in detail, it's impossible to estimate the cost of a software project accurately” Steve McConnell

Not very agile

We usually estimate at the start of a project when we have the least amount of knowledge.

The Cone of Uncertainty

• When telephone numbers are entered, will the customer want a Telephone Number Checker to check whether the numbers are valid?

• If the customer wants the Telephone Number Checker, will the customer want the cheap or expensive version of the Telephone Number Checker? (U.S.-only versus international phone numbers.)

• If you implement the cheap version of the Telephone Number Checker, will the customer later want the expensive version after all?

• Can you use an off-the-shelf Telephone Number Checker, or are there design constraints that require you to develop your own?

• How will the Telephone Number Checker be designed?

• How long will it take to code the Telephone Number Checker?

• Do the Telephone Number Checker and the Address Checker interact? How long will it take to integrate the Telephone Number Checker and the Address Checker?

• What will the quality level of the Telephone Number Checker be?

• How long will it take to debug and correct mistakes made in the implementation of the Telephone Number Checker?

Suppose you're developing an order-entry system and you haven't yet pinned down the requirements for entering telephone numbers.

We need everything in the spec!” … tick tock … “We don’t need that … that can wait … this can be simpler … I forgot what that is!

“When we write down our “requirements,” we act like this is our very last chance to ask for anything. So we ask for everything we can think of, everything we might need. We’re pretty sure we won’t get it all anyway, so let’s ask for a lot and hope we get something we can live with.” Ron Jeffries

“something based on an unrealistic list of requirements, using weak estimates, made at the moment of maximum ignorance, by people who are always optimistic about their own abilities. It has been squeezed down by managers who think they need to be tough, and sometimes it is just overridden by someone who has made a rash promise to someone higher up the food chain.” Ron Jeffries

The Result

http://drewchialauthor.com

3. Are there any alternatives?

Click icon to add picture

“People do not need umbrellas. They need a way to stay dry on a rainy day.”

Neil Killick

Example - Budgeting a new project

New Subscription Web App

How many people will be interested? What percentage of prospects will turn into subscribers? How much will subscribers pay for the product?

How much of this product can we get done, by what date, for how much money?

Can we begin to bring in enough money to stay alive before our cash runs out?

Business

Development

Need certainty

Example - Budgeting a new project

Team costs 10,000 per week

Business has 500,000

MVP after 9 months

…this is a big risk

Example - Budgeting a new project

Work for 2 weeks (20,000)

Start work on the most important, most risky, most informative parts of the product

Gain better understanding of how hard it is and how long things take

Business will see it working

If after two weeks, things look bad, we’ll know it and we’ll recommend the business stops

If things look good so far, we’ll decide together what the next major decision point will be. It might be a month out, or three months out

Risk Estimation Method

Sequence the work to get as much information as possible

Attack the bigger risks first

Offer choices

Work in progress

Limit your team’s WIP

Measure throughput

Little’s Law to calculate lead times

Whenever you feel the urge to start a large project

Stop

Ask yourself, what can I deliver tomorrow that is valuable?

100,000

Acknowledgements

Neil Killick @neil_killick

Kent Beck @KentBeck

Ron Jeffries @RonJeffries

Bob Martin @unclebobmartin

Dan Milstein @danmil

Vasco Duarte @duarte_vasco

Woody Zuill @WoodyZuill

Chris R. Chapman @DerailleurAgil

Steve McConnell no twitter????

Delivering Awesome Web Applications

References Part 1

http://xprogramming.com/articles/the-noestimates-movement/

http://www.cio.com/article/742684/_No_Estimates_in_Action_5_Ways_to_Rethink_Software_Projects

http://pragprog.com/magazines/2013-04/estimation

http://neilkillick.com/category/noestimates/

http://derailleurconsulting.com/blog/how-to-run-the-noestimates-puzzle-experiment-v10

http://www.codinghorror.com/blog/2006/06/how-good-an-estimator-are-you.html

http://www.codinghorror.com/blog/2006/07/how-good-an-estimator-are-you-part-ii.html

http://www.amazon.com/exec/obidos/ASIN/0735605351

http://www.stevefenton.co.uk/Content/Blog/Date/201401/Blog/The-No-Estimates-Debate-Distraction/

http://gothandy.wordpress.com/2013/05/19/noestimates-is-a-good-idea/

Reference Part 2

http://pragprog.com/magazines/2013-02/estimation-is-evil

http://www.youtube.com/watch?v=rrkrvAUbU9Y

http://www.amazon.com/gp/product/1935401009

http://www.amazon.com/gp/product/0884271951

http://www.amazon.com/gp/product/0307887898

https://www.facebook.com/notes/facebook-engineering/software-design-glossary/10150309412413920

http://www.amazon.com/gp/product/0321278658

http://www.amazon.com/gp/product/1452654204

http://usersknow.blogspot.com/

http://www.amazon.com/gp/product/1449334911

http://blog.hut8labs.com/no-deadlines-for-you.html

Delivering Awesome Web Applications

Thank You!Sydney | Melbourne | Brisbane | Adelaide

info@ssw.com.au

www.ssw.com.au

Delivering Awesome Web Applications

3 things• @gerardbeckerleg

• GerardBeckerleg@ssw.com.au

• http://gerardbeckerleg.wordpress.com

top related