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