Category Archives: Uncategorized

Answers to Shim’s Questions

Shim Marom has written quite nice recap on the ongoing #NoEstimates discussion. I decided to answer Shim’s questions. This is sort of sequel to the post I wrote last week.

1. Are cost estimates required in order to manage software projects?

It’s highly recommended to know the amount of $$$ you’re willing to spend. However, this doesn’t necessarily require formal cost estimating. Generally speaking, I would not do cost estimates, rather define the amount money I would be willing to spend, and then estimate capabilities based on that spending max. I can think of many cases, where that kind of “capability estimate” can be a really rough one.

2. Are cost estimates an effective tool for controlling costs?

This one I wouldn’t know. Usually I’ve been involved in situations where costs don’t need that much controlling, since they’re already known. In SW projects costs ~= labor costs, and if you fix a team and time frame, you pretty much don’t need cost estimate, because that is already known. In general I would be inclined to focus more on delivering and discovering value rather than controlling costs.

3. Do estimates stifle creativity and kill innovation?

Too detailed up-front bottom-up estimates can surely kill innovation. If you’ve already decided how (tasks) you’re going to deliver a feature, there isn’t that much room for coming up with alternative solutions. It’s even worse, if those features are “sub-tasked” by someone who doesn’t actually do the work.

It’s also about how innovative and creative you want to be. Sometimes you just need to install the frigging SharePoint sites, end of story. But you can surely be innovative and creative about how are you actually going to do that job. Best case scenario is that you find out that the customer doesn’t need SharePoint sites at all.

Innovation and creativity (regarding the product you’re building) must happen within the boundaries that business sets. How tight those boundaries are, is highly dependent on the business case. In research setups there are little or no boundaries. In “let’s go to moon” there are ton of boundaries.

4. Do people need estimates? And if so, why?

This is a tough one to answer in general level. In everyday life people need estimates all the time: how many milk cartons do I need, do I have enough time to cross the street etc.

I would say that in SW domain people need estimates, too. It’s the amount of certainty that is variable. For example let’s imagine an in-house R&D project. “Biz” may just decide to setup a team and spend $500k on it and see what pops out. But even in those cases there always is some kind of implicit estimate about the outcome of the project.

5. Is the very act of estimation results in the creation of uncertainty?

I don’t know how to parse this into English, so I’m not quite sure if I understand.

But yes, estimates — implicit or explicit —  are needed when the input data is incomplete, uncertain or unstable. Which is pretty much all the time.

6. Is estimation a practice still hanging over from the Waterfall era?

Not so sure about that. I would still claim that in waterfall project you need more upfront estimates than in more iterative setting.

7. Is No Estimation better than Bad Estimation?

Depends. I can easily come up with examples supporting both sides. For example in a “bad estimation” scenario team could just come up with a way too small an estimate for a task. Then that single figure could just be seen as it should be — outlier in team’s statistics. OR they could be held responsible for that estimate and questioned about the team’s performance. Really depends more on how you’re using that bad estimate.

If someone would force a general answer out of me, I’d say that no estimation is better than bad estimation. At least then you don’t have false sense of security, and you’re forced to think about cost/capabilities from some other POV than estimates.

8. Is Estimation really just a form of Guessing?

No. I see guessing more as decision making based on gut feeling or pure chance. Here is a good post about this question with which I more or like agree.

9. Are estimates necessary for Governance? Is it reasonable to require estimates for the purpose of pacifying governance needs?

Short answer: I don’t know.

Longer: I’m currently working in a publicly listed company, but I’m not quite sure if I understand what Governance means for me. Or what does pacifying governance needs mean. In reality it’s never “governance” that needs estimates, it’s more about meeting peoples’ needs. If there were a governance need, that doesn’t seem to make sense, I’d seriously consider what value does that governance need bring us.

10. Is there any point in providing estimates when it is known that many projects fail due to lack of credible estimates? And aren’t estimates a tool used to apportion blame afterwards anyway?

It’s an interesting claim that many projects fail due to lack of credible estimates. I’d like to see a bit more data about that one. My personal hunch is that the root cause for many projects’ failures is that they’re just too big. There are too many unknowns and high variability, so that coming up with an estimate with reasonable confidence interval is close to impossible. Add to this that estimates are often mistreated as commitments, and we have a nice little soup.

A couple of points still:

  • It’s not hammer’s fault if you use it to beat someone to death. (Maybe a tad vulgar analogy, sorry.) Both sides need to man up. For devs: if someone asks for an estimate, please ask first how is that estimate going to be used and what happens if you get it wrong. And for “biz”: don’t forget that estimates always have a probabilistic nature. Don’t use them to blame anyone.
  • You can get only so far by getting better at estimating. My go-to solution would be to find ways to split work into smaller programs and projects, which then enables us to have more credible estimates.

11. Is costing a necessary tool for determining business value?

Let me first start with everyday life examples, where “business value” is perhaps not considered.

Before knowing the price, I can know the value of, say,  a cup of coffee for me. It’s the “experience value” I’m expecting to get from drinking it . Same goes for going to movies. I can expect to get some kind of value out of it, I don’t need to know the price to know that.

Same goes for a little more complex examples, for example a new feature to my mobile phone. For example someone could offer me “I would create you an application that orders you a taxi with a single button click.” That feature has got a certain value for me, I don’t need to know the price of that feature for me. Nor do I need to know how much does it cost for the supplier to implement that feature.

However, I do need to know the price when I’m making decisions. A cup of coffee is “good value” for me, if it costs 1€ and I’m really craving for caffeine. If the price were 10€, my craving would need to be really bad for me to buy that coffee. In SW world it’s not enough to think about just the price, you need to think about the whole cost of the project, too. And what are the opportunity costs (what does it cost you because you decide to do project A instead of project B?).

In any case, I see the “value” and the “cost” as separate concepts, which are often used together to make business decisions. But they still are separate, at least in my head.

12. Does the scope drive the budget or does the budget drive the cost?

Well you can do either way. I’d prefer… wait a minute. I’d say this is a odd question. I would say budget drives the scope.

13. If estimates are required in order to support decisions, can decisions be made without estimates?

When human beings make decisions, estimates — implicit or explicit — are always made. I don’t know how to get around that fact.

What is scope (baby don’t hurt me)

The other night in a pub, Neil and I (and @karhatsu ) had an interesting chat about what does “scope” mean. We kind of disagreed then and I think we still do:

Maybe it’s just semantics or because I’m not a native English speaker, but I don’t agree. Let’s dive into this a little bit by first exploring the most common use case of that term: “X is out of scope“. So what does it mean when you say that something is out of scope? To me, X in this sentence is:

  • A feature (“supporting single sign-on is out of scope for now”)
  • A hardware change (“hardware changes are out of scope for you guys, they’re handled by the HW team”)
  • A certain testing type (“I’m not doing performance testing yet, it’s out of scope for this story”)

Then again, when I hear “amount of work”, I’m immediately thinking hours or days as the unit. Amount of work could be 16 hours or 2 weeks for example. But, in my opinion it’s wrong to say that scope = amount of work. There is a correlation between the scope and the amount of work needed to deliver that scope, but they’re not the same thing.

scope

 

This image above tries to illustrate this difference. We have a “fixed scope” in our naive book store example but different amount of work needed between the two teams. You could also imagine that the amount of work needed to deliver that scope is variable to a single team as well.  Team A could reduce the amount of work needed by making the process better etc. You know, the usual inspect and adapt, but that’s not the point of this post.

So what, one could argue. Well, maybe it’s just semantics, but on the other hand it’s easier to communicate if the community shares same terms and concepts. At least I’m still going to be on my toes when discussing “scope” with Neil. =)