Six Ways to Build Reliable Applications


In his CM: the Next Generation, Joe Farah gives us a glimpse into the trends that CM experts will need to tackle and master based upon industry trends and future technology challenges.

software industry, from a solution perspective, is that it rarely aims high enough, with noteable exceptions. It says, this what we know how to do so we'll provide this bit of functionality. Eventually the architecture gets maxed out.

Instead, identify what the solution needs are: like zero-administration, small footprint, etc., and make your architecture stick to it. In the end it will pay for itself. People frequently ask, "How can you fit so much in so small a package?” It's because we aimed to support a full ALM solution from the start. We didn't have to build 10 solutions and then add additional glue to partially integrate them. We identified from the start that an ALM solution was necessary, and that we didn't understand where the boundaries of ALM would eventually end up.

If you hire different people to build the different walls of your house, it will cost more, there will be more glue, it will take longer and your overall structural integrity will suffer. Identify the common properties and make the tools to build all of the walls the same (dry wall, aluminum beams, insulation type, processes, etc.). Then it's easy to look at the structural integrity up front.

Don't try to build reliability into a software product after all the pieces have been built, as it won't happen. The increase in complexity will negate any attempts at reliability. So, too, with the other attributes: We want the product to be small-IT in the end, not big IT.

What About CM
So there are some lessons in the CM world - CM vendors take note. These are simply basic requirements. The ALM applications have to work together. We want easy-to-use low-training applications. Zero administration. Small footprint. Easy branching. Easy baseline definition. Change-based management. Support for development streams, and in general support more for the normal way of doing things (make that easier than the exceptions). Support for multiple site operation. Easy backups. High reliability and availability. Easy

About the author

Joe Farah's picture Joe Farah

Joe Farah is the President and CEO of Neuma Technology and is a regular contributor to the CM Journal. Prior to co-founding Neuma in 1990 and directing the development of CM+, Joe was Director of Software Architecture and Technology at Mitel, and in the 1970s a Development Manager at Nortel (Bell-Northern Research) where he developed the Program Library System (PLS) still heavily in use by Nortel's largest projects. A software developer since the late 1960s, Joe holds a B.A.Sc. degree in Engineering Science from the University of Toronto. You can contact Joe at

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

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

Upcoming Events

May 04
May 04
May 04
Jun 01