How to Build Reliable Systems


In his Behaviorally Speaking series, Bob Aiello discusses hands-on software configuration management best practices within the context of organizational and group behavior.

Successful organizations understand that quality has to be a cultural norm. This means that development teams must take seriously everything from requirements management to version control of test scripts and release notes. Organizations need to take the time to train and support developers in the use of robust version control solutions and automated application build languages, such as Ant, Maven, Make, and MSBuild. The tools and plumbing to build, package, and deploy the application must be a first-class citizen and fundament component of the application development effort.

Agile development and DevOps are providing some key concepts and methodologies for achieving success, but the truth is that every organization has its own unique requirements, challenges, and critical success factors. If you want to be successful, then you need to approach this effort with the knowledge and perspective that critical systems are cumbersome to develop and also cumbersome to support. Building the automated deployment framework should not be an afterthought or an optional task started late in the process. Building quality into the development of intricate computer systems requires what Deming described in the first of fourteen points: "Create constancy of purpose for continual improvement of products and service to society” [2].    

We all know that nuclear power plants, medical-life support systems, and missile-defense systems must be reliable and they obviously must be upgraded from time to time—often due to uncontrollable market demands. Efforts by responsible regulatory agencies, such as Finra, are essential for helping financial service firms realize the importance of creating reliable systems. DevOps and configuration management best practices are fundamental to the successful creation of reliable software systems. You need to start this journey from the very beginning of the software and systems delivery effort. Make sure that you drop me a line and let me know what you are doing to develop reliable software systems!


[2] Deming, W. Edwards (1986). Out of the Crisis. MIT Press

About the author

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.