For software developments of substantial size or complexity, our usual
methods employ a classical waterfall
type development approach,
with modifications appropriate for the unique needs of each individual
project.
Our approach is shares many fundamental approaches and principles with
Oracle's former Custom Design Method and their earlier Case*Method approach.
Like these approaches, ours places firm emphasis on
data requirements documented using detailed
data model diagrams. Data flow diagrams are also commonly used to
document data flow into, through and out of the system.
Elements of the ANSI/ISO-9001 quality assurance
guidelines as applied to software development are also applied.
User requirements are generally documented using Use case
methods (examples provided within analysis
stage link below).
We feel that use case methods offer superior qualities in terms of the
ability to obtain useful input and review from members of client staff.
Later application design often employs an elaboration of these use cases
to specify user interface mechanisms, etc.
Client staff are typically involved in informal review of development products throughout the Strategy, Analysis, and Design stages. Typically, client staff input and review constitutes between 10 and 20 percent of the total hours expended in these stages.
The involvement of client staff is intended to catch and correct planning errors at the earliest possible point to minimize overall development effort and expense. Many studies have shown that error corrections become substantially more expensive at later development stages - with costs often documented to increase by a factor of 10-20 when detection of an error is delayed from one development stage to the next. Additional studies have repeatedly documented that inspection-based reviews are one of the most cost-effective approaches for identifying errors.
Our experience is that this approach provides meaningful benefits, even on relatively small projects. We have not found abbreviated approaches to yield reliable benefit for clients.
In this approach, the development typically moves through several
phases
:
businessrequirements.
userrequirements.
functionalrequirements.