Project planning and estimating is a big
field.

In a nutshell, the key to making such an
effort very effective is just really good
knowledge of and experience with all the
parts of the project to be done.

Below in (1) -- (5) I give an overview of
parts of the field.

(1) Importance of Experience.

Here some examples where a lot of
experience is crucial:

A kitchen/bath remodeling firm can give a
good estimate of time and cost because
they have already done, say, one such job
a week for five years, that is, 250 jobs;
so, essentially they have already seen it
all, that is, all the possibilities of
what can go wrong and how much there is to
do. Similarly for an auto body shop, a
residential HVAC company, a plumber or
electrician, a landscaping company, an
asphalt paving company, a residential
housing general contractor, etc.

(2) Software Projects and Experience.

One means of project planning and
estimating for software projects looks at
each of the parts of the work and starts
with the experience level of the team for
that part.

For parts of the work where the team has
no experience, that is, is doing such work
for the first time, no estimates are made!

So, the project planning works only for
projects where there is good experience
for all the parts of the work.

Alas, often software projects need to do
some things for the first time.

(3) Critical Path.

Some US DoD projects made use of Gantt
charts,

http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd...

and in particular the concept of a
critical path. As I recall, this work
can make good use of linear programming
which can identify the critical path.

Intuitively the critical path is a
sequence of tasks such that, if any task
in that sequence takes one minute longer,
then the whole project will take one
minute longer. So, the tasks on the
critical path have no slack.

So, to speed up the whole project, must at
least speed up the projects on the
critical path.

Next, then, of course, is the issue of
where to put more resources to speed up
the projects on the critical path. This,
then, is a resource allocation problem,
another optimization problem.

(4) Alternatives and Uncertainty.

One of the biggest problems in getting
projects done on time and within budget is
handling uncertainty, e.g., the effects of
unpredictable, outside influences, that
it, exogenous random inputs.

And, there can be some alternatives in how
to execute the projects; then during the
project might select different
alternatives depending on how the project
has gone so far, that is, the then current
state of the project.

State -- Essentially the situation or
status of the project at some particular
time, and generally want enough
information in the state (vector or
collection of information) such that the
past and the future of the project are
conditionally independent given the state,
that is, want to satisfy the Markov
assumption so that in planning the future
can use just the current state and f'get
about all the rest of the past.

One such state is always the full past
history of the project, but commonly
much less information is also sufficient
to serve as the state.

Commonly we can be drawn into the applied
mathematics of stochastic optimal control,
say, at least discrete time stochastic
dynamic programming, e.g.,

Stuart E. Dreyfus and Averill M. Law, 'The
Art and Theory of Dynamic Programming',
ISBN 0-12-221860-4, Academic Press.

Dimitri P. Bertsekas and Steven E. Shreve,
'Stochastic Optimal Control: The Discrete
Time Case', ISBN 0-12-093260-1, Academic
Press.

Wendell H. Fleming and Raymond W. Rishel,
'Deterministic and Stochastic Optimal
Control', ISBN 0-387-90155-8,
Springer-Verlag, Berlin, 1979.

E. B. Dynkin and A. A. Yushkevich,
'Controlled Markov Processes', ISBN
0-387-90387-9, Springer-Verlag, Berlin.

So, a lot of quite serious applied math
research has been done, and a lot is
known.

Broadly stochastic dynamic programming
makes the best decisions that can be made
making use of only information available
at the time each decision is to be made.

Nicely enough from the Markov assumption
and just a simple application of Fubini's
theorem, we can say a little more about
being best possible.

Interesting here, and a way to get some
massive speedups of some software, is the
concept of certainty equivalence in the
case of LQG, that is, linear, quadratic,
Gaussian control as in

http://en.wikipedia.org/wiki/Linear-quadratic-Gaussian_contr...

So, the system is linear (as in a linear
operator or, for an important special
case, matrix multiplication); the
exogenous random variables are Gaussian;
and the quantity to be controlled, say,
minimized, is quadratic (which also
includes linear).

(5) Spreadsheets.

Sometimes a spreadsheet is used for
project planning, and there is an
interesting observation to be made here:

So, suppose we are doing financial
planning for five years and develop a
spreadsheet with one column for each
month, that is, 60 columns, maybe 61,
and one row for each variable.

So, some of the spreadsheet cells
represent exogenous random variables, and
some cells represent decisions to be made.

(A) We can fix the decisions and
recalculate the spreadsheet, say, 500
times and, thus, do Monte Carlo simulation
for the random cells and get an empirical
distribution and expected value of the
money made at the end of the project.

(B) We can fix the values of the exogenous
random variables and then use some
optimization to find the values of the
decisions that maximize the money made at
the end of the project. Spreadsheet
software has long, often had some
optimization, from linear programming or
L. Lasdon's generalized reduced gradient
software, version 2 -- GRG2.

This approach, in terms of football, say,
the Superbowl later today, would be like
the quarterback on first and ten calling
the next four plays without considering
the extra information he will have after
each of the plays. Quarterbacks wouldn't
do that, and business planners should not
either.

(C) But what about making the best
decisions with the random exogenous random
variables not fixed? Then usually we want
to maximize the expected value of the
money made at the end, but the form of the
decisions is special: At each period, the
decisions are in terms of the state of
the project as of the end of the last
period.

So, such optimization is called discrete
time stochastic dynamic programming,
Markov decision theory, etc.

So, nicely enough, computer spreadsheet
software has enabled some millions of
planners to specify in very precise terms
some nearly complete formulations of
problems to be solved with stochastic
dynamic programming.

For a reasonably large spreadsheet, such
optimization would be a super computer
application -- nicely, there really is a
lot of parallelism that can be exploited.

At one time I pursued just this direction
at the IBM Watson lab in Yorktown Heights.
Had the semi-far sighted management let me
continue, by now there should be a good
business for cloud sites to do such
problems, say, use a few thousand cores.
Ah, IBM has missed out on several much
larger opportunities!

There are various approaches to making the
computations faster, say, using
multivariate splines to approximate some
of the functions (tables) to be generated,
the R. Rockafellar idea of scenario
aggregation, and more.

My guess is that the OP has in mind
something simpler.

As I recall, there is some project
planning software. Right, a simple Google
search shows, e.g., Microsoft's Project
2013.