April 19th, 2010 by Moti Karmona | מוטי קרמונה · 8 Comments

Underestimation is Underestimated (a.k.a. Overestimation is Overestimated)
Sometimes it seems like we have an underestimation gene embedded really deep in our cognition but for some “obvious” reason (e.g. underestimation! :) most manager will rather “fight” overestimation and *not* underestimation.
Disclaimer: I have originally estimated this post will take ~33 min but it took me ~240% more time… (this is why I prefer to tweet lately ;)
Six annoying facts about our (/homo sapiens) planning or estimation “skills”:
- We are basically optimistic and have strong desire to please
- We tend to have incomplete recall of previous experience
- We tend to have focus bias when estimating e.g. estimating only the coding phase estimations which is only ~14-37% of the required work
- We tend to postpone what we can a.k.a. “The Student Syndrome” (Eliyahu M. Goldratt, Critical Chain)
- “It always takes longer than you expect, even when you take into account Hofstadter’s Law” (Douglas Hofstadter, Godel, Escher, Bach: An Eternal Golden Braid)
- We tend to underestimate task completion times – a.k.a. The planning fallacy

Overestimation is Overestimated
“The developers say that this project will take 6 months… I think there’s some padding in their estimates and some fat that can be squeezed out of them…we also need to instill a sense of urgency in the development team… so I’m going to insist on a 3-month schedule. I don’t really believe the project can be completed in 3 months, but that’s what I’m going to present to the developers. If I’m right, the developers might deliver in 4 or 5 months. Worst case, the developers will deliver in the 6 months they originally estimated” (Does this ring *any* bell???)
Four reasons on managers tendency to “fight” overestimations:
- Underestimation (see above :) | “The feature estimation seems bloated” | “Isn’t it 20 min work?” | “Just add another index to the %$^&ing table?” | “It is only one more button…”
- Unreasonable time constraint | “We need this feature yesterday” | “Nothing is impossible for the man who doesn’t have to do it himself” (A. H. Weiler)
- True belief that Parkinson’s “Law” is really a law – “Work expands so as to fill the time available for its completion”
- “The Student Syndrome” (see above)
So… if feature estimation seems bloated, managers and other project stakeholders fear that Parkinson’s Law and the Student Syndrome would kick in and therefore consciously squeeze the estimates to try to control it (a.k.a. “The Parkinson’s Squeeze”) and when we squeeze where it isn’t needed or was squeezed already, it immediately lead to… UNDERESTIMATION (!!!)

Underestimation is Underestimated
Underestimation creates numerous problems – some obvious, some not so obvious.
- Reduced effectiveness of project plans – Low estimates undermine effective planning by feeding bad assumptions into plans for specific activities. They can cause planning errors in the team size, such as planning to use a team that’s smaller than it should be. They can undermine the ability to coordinate among groups – if the groups aren’t ready when they said they would be, other groups won’t be able to integrate with their work. If the estimation errors caused the plans to be off by only 5% or 10%, those errors wouldn’t cause any significant problems but numerous studies have found that software estimates are often inaccurate by 100% or more (see above). When the planning assumptions are wrong by this magnitude, the average project’s plans are based on assumptions that are so far off that the plans are virtually useless.
- Statistically reduced chance of on-time completion – Developers typically estimate 20% to 30% lower than their actual effort. Merely using their normal estimates makes the project plans optimistic. Reducing their estimates even further simply reduces the chances of on-time completion even more.
- Poor technical foundation leads to worse-than-nominal results. A low estimate can cause you to spend too little time on upstream activities such as requirements and design. If you don’t put enough focus on requirements and design, you’ll get to redo your requirements and redo your design later in the project – at greater cost than if you’d done those activities well in the first place. This ultimately makes your project take much longer than it would have taken with an accurate estimate.
- Destructive late-project dynamics make the project worse than nominal Once a project gets into “late” status, project teams engage in numerous activities that they don’t need to engage in during an “on-time” project… below are some examples when the important characteristic of each of these activities is that they don’t need to occur at all when a project is meeting its goals, these extra activities drain time away from productive work on the project and make it take longer than it would if it were estimated and planned accurately
- More status meetings with upper management to discuss how to get the project back on track
- Frequent re-estimation, late in the project, to determine just when the project will be completed.
- Apologizing to key customers for missing delivery dates (including attending meetings with those customers).
- Preparing interim releases to support customer demos, trade shows, and so on. If the software were ready on time, the software itself could be used, and no interim release would be necessary.
- More discussions about which requirements absolutely must be added because the project has been underway so long.
- Fixing problems arising from quick and dirty workarounds that were implemented earlier in response to the schedule pressure.

