natira said:
How do I know when I am "done" with a database and
that it's time to move on to the next project?
If you have done it using certain "modern" techniques -- starting out with
only a vague idea of where it should go and what should be in it, developing
a few days or a week, showing it to the users, getting feedback, changing,
showing, getting feedback, you may have "sold yourself into a lifetime of
involuntary servitude" and never be finished. Not only can you not refer to
any documentation of what was to be done, you can't refer (generally) to any
documentation of what _was_ done, except by digging into the application and
reading the code. Then you still have no idea if that is what _should_ have
been done.
If you are using more traditional techniques -- determining the business
requirements (needs) and documenting them, getting approval from the
sponsoring user, then architecting/designing/implementing whatever way is
best in your environment, somewhere along the way, you should have
documented "completion criteria" even if it is internal.
I have seen large commercial software implementations done by firms who
should have known better drag on approximately forever because the contract
was drawn such that "it's not done until the client says so". Either there
was a cagy client, or an incompetent contract manager at the vendor. In one
case, a little $25,000 fixed price job cost the vendor over $250,000 for
that very reason. At about the $250,000 level of expenditure, one of the
vendor's managers became a hero by talking the customer into agreeing to
completion criteria -- not agreeing that it was complete, just that it would
be, when these additional criteria were met.
Anything less that defined completion criteria leaves you at somebody else's
mercy.
If contracting, not working internally, two suggestions: (1) never, ever
take on a fixed price contract and (2) never, never, never ever take on a
best-estimate with fixed upper limit contract. Even with what seems to be
well-drawn completion criteria, you may never finish; in the first case,
there is some possibility that you might finish early and under your
development budget and make a bigger profit; in the second case, only the
client stands to benefit if you finish under budget, or if you exceed the
budget.
Larry Linson
Microsoft Office Access MVP