Live data from Hacker News

How to replace estimations and guesses with a Monte Carlo simulation

lucasfcosta.com

51–60 of 162 posts

Re: How to replace estimations and guesses with a Monte Carlo simulation

#51

Shameless plug but we wrote a free tool that you can pipe in Jira data and run monte-carlo simulations to help generate forecasts. If you don't want to go through the process of logging in via Jira there is a demo where you can manually input the data needed. See: https://agilytics.leanloop.co.uk

I will definitely be using this! Can I use single project analytics instead of the whole jira? (Different people work on different projects)

Re: How to replace estimations and guesses with a Monte Carlo simulation

#52
A Monte Carlo simulation can hide a lot of assumptions about the the actual system being modelled and the distribution of random variables (both on a univariate basis and as a dependency).

Its flexibility and power of estimating (otherwise maybe untractable) metrics comes at the expense of transparency, potential simulation noise and difficulty in estimating accurate "what if" scenarios. The risk is that one might get out simply what one assumes.

Here a list of questions you can ask to minimize the associated risks and steer your development:

* Do I have a good, self contained, description of the system that I want to simulate? Is it even possible to define it in practical terms?

* Do I have historical data that can pin down its stochastic behavior? Can I estimate a statistical model reliably?

* Does the uncertainty around model estimation justify retaining the full model or could I possibly simplify it and obtain semi-analytic results?

* Can I validate my estimates out-of-sample

Re: How to replace estimations and guesses with a Monte Carlo simulation

#54
A more “back of the envelope“ approach to handling uncertainty for this sort of thing is the “three point estimate” approach, where you give a best, worst, and most likely estimate for each sub task. These points are implicitly used to parametrise a distribution, and then you analytically find the overall uncertainty, rather than through simulation.

Re: How to replace estimations and guesses with a Monte Carlo simulation

#55
post #21

I think FogBugz used this method to estimate how long open tickets would take to get closed. Or at least I remember Joel talking about it. I wonder if there are any other issues tracking apps out there making use of this technique

Yeah, FogBugz had a very similar feature 15 years ago. It was a hybrid between the approach proposed in the article, and the "always multiply by N" technique. Basically, FogBugz always asked you for your own best estimate. It tracked how much longer the actual time to completion was compared to your best estimate, and learned a simplified statistical distribution of your personal multipliers (e.g. in 80% of cases you…

I never tried FogBugz but I heard good things about it, similar to what you've written. It's surprising it didn't catch on more if it's that good? I mean, I suppose it could still catch on, the product still exists as far as I know.

Re: How to replace estimations and guesses with a Monte Carlo simulation

#56
post #12

While a different application than shown here, my project management class taught me one of the biggest benefits of Monte Carlo simulation - estimating uncertainty. Traditionally, net present value calculations are done with single point estimates. For example, analyzing a rental property we want to buy, we'd estimate the vacancy rate, interest rate, property appreciation, maintenance expenses, and do all of that on…

The real danger is not understanding that this "uncertainty" estimate is a function of your assumptions. How you model the distribution of your inputs is huge, and often not stated clearly. GIGO

  > The real danger is not understanding that this
  > "uncertainty" estimate is a function of your assumptions.
The bigger danger, in my experience, is treating estimates as deadlines.

Unfortunately, that seems to be the norm in almost every place that I'm familiar with.

Re: How to replace estimations and guesses with a Monte Carlo simulation

#57
post #51

Shameless plug but we wrote a free tool that you can pipe in Jira data and run monte-carlo simulations to help generate forecasts. If you don't want to go through the process of logging in via Jira there is a demo where you can manually input the data needed. See: https://agilytics.leanloop.co.uk

I will definitely be using this! Can I use single project analytics instead of the whole jira? (Different people work on different projects)

Yep it will allow you to select a project from your JIRA instance and only count throughput from that project in the calculations.

Re: How to replace estimations and guesses with a Monte Carlo simulation

#58
This is a very naive approach for a number of reasons:

1). You're only sampling a tiny fraction of the space of possibilities. The example using two dice having 36 outcomes makes it seem like you're in a very well behaved world. But the total number of possible samples is n_possible_values ^ n_dice, so with three dice you have 216 possible outcomes, with 4 dice 1296, with 10 60466176. The growth is exponential in the number of variables, with predictable results.

2). The distribution of delivery times is not normal, experience shows it's much closer to a power law with a small number of tasks exploding beyond any reasonable expectations.

3). No critical path. A task can't be completed before it's critical path is completed. Since you allow subtasks to vary your critical path needs to be calculated for each run. With 1). and 2). it basically means that you have no idea if you've gotten a good representation of the sample space of critical paths.

If you run a simulation that samples a tiny fraction of your probability space you have no idea what monsters lurk in the background when the problem space is one prone to explosions.

In short: beware of tap dancing in minefields when blindfolded.

Re: How to replace estimations and guesses with a Monte Carlo simulation

#59

Not to hijack the conversation, but I though some people interested in replacing estimations could find this useful. In order to replace estimation, we are trying Basecamp's Shapeup language and techniques [1] In a nutshell the thinking is reversed, instead of asking: - "how long would it take to implement X?" you ask: - "how much appetite (in weeks and people involved) do I have for this feature ?" Then you work wit…

[deleted]

Re: How to replace estimations and guesses with a Monte Carlo simulation

#60

I’m a big fan of the Donald Reinertsen approach: measure queue length. Simply track the time to complete each task in the team queue on average, then multiply that by the number of tasks remaining in the queue. Each team will habitually slice things into sizes they feel are appropriate. Rather than investing time to try and fail at accurately estimating each one, simply update your average every time a task is comple…

What do you do when your future tasks are unknown or ambiguous? For example, at my day job my task is to implement banking. The day to day tasks change... day to day. There aren't a "number of tasks remaining in the queue," since whatever I'm doing is what I'm doing. One could say this is poor planning. But due to the nature of Big Banks, each task is usually blocking the next one -- in other words, it's not possible…

When new scope is found, you update the plan of the project and provide new estimates.

I don't expect my team to know everything about a project on day 1. I just want them to know enough to start and provide a "good enough" estimate.

I do expect my team's estimate to get more accurate the further they get into a project.

Post reply on HN