We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this questionIs there a tool or a formula for calculating man-hours required for a certain project? Either by specifying the details, either, even better, input the sources and have it calculate a measure of how many man-hours were put into the project.
Edit:
I often hear about big projects, with components built in parallel by numerous groups, that they took a couple of thousand man-hours to complete, but they were finished in just x days... probably an argument supporting the teams' efficiency... so I think it might be possible to at least开发者_运维百科 estimate these measures. I am convinced that efforts were put into making these estimations automatic, and even though they might not reflect the actual time invested in the project, at least I'd like to know that the "state of the art" is in this kind of endeavour.
There is a whole science to this called Function Point Analysis.
Read through this introductory article. Or try the Wikipedia article for more references and external links to follow up. This technique is based on looking at the functions which are to be implemented in the software, and assigning a point count to them. Then you plan on how many points can be achieved per day to figure out a schedule.
There are also techniques that lean more on psychology which involve asking people to estimate the time of of individual tasks in a project with best, worst, most likely, cutting their estimates in half and padding out the end of the project with an unspecified buffer time which can be used for late running tasks, only if needed. This works by giving the developers a short timetable for results, but promising management/customers a longer timetable. It's called Critical Chain Project Management and has been used with success in defense projects.
- Introduction to Critical Chain
- Wikpedia article
Estimating the man-hours for a new project is more about experience than formulae. When I started programming there was this notional "10 lines per hour of debugged code" that was the yard stick but that figure varies hugely based on the type of code, the language and the experience/skill of the software engineer.
I suggest that you search the internet for articles on estimating software development projects, one example of such an article would be this How to estimate a software project in man-hours?. But it's by no means definitive but does demonstrate the complexities involved.
As for looking at some code and estimating, you might as well stick a wet finger in the air and guess. Only the programmers involved would know and even then I suspect the answer wouldn't be accurate. At the end of the day it's an estimate, not a quote or a fact, and as such often open to wild variations.
Unfortunately general the answer is no -- there is no, ready to use, formula to calculate man-hours for software project.
However, software project estimation, is a huge problem and there are a lot of ways to deal with it.
Many solutions are described in Steve McConnell's book Software Estimation: Demystifying the Black Art.
Steve's company offers also some resources and tools (some of them are free) which help to estimate software project.
精彩评论