Tip of the day
Never intentionally underestimate. The penalty for underestimation is more severe than the penalty for overestimation. Address concerns about overestimation through control, tracking and *mentoring* but not by bias.
****************************************
More related posts (a.k.a. people who read this post also read these posts)
Tags: Management · Planning · Project Management · Psychology · Software Management
April 18th, 2010 by Moti Karmona | מוטי קרמונה · No Comments
“The further a project progressed, the more accurate the estimates for the remaining effort and time became”
(Barry Boehm, “Software Engineering Economics“, 1981)
NASA also came to the same conclusion that in the beginning of the project life cycle (i.e. before gathering of requirements) estimations have in general an uncertainty of factor 4. This means that the actual duration can be 4 times or 1/4th of the first estimations…
I felt very free to add my own interpretation of the different point-of-views with cool pastel colors as a sneak-peak cool-beta-preview of my next post.

Make sense?
Tags: Development · Management · Planning · Project Management · Software Management
June 23rd, 2009 by Moti Karmona | מוטי קרמונה · 3 Comments
Preview
* Gemba (現場) in Japanese means “the actual place” or “the real place”
* Kaizen (改善) in Japanese means “improvement”
In business, Gemba refers to the place where value is created and the general notion is that the best improvement ideas will come simply from going to the Gemba (‘bottom-up’ vs. ‘top-down’)
The ‘Gemba Walk’ is an activity that takes management to the front lines to look for waste and opportunities a.k.a. to practice Gemba Kaizen which is similar to the “western” concept of MBWA (Management by Walking Around)
My view
As I have posted before “To master (/control) a software project you must be able to breathe the project – inhale the chaotic butterfly movements around you and exhale with the needed adjustments…” (The Software Chaos | Feb. 2008)
Although we wish it will be different… the best optimizations are “simply” very deep into the details and I have found out that a daily practice of ‘Gemba Walk’ can be very helpful to your project “well-being” (and I must admit that it took me several years to find out that my weird walk actually had a Japanese name/theory ;)
“less important than a gnat’s toot in a hurricane” :)

Seven tips for an healthy ‘Gemba Walk’ / MBWA
- Visit everyone
- Go alone – Daily standup meetings aren’t enough
- Don’t bypass middle management e.g. don’t change priorities, requirements or design
- Observe, ask and LISTEN
- Be genuine, have fun and strive to catch your engineers doing something right and not something wrong (you are not the “fun-police” ;)
- Share your dreams and vision
- Don’t “disturb” the Gemba – Timing is everything…
What next?
- Correlate the Gemba / ‘bottom-up’ observations with your ‘top-down’ understanding
- Identify waste, risks and opportunities
- Kaizen – Improve and optimize accordingly
Good Luck!
________________________________________________
Random News from BBC – Gauguin ‘cut off Van Gogh’s ear’
“Vincent van Gogh did not cut off his own ear but lost it in a fight with fellow artist Paul Gauguin in a row outside a brothel”
Tags: Management · Productivity · Project Management
November 10th, 2008 by Moti Karmona | מוטי קרמונה · 2 Comments
“Cogito Ergo Sum Pragmaticus” (= I think, therefore I am Pragmatic | I am not a native latin speaker but the sound felt right ;)
I will dare to claim that eating restrictions and drinking contradictions for breakfast* is one of the first steps in the pragmatic** manager journey.
The ability to combine a revolution-like sense-of-urgency characteristics
- Opportunistic result oriented thinking with basic strive for early result (a.k.a. Constant search for simple low-hanging-fruits)
- Edgy pro-activeness in identifying and mitigating possible risks, bottlenecks or any other result-pooper
- Choosing the right battles with healthy pareto mindset
Spiced with René Descartes methodological skepticism
- Constant questioning and reflection: Why are we doing it? What problem are we solving? Is it really worth it? Is there an easier way? What will happen if we will drop it?
- Embrace doubt in current assumptions, restrictions, taboos, procedures, personal and corporate comfort zones or any other sacred cows
- Decipher the important vs. the urgent
With some Chinese long-term thinking
- Define a clear vision and goals
- Team building
- Invest time in analyzing market trends and technological direction
Are only some of the basic elements needed to reach a pragmatism Zen (!)
_______________________________________
Three Pragmaticus Tips:
* Don’t Skip Breakfast – Breakfast is the Most Important Meal of the Day! ;)
** Schedule a weekly recurring meetings in your schedule to proactively reflect on your life contradictions
*** Google engineers have launched a new Google Blog Directory – Very inresting reading…
Tags: Leadership · Management · Project Management
October 4th, 2008 by Moti Karmona | מוטי קרמונה · 2 Comments

