Call The Consultant considers
the software development process as naturally partitioning into
several stages, including:
     |
-
Requirements Analysis — establishing
the business rules of the project, determining the project
scope and initial requirements, logical database design,
obtaining management signoff.
-
Design and Prototyping — refining
the project requirements, physical database design,
prototyping, establishing priorities, determining the
risks involved and investigating approaches, setting
a project schedule.
-
Implementation — an iterative
process of designing, building, and testing small chunks
of code that implements progressively larger subsets
of the project requirements, while refining the requirements
to reflect increased understanding and refactoring the
existing code as needed to preserve a clean object structure.
-
Testing — an area oftened ignored
by software developers, we feel that adequate system
testing is a must for delivering a quality product.
As such, every project, without exception, has a defined
amount of time designated as system testing. This time
is used by our teams to make sure that the project does
everything it is intended to do, and also to make sure
that everything is working correctly. After all, a product
that doesn't work isn't much good to anyone, is it?
-
Delivery — user acceptance testing
is done at this stage, and minor modifications, cosmetics
and other user driven changes are completed in a relatively
short time period.
|
These stages are not exclusive, and often overlap
to some extent. They also may be repeated during the course of a
larger project. The last three stages, in particular, may be repeated
several times over the lifespan of an application.
Various
tools are available to assist with the different stages of the project,
specifically in the case of designing and reworking the data model
to fit the project requirements. Data Modelling Tools are used to
assist in this process. Call The Consultant
advocates the use of these tools whenever possible, as they are
incredible time savers and assist in catching logical inconsistencies
in the requirements.
During the Implementation stage, design patterns also become extremely
useful. These distillations of common approaches to problem solving
in software provide conceptual building blocks which can be plugged
directly into designs. Besides aiding the clean structuring of the
design, they allow complex concepts to be clearly communicated to
others involved in the project. Call
The Consultant strongly believes in the utility
of design patterns and requires that all developers become familiar
with at least the basic set of these procedures.
Refactoring, the process of modifying existing code to give a cleaner
structure, plays an extremely important role throughout the Implementation
stage. Proper use of refactoring is essential to quality code, and
needs to be done continuously as new code is written. Internal documentation,
that is, documentation from within the code itself, is also something
that we practice religiously. This practice makes it much easier
to pass the code from analyst to analyst with a minimal learning
curve. These practices pay off in dramatically reduced costs for
maintenance and enhancement efforts. |