At Buda Consulting, our approach takes more time but results in high quality code that is robust, durable and reliable.
All of our code contains exception and error handlers so that the code is very unlikely to break ungracefully. It is designed to handle both anticipated and un-anticipated events. Robust code has the following characteristics:
- The processing is segmented: should a given portion of the process fail, all the processing which has already been completed, will remain logically intact. Where appropriate, processing is divided into transactions so that a given portion of the process can be rolled back without impacting the earlier – already complete – portions of the process.
- Exceptions are logged and handled so that we can trace errors by looking in log files.
- The applications are designed to survive failures where appropriate, so that processing continues when failure occurs.
We design code using building blocks (functions or procedures) that can be used in this application and others. The impact of this is that if the overall application changes, the individual components can frequently be re-used, extending the useful life of the software. An important feature that we use regularly is the SQL function. These functions can be used in any application written in the future and can also be used in ad-hoc sql queries. This extends the usefulness of the logic written for the particular application significantly and has a very high payoff for the organization.
We employ extensive testing on all applications. This includes testing of individual components as well as system integration tests. It includes testing likely and unlikely (but possible) events. This results in a very low defect rate on our software. We do not put code into production and let the users find the bugs, a practice that we see often. This stringent testing practice takes time but is essential in order to have high quality software.