Bradley said:
I'm working with an organization that has very weak dependencies
between its deliverables. For instance, though the technical design
theoretically ought to wait for the completion of the requirements, it
oftens begins prior to that point as the architects begin to get a
flavor of the system.
What's the best way to schedule in this situation? Obviously, I can
build dependancies based on the theoretical project flow, but since it
doesn't reflect reality, what's the point? On the other hand, because
the initiation of tasks is informal, it's very difficult to predict
when they will start.
Essentially this question is about risk management. Clearly, it is not
necessarily the case that the requirements have to be absolutely
finished before you can start on the technical design (those that doubt
that might like to consider what the risk is in starting 1 day, 2 days,
1 week before the completion of the requirements).
However, in starting the work early there is *some* risk and that has to
be managed by rigorous version control and ensuring that there is time
set aside to review the final version of requirements and assessing
whether or not any of the subsequent modifications have affected the
design work that has taken place.
In many real world situations, resources may be available today and you
either have the choice of using them and managing the risk or losing
them for a period. Whether or not you take that risk depends on what
harm would be arise from sticking out for the holy grail of completed
requirements.
Jan's approach is as always good. The problem is actually how to
describe the sub tasks leading to the requirements capture (in this
example) and their quality criteria so that it is decidable when they
are finished. One person's 'familiarisation' is another person's
architectural picture.
However, if you can partition the requirements into largely disjoint
areas and do something similar with the technical design then you can
achieve something along the lines you want. By having more complex
linking arrangements. This is of course more work for the Project
Manager, but this doesn't come free.
There may also be other constraints which allow you to do work early.
You may for example intend to build from an existing platform, or have a
certain sort of technology you would want to use or have a sufficiently
good understanding of physical or infrastructure or security constraints
to allow work to start.
Ultimately, it depends on how well you can actually model the process
you are using.