Upload
gerardbeckerleg
View
1.333
Download
0
Embed Size (px)
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.
Citation preview
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
www.ssw.com.au
Delivering Awesome Web Applications
3 things• @gerardbeckerleg
• http://gerardbeckerleg.wordpress.com