When “The Moscow Cats Theater” came to New York, the Russian clown Yuri Kuklachev was interviewed: “the secret of training them is realizing that you can’t force cats to do anything [...] If the cat likes to sit you can’t force her to do anything else [...] Each cat likes to do her own trick [...] Maruska is the only one who does the handstand. I find the cat and see what they like to do and use that in the show [...] I have a cat now that loves to be in the water…”
– REUTERS, 2006
__________________________________________
Personally, I think that managing engineers is much more complicated than herding cats (although I didn’t have the twisted pleasure to herd a cat yet)
When you go out of your way to hire the best people around than soon enough you will find yourself herding a superior, class A, hyper-developed mutant Ligers* who are much more knowledgeable than the herder (a.k.a. you)
In this environment you have to learn to simply trust your people (although this is not simple at all :), mark the vision, let them loose and only help to get rid of the stones in their way (this concept was best described as the Open Kimono** policy in Peopleware)
Well…. Managing the Delver Engineers is like Herding Legendary Ligers and you need to make a superior effort to see what these ligers “likes to do” and run fast enough to set the Vision and move the rocks out of the way.
__________________________________________
* The Liger, is a (huge) hybrid cross between a male lion and a female tiger
** Open Kimono Attitude: You take no steps to defend yourself from the people you have put in positions of trust.
By the way, The best answer I found on the origin of the term “Herding Cats” was in Google Answers
Tags: Delver · Development · Leadership · Management · People · Peopleware · Project Management · Software Management
February 22nd, 2008 by Moti Karmona | מוטי קרמונה · No Comments

“The British merchant ship Madagascar set sail from Melbourne in August 1853, headed for London and carrying 60,000 ounces of gold dust. – She was never seen again…” (http://www.futilitycloset.com/2008/01/29/overdue/)
Well… Saying “no more gold dust” is the only way I know to close a software release on-time…
P.S. Did you noticed that the Mona Lisa has no eyebrows. (http://www.futilitycloset.com/2008/02/12/trivium-16/)
Tags: Management · Planning · Project Management · Software Management
February 22nd, 2008 by Moti Karmona | מוטי קרמונה · No Comments
1st Warning: Chaotic post below
Software project are chaotic system and are highly sensitive to their initial conditions (a.k.a. the butterfly effect) and dynamics (e.g. wrong design, vague requirements, team professionalism etc.).
To master (/control) a software project you must be able to breathe (/smoke ;-) the project – inhale the chaotic butterfly movements around you and exhale with the needed adjustments or you will be crushed on the nearest project failure shore with zillions of butterfly excuses.
2nd Warning: Smoking software project is bad for you health
After a decade of software projects smoking I find myself easily doing a background-surfing on the chaotic edges of my projects like I drive my car in the same daily well known route back from work but since I am part of the same chaotic system I am trying to control, I know that my background-surfing is like forgetting my own butterfly wings.
Software project smoking isn’t a social event and can’t be easily shared but it is also one of the key factors in projects surfing – If you will not be able to share your surf experience with your team, your own butterfly wings will bring the next tsunami.
3rd Warning: Don’t practice management if you don’t like the butterflies
Tags: Development · Management · Peopleware · Project Management · Software Management
November 8th, 2007 by Moti Karmona | מוטי קרמונה · 1 Comment
My rough estimation is that the number of software project managers in the world is smaller in (at least) one scale from the conceived time-estimation techniques and this post is my humble four-cents contribution on how to do pragmatic time estimation for software projects (just finished one in Delver).
- Start with the mother of all lists to store your Product Manager wish list– We use eScrum Product-Backlog to store our work-items
- Prioritized them – We use 0-Yesterday; 1-Must; 2-Important; 3-Nice-to-Have and 4-”Forget-About-It”… ;-)
- Get relative estimations on all items
- Granularity is the bronze-bullet for time estimations – Strive to the finest grained possible in reasonable time-frame e.g. We usually aim for 2-5 days granularity in 2-3 days of time-boxed-estimation-period since the finest granularity in planning without reasonable time-box might take twice the time of doing the planned work (a.k.a. The Estimation Paradox)
- Experience can turn your bronze bullet into silver one (ye ye, a silver one) – Relative estimation is calculated relatively upon a common scale of known work items from the team history e.g. We use Scrum “Story Points” and constantly measure the team velocity for time estimation adjustments
- Fibonacci sequence (0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 etc.) can be used to “embed” the complexity and risk of rough (with insufficient drilldown) estimations e.g. if your estimation granularity for specific task reach ~40 days then your pragmatic estimation should be around 55 days (= the closest Fibonacci sequence) since it is reasonable to believe your (insufficient) granularity conceals risk, complexity and unknowns issues which requires Fibonacci-like-”buffering”
- Strive to synchronize your time estimation techniques into very simple one – different time estimation conventions in the same development team is the 2nd reason for time delays. (I will give 0.95$ grant if you can guess what the 1st reason)
- I know I am different but personally, I do prefer to have “pragmatic hours” vs. the normal Agile “ideal hours” and to start the project when 1 “Story Point” = 1 “Pragmatic Day” so long everyone understand this will change as soon as you start the project and then you need to return to velocity tracking to calculate the end
- Don’t be naïve (a.k.a. “Ideal Days”) with two known flavors:
- Optimistic time estimations, assuming 24*7 of concentrated programming ability with no outside interference (a.k.a. no such thing)
- “Stupid” hand-waiving time estimations a.k.a. It is only 10 min to code this (but ~5 days to Integrate, Review, Design, Test, Schema and DAL changes, I18N support, Styling etc.)
- Get the rough project estimation = Sum of all product backlog story points / 22 (work days in month) / Number of relevant people
- Usually this calculation will show you don’t have enough time for the project (even without project dependencies buffer which can be added later)
- Start the “Tradeoff Game” – Try to cut items (content) based on the relative ROI
- Revalidate your priorities since they will be the main tool (beside dependencies) for creating the project work plan.
As I see it, estimating software projects in a realistic time-frame is a statistic prediction of chaotic, time-delay-series of events and will never be straightforward nor easy so you can only do your best in the estimation and then track the project as it goes and make the needed adaptation on the way upon crystal clear project priorities.
Good Luck!
Tags: Agile · Delver · Development · Management · Planning · Project Management · Scrum · Software Management
September 20th, 2007 by Moti Karmona | מוטי קרמונה · No Comments
Chronicle of a Death Foretold = Waterfall Shmoterfall = Checkmate in 10 moves
* Note: I did see, participate and lead some successful waterfall projects (mainly due to some adoption of agile methodologies ;-) and this is my view of the projects which failed…
- Release scoping start with marketing high-level-copy-paste-from-last-year-marketing-presentations MRD in ~1 month delay
- 1 month of quick lets-write-all-the-features-we-can PRD – This is also the last time you hear from the product manager until the next milestone-demo-crisis.
- High level design for a couple of weeks which sum-up to a Very Rough Time Guesstimate a.k.a. VeRTiGo
- Release time-frame is set ~1 year ahead with the needed VeRTiGo “squeezing” and high level time-frame is determined:
- 2 months of the waste above and last release leftover
- 1-2 months of Planning (functional and technical design)
- 4-5 months of Development – with ~3 Major Milestones
- 3 months of QA & stabilization
- 1 month of Project Buffer
- Very soon the development teams are scattered like lonely wolfs – everyone for himself until the next integration or major milestones months away.
- First milestone is ending with:
- 20% of the content is really Done a.k.a. “Even a Blind Chicken Finds a Kernel of Corn Now and Then”
- 50% is “done” with dirty bugy code, low quality, performance issues with missing or wrong functionality
- 30% is just not ready
- Developers and low level management remind themselves yet again to put more buffers…
- The PMO suggest (in relax and trusting tone) to postpone the milestone or remove content.
- Management doesn’t get in panic (they have seen it before ;-) and decide not to decide: “Let’s see if we can cut the drawback in the next Milestone” a.k.a. The classic do {} while(timeRemaining > Last Milestone)
- Next milestone has much more content and the pressure builds up… until the last milestone blaming game which usually ends up with ~2 month delay and half of the planned content.
Checkmate
Tags: Agile · Development · Management · Planning · Project Management · Scrum · Software · Software Management
July 19th, 2007 by Moti Karmona | מוטי קרמונה · No Comments
Green Managers – Five top common mistakes with two cent tips.
Vision???
Managing is more then juggling day-to-day tasks – Make a difference, lead to change… Construct a vision, set goals and encourage innovation.Delegation-less: “Never mind, I will do it…”
Simply start delegating like hell!
Sagemet – (Hebrew Slang, The sickness of a green officer in IDF) – You don’t let yourself be human and you fall in-love with your new title.
Remember, management title does not elicit automatic respect and obedience and just because you are the boss doesn’t mean you can’t be human – Feel free to laugh, show emotion and you can even make an occasional mistake ;-)
Mr. Know-all – You think you know everything.
Be sure you don’t know everything is maybe is maybe the most important part of getting into new managerial position. Listen to the people around you and keep an open mind.
Ooops, employees…
As a manager you must remember the three most important success factors: 1. People 2. People and surprisingly enough 3. People
Listen to your employees, take the time to know them, empower them, tell people what you want, not how to do it, don’t put policies ahead of people etc.
Good Luck!
Tags: Leadership · Management · People · Software Management