Services
Improving poorly-designed systems
We offer the developers of CAD systems services for improving the
quality of their software.
We propose a scheme for a project involving our analysis and a joint
effort in development, aiming to radically change the quality of the
system's design.
Our scheme requires a joint effort during a period of time fixed in
advance, with pre-defined goals to be reached during that period.
We can propose further guidance, directions, and supervision at
the end of this period.
Low quality system: The consequences
To help with appreciating the nature of our services, we list below several
common consequences of low-quality design.
If you've already realized that
your organization suffers from some of the symptoms below, or all of them,
and that this is costing you a lot of time, energy, and money,
you may use the services we offer to improve your situation dramatically.
-
The quality of your sources is inconsistent.
Your system is written so that it (barely) works, instead of the way you
want it- so that it works, in a robust manner, and can be easily understood,
changed, and expanded.
-
There are modules that only certain people can access,
or modules that are too dangerous for anyone to access.
-
It is difficult to introduce new features.
It takes too long to train programmers to add new features for your system.
Programmers become irreplaceable because their expertise,
and knowledge of the system, are too specific and can't be transferred.
There's a large handicap that your old source presents when a new version
is developed.
Far more time is required for fixes for
existing features, relative to the time that can be devoted for
development of new features.
-
Some operations are performed through the system, in different manners
and different levels of accuracy, instead of once, in a form that is
clear, correct, and accurate.
-
Little (or none) of your code is completely independent of the rest of
your system, and can be used as-is in a new system, product, or utility.
Little (or none) of your code is platform-independent.
-
Some of your source is 10-15 years old, possibly imported from
an older system, even an older language.
This old source is not your most important asset, but your biggest problem.
-
Rather than resembling a shelf with shiny inter-connected black boxes,
with some wiring, neatly organized, behind them, your source resembles
a huge bowl of spaghetti, where the noodles are
of different lengths, thicknesses, and levels of freshness.
-
The software documentation your system contains is scarce, or inconsistent
in its level, or non-existant.
None exists outside of your sources.
These obstacles exist at certain levels in most organizations.
Often the levels vary between products and departments within the
organization.
The process and objectives
We offer a process of advising, and supervising implementation,
for dramatic improvement for the quality of software systems.
The objective of such a project is to set a process in motion, which will
be maintained and intensified to generate long-lasting influence.
There are several objectives for this process:
-
Analysis for pointing and correcting common errors
-
Raising the quality of software systems
-
Creating a set of interfaces that are clear and consice
-
Separating modules that are re-usable inside a system and across systems
-
Starting a culture of quality and discipline