How to Build Reliable Systems

[article]

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!

[1] http://www.finra.org/Industry/Regulation/Guidance/TargetedExaminationLetters/P298161    

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

About the author

Bob  Aiello's picture Bob Aiello

Technical Editor of CM Crossroads and author of Configuration Management Best Practices: Practical Methods that Work in the Real World, Bob Aiello is a consultant and software engineer specializing in software process improvement, including software configuration and release management. He has more than twenty-five years of experience as a technical manager at top New York City financial services firms, where he held company-wide responsibility for configuration management. He is vice chair of the IEEE 828 Standards Working Group on CM Planning and a member of the IEEE Software and Systems Engineering Standards Committee (S2ESC) Management Board. Contact Bob at Bob.Aiello@ieee.org, via Linkedin linkedin.com/in/BobAiello, or visit cmbestpractices.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!