Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Simplifying Software Estimation
Search
Pratul Kalia
July 24, 2020
Programming
300
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Simplifying Software Estimation
Presented at GDG MAD in July 2020.
Pratul Kalia
July 24, 2020
More Decks by Pratul Kalia
See All by Pratul Kalia
The special case of Mobile DevOps
pratul
2
54
Reldex: measuring the effectiveness of your app release process
pratul
0
47
Stop the security theater!
pratul
0
330
Effective and efficient mobile engineering
pratul
0
220
Designing future-proof Android applications
pratul
0
230
Android - an introduction for developers
pratul
3
280
Semantic Content Repositories
pratul
1
190
How To Become A Hacker
pratul
3
330
Other Decks in Programming
See All in Programming
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
510
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
360
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
220
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
250
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.4k
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
270
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
300
Verilogで学ぶCPU自作入門.pdf
uyuki234
7
3.8k
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3k
アクセシビリティから考える情報設計
high_g_engineer
0
430
一人だけ、Kiroが静止する日
hideg
0
140
Heart of Swift Concurrency
koher
0
1.1k
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Navigating Weather and Climate Data
rabernat
0
540
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Balancing Empowerment & Direction
lara
6
1.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Odyssey Design
rkendrick25
PRO
2
840
Transcript
Pratul Kalia @PRXTL • OBVIOUS.IN SIMPLIFYING SOFTWARE ESTIMATION
SOFTWARE ESTIMATION STEVE MCCONNELL 2006, MICROSOFT PRESS
WHAT IS AN ESTIMATE?
LET’S DRIVE FROM ONE END OF THE CITY TO ANOTHER!
“How much time will it take to finish all these things?”
Estimates always have a probability.
Targets are not estimates!
THE TRAIN LEAVES AT 4.40 PM! “Here are a bunch
of things we have to get done by X”
Are you chasing a target or an estimate?
PRESSURE & BAD ESTIMATES
— ALL ENGINEERS “Okay, that is a bit of work
but I’m sure I can do it in 3 days.”
Stop putting yourself in unreasonable situations.
There are no prizes for getting there fast!
— PARKINSON’S LAW “Work will expand to fill all available
time.”
(that is… if teams have lots of extra time, more
work will magically get created.)
— GOLDRATT’S STUDENT SYNDROME “Given lots of time, students will
delay studying until the last possible moment”
Underestimation is worse than Overestimation! Stastically reduced chance of on-time
completion.
Engineers are too optimistic already.
OTHER SIDE EFFECTS… Poor technical foundation, worse in the long
run.
OTHER SIDE EFFECTS… Unproductive, emotionally draining behaviours.
OTHER SIDE EFFECTS… - more status meetings! - frequent re-estimation!
- interim releases!
OTHER SIDE EFFECTS… - meetings to cut scope! - fix
bugs arising from hacks!
None
THE CONE OF UNCERTAINTY
None
“As the project progresses, estimates become more accurate.”
(yes that’s quite , isn’t it.)
None
It is easily possible to do worse… but not better.
The Cone does not narrow itself.
None
None
Stop doing first-number-in-your-head estimates! It sets the wrong expectation!
⏱
Even a 15-minute estimate is exponentially better than an instant
one.
INCLUDE EVERYTHING. Some requirements are stated. Others are implied.
INCLUDE EVERYTHING. Deployment setup Maintaining build scripts Code reviews
INCLUDE EVERYTHING… Writing documentation Onboarding new team members
INCLUDE EVERYTHING! Creating test data Upgrading dependencies
FACTORS THAT INFLUENCE ESTIMATES
Size of the software! The biggest contributor to project effort
and schedule.
As size increases, effort goes up exponentially. Exponentially. Not linearly.
Programmer capability. Time constraints. Team continuity. Required reliability.
COCOMO-2 software estimation model.
IMPROVING YOUR ESTIMATES
I hope you use story points of some type.
STORY POINTS. Mark of complexity They don’t (necessarily) represent time!
STORY POINTS. (for e.g. A team using 1/2/3 points for
a project.)
STORY POINTS. A junior engineer takes 5 days to finish
a 3-point task.
STORY POINTS. A senior engineer takes 2 days to finish
a 3-point task.
The time taken is different. But the complexity is similar!
NOT COMPLEX… Create a “lint step” on the CI server
NOT COMPLEX… Add “patient has already visited” option to Overdue
list
COMPLEX? Allow Blood Pressure measurements to be deleted
The Law of Large Numbers
“If you create one Big Estimate, your error(s) will either
be completely on the high side, or the low side”
“but if you create multiple Small Estimates, some will be
on high side, some on the low side.”
“… so the errors will cancel each other out, to
some extent.”
COMPLEX? Allow Blood Pressure measurements to be deleted
None
ALSO COMPLEX Sync Protocol Drugs across all facilities and display
in the app
None
Some tricks!
TRICKS! Do a detailed task breakdown: spend some time!
TRICKS! Think of the “worst case” while estimating.
TRICKS! Compare different stories of similar complexity.
TRICKS! Use a project management tool that understands “velocity”.
TRICKS! Engineers should break down tasks and estimate them.
TRICKS! Look at past data for your team, for similar
type of work.
TRICKS! Measure yourself privately
NEGOTIATIONS & AGREEMENTS
An estimate is a conversation, and a negotiation.
Engineers “own” the estimate… but Management “owns” the target.
The goal of estimation is NOT pinpoint accuracy!
People want to understand VALUE in comparison to EFFORT.
Do t-shirt-sizing with all stakeholders.
VALUE EFFORT A: S M B: M S C: S
L D: XL M
Separate people from the problem.
Focus on interests, not on positions.
Come up with options that benefit everyone.
Either everyone wins, or everyone loses.
GO FORTH AND ESTIMATE!