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.

to customize, extensively if necessary, while eliminating the necessity as much as possible. And so forth.

It's not sufficient to look at a piece of the solution and apply good architecture to each piece. It has to be a solution-wide effort. Making multiple site operation work for the files in the solution does not give me a Multiple Site ALM solution. Consistent backups for the file repository do not give me consistent backups for the entire ALM repository. If even one piece has high administration, the solution will appear to have high administration. The same goes for reliability: the weakest link will be the most noticeable.

The first two generation of CM tools did not abide by these lessons. The next generation tool must, or it won't be considered a third generation tool. The good architecture of a tool will be much more apparent in third and fourth generation CM tools:  at cost, risk, roll-out time, resource requirements, reliability, and accessibility levels, to name a few.

To Sum Up
If you want to build better applications and applications that are more reliable:

·         Understand your requirements well, and expect them to change

·         Aim high, not only to meet, but to exceed your requirements

·         Put Architecture first, at the solution level and at the design level, using experienced architects

·         Generate re-usable components that will grow in reliability over time, and learn how to build APIs that are widely re-useable

·         Train your development team on your architectural requirements and guidelines, and do peer reviews against your guidelines

·         Understand the processes surrounding your application, and improve on them

Yes, you'll still have to document your product requirements well, especially so that you can verify them against the candidate releases. You'll also be able to better withstand the storms of changing requirements, evolving standards and competition.

I'm sure I've only scratched the surface, but maybe I've also ruffled a few feathers.  Let's hear from you.


About the author

AgileConnection is a TechWell community.

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