4 ms·
Ask HN: Software answering “How long will this project take with N people?”
I am looking for a project planning tool like Smartsheet or Monday, where I can enter a list of tasks and see a Gantt view that helps estimate time to completion...which Smartsheet and Monday (AFAIK) support, except:
* I want it to know that someone can only do one task at a time (I don't see how to do this with Smartsheet, at least).
* I want it to know that unassigned tasks are blocked on people finishing other tasks and becoming available.
* I want to be able to see how long things will take if I add or remove N people from the project. (For example, if only one person is on the project, the total project time should be the sum of the time of all the tasks; if enough people are on the project, the time to completion should be the length of the longest sequence of dependent tasks.)
I am surprised this doesn't exist, or at least that I can't find it (it's a feature and not a product, but feel free to take the idea and run with it if you want). AFAICT, the major project management tools in this space don't do this. But I hope to find out I'm wrong. :)
- gregjor 4y ago> if only one person is on the project, the total project time should be the sum of the time of all the tasks; if enough people are on the project, the time to completion should be the length of the longest sequence of dependent tasks You should read The Mythical Man-Month. If that doesn't persuade you, lots of people use Microsoft Project to do what you describe -- generate Gantt charts that only bear a passing relationship to reality and prove incrementally less useful for estimating project completion.
- endtime 4y agoSigh...yes, I am familiar with the concept. That's why I said that if enough people are on the project, the length of time to completion should be the length of the critical path. If I were committing the fallacy you're accusing me of, I would instead believe that the project would keep getting faster as more people work on it. When instead I actually want to be able to identify where diminishing returns really kick in and a marginal person doesn't produce a baby any faster. I don't really understand the point of your comment. That projects never go faster when more people work on them? That estimating project length is useless? Being able to figure out "we can do it in a year with three people, or six months with five people, and six months is as fast as it can get done" is, in practice, useful.
- philomath_mn 4y agoI think there is a difference between > length of the critical path and > six months is as fast as it can get done unless "length of the critical path" accounts for the quadratic(ish) increase in communication overhead as you add more people. I think that is a little unclear from the question: is the length of the critical path the sum of times one person would take to do those tasks or the sum of the times an overhead-laden person would take to do those tasks?
- deleted 4y ago[deleted]
- beardyw 4y ago> I actually want to be able to identify where diminishing returns really kick in That is your problem. If you listen, what you are hearing is that life is not so simple. People are people, they have a mix of skills, some more, some less, some communicate well. Bigger projects suffer communication problems in different ways. What you could be hearing is the voice of experience. It comes from being bitten too many times, mostly by people who believe in such charts.
- gregjor 4y agoI agree that would be useful. So would accurately estimating the duration of a software project. And so would identifying the critical path, knowing what each team member can accomplish, and knowing the inevitable obstacles and unknown unknowns up front. If anyone knew how to reliably estimate software projects, identify the critical path, and deliver on time they would get rich for solving a previously intractable problem. In 40 years in the business I have never seen this work, no matter how talented the team and project manager. I'm not saying it can't work, just that I have not seen it happen and I am not aware of any technique. In any software project the individual personalities and team dynamics drive the project and set the pace. How do you express that on a Gantt chart? Unexpected things come up because no one can plan a non-trivial project with complete and consistent requirements. The only approach I know that mostly works is incremental development. Set shorter targets and deliverables specified well enough that the team can give realistic estimates. Do that (call it a sprint if you want), regroup, adjust velocity based on what you learn. Software projects often have what looks like a fast pace and lots of progress early on, then bog down so that the team spends 90% of the actual time on the last 10% of the schedule. Incremental development (I won't call it agile because that means almost nothing anymore) at least gives you forward progress and an increasing (rather than decreasing) ability to estimate time to finish. Good luck.
- cratermoon 4y agoIf one woman can produce a baby in nine months, then nine women can produce a baby in 1 month.
- nivertech 4y agoThis particular problem is easily solved with PERT charts [1] since making a baby is an atomic (blocking) task with time estimates ranging from 23 to 40 weeks. It can be combined with evidence-based scheduling[2] to collect historical data and then run Monte Carlo simulations. Of course, this is only useful at the initial stage of a new greenfield project. For me, the more useful part is the dependency graph between tasks (actually mini-projects). Estimates are for managers. And even then they can be multiplied by 3 and still be wrong - i.e. it's guesstimation. For general feature delivery work, a Shape Up[3] appetite (the amount of time we want to spend on a project, not an estimate) will work better. This is a fixed time budget - a variable scope. -- [1] https://en.wikipedia.org/wiki/Program_evaluation_and_review_technique https://en.wikipedia.org/wiki/Program_evaluation_and_review_... [2] https://www.joelonsoftware.com/2007/10/26/evidence-based-scheduling/ https://www.joelonsoftware.com/2007/10/26/evidence-based-sch... [3] https://basecamp.com/shapeup/1.2-chapter-03 https://basecamp.com/shapeup/1.2-chapter-03
- cratermoon 4y agoIs this satire? This has to be satire. > making a baby is an atomic (blocking) task with time estimates ranging from 23 to 40 weeks. Look, we need that baby by end of the fiscal year. Just get as much as you can done in 26 weeks and we'll ship that. We can plan for phase 2 once it's in production.
- nivertech 4y agoYo went full Scrum. Never go full Scrum. If our Sprints are 26 weeks long, we can split the BABY-123 Jira ticket into two, Phase 1 in this sprint, and Phase 2 in the next sprint.
- joshxyz 4y ago
- mytailorisrich 4y agoI think the major project management tool is still Microsoft Project. It should be able to do all of what you ask although I don't it will do what you ask in your third bullet point unless you specifically assign extra people to tasks. However, as others have pointed out, how much a task will benefit of extra people is really something down to domain knowledge and experience and the tool is just that, a tool to help you.
- bjourne 4y agoThese are all classic scheduling problems and there are many solutions for all of them. The least complicated might be to learn how to use a constraint solver and input your constraints directly into it. Often that is overkill because if you have less than 10 jobs and 10 workers computing the schedule that minimizes latency (critical path) is easy to do by hand. However, as you surely know, modelling developers as schedulable jobs doesn't work in practice.