Entity-Relationship Data Modeling
This is our preferred method for building data models because of its succinct representations of data domains. A central goal of any modeling effort is to produce a fully normalized central design with denormalization only on the design's fringe or where performance dictates.
Lean Software Development
We design and/or build only what is needed. Software is too expensive in too many ways to justify overbuilding. Likewise, software tends to restrict business processes and as such should not be overbuilt.
We strive to design and implement all business rules and software components as objects up to the limitations of the language used for development.
We write fully normalized software except where critical performance requirements dictate localized denormalization. We avoid using macros and layers of indirection wherever straightforward logic would suffice.
Comments are supplied in the source code at the beginning and end of each function, procedure and block, and for any lines of code whose purpose is not evident to anyone versed in the language. We strongly believe that cleanly written code is mostly self-documenting, and that comments should not distract from the infinitely more significant executable code.
Each source module is documented at the top, language permitting, with a terse history of creation and modifications.
All variables are typed to the extent that the language permits.
Rapid Application Development (RAD) with Proof of Concept
We prefer getting software in front of clients/users as early as possible during the development process. To that end we create prototypes of increasing sophistication until the system meets project requirements.
Concurrent with the delivery of successive prototypes, we work intensely to get beyond any intrinsically hard problems that the project poses in order to offer clear proof of concept at the earliest possible stages. Typically this involves the creation of a Library of Objects and Functions that solve the project's difficulties or 'wicked problems'.
Software Library Architectures
In an aggressive spirit of code-reuse, we diligently identify all common logic and place it into a Library that will be shared by the various application modules.
Universal Modeling Language (UML)
For large-scale projects with multiple stakeholders, we can go the extra mile to fully express designs using the tools of UML. Not all projects warrant this level of sophisticated documentation but it can be a great help when much and varied information must be communicated to a wide range of audiences.
Return to the Home Page
Copyright (C) J Lusa Computing LLC 2009