|
Perhaps the most difficult part of a development project
is scheduling and estimating the time involved.
Though never an easy task, the burden can be reduced by
following some key principles.
The most important facet of development timing is to
tightly track and manage individual tasks. The
trick, of course, is how to do this without stifling the
developers and other team members. The underlying
reason for strict control is that software is somewhat
unique in that a task can easily run 50% under or 1000%
over time. Since time overruns are so common and
directly affect the schedule, it's critical to capture
them as soon as possible, sort of just-in-time
rescheduling; similar to the JIT process used in
manufacturing.
Define Tasks - The first step is to clearly
define ALL of the tasks necessary to finish the
project. These should be fairly detailed, covering
anything that takes one day or more. The most
numerous items on the list will probably be design,
review, and coding tasks, and should be included for each
module a developer will handle. Be sure to involve
all team members while creating the list, as they will
have considerable experience in the necessary steps, plus
they need to buy in to the process.
Estimate Tasks - After listing all the tasks,
the next step is to estimate them, in day or half-day
blocks. Note that this is how it will take to do the
work, not calendar time, so a five day project should be
five days of work; the schedule will be adjusted later for
meetings and other elements that keep developers from
working.
Track Tasks - Update the progress on the
schedule twice a week, on Mondays and Fridays. It's
not so important that people work in a specific order
(that's a different issue), but that the task list is
tracked in terms of what has been worked on, what's left,
and how good the estimates are. Update things in
real time, so if a task is taking an extra two days,
adjust the schedule ASAP to understand the ramifications.
|
|