Nobody really likes slow buggy software. In order to avoid this kind of software,
we use a very rigorous analytical process to specify and design software. This process
generates a significant amount of detailed documentation that we use for testing and
that you can use for maintenace.
We use this rigorous process in an incremental development approach. Our initial
development provides features and capabilities that support 90% of the job required by
your user. Later increments add features that you might consider bells and whistles.
Since we want to add features later, we are also forced to employ easily modified software
architectures and designs. Our software approaches are characterized by table driver
controllers, encapsulated data structures, and abstracted hardware interfaces.