In his CM: the Next Generation series, 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.
As we begin 2010, we're not just starting a new year, but a whole new decade. I thought it might be worthwhile, then, to look back at the last ten years to see where CM and ALM has come from and then forward another ten to see where it's going. In some ways, a lot has happened in the past decade, but in other ways, the progress has been painfully slow. I would certainly have expected more consolidation of standards and easier to customize tools. Still, there's a lot that has happened so let's start there.
Key Events of the Decade
A number of events, or non-events, have helped SCM to leave it's mark on the first decade of the millennium. I suggest a few of them here, and give some insight on each of them. If you think of some I've missed, let's hear from you:
1. Acquisitions and New Players
2. ALM
3. Seamless Integration
4. Usability
5. Dashboards
6. Process Flow
7. Integrated Repository
8. Little CM Advance
1. Acquisitions and New Players
A significant event of the decade has been acquisitions. Most notable are the acquisition of both Rational and Telelogic by IBM. This one has had lots of time to settle in, especially on the Rational side, but it's still not clear what the ultimate SCM/ALM goal is for IBM. Both acquisitions involved more than just SCM, but how do you consolidate ClearCase and Synergy? And what of the other acquisitions? Serena acquired Merant, and Micro Focus acquired Borland.
One of the new players, AccuRev, has grabbed a number of converts. At the same time SubVersion has captured significant Open Source interest.
2. ALM
The continuing expansion of CM scope gave way to recognition of the ALM acronym (Application Lifecycle Management). One key question is whether or not any of the players can survive without offering full ALM solutions. ALM is meant to embrace the entire life cycle. But put a CM tool together with Requirements Management, Test Case Management and Problem Tracking, and you've got the bare minimum to qualify for the ALM acronym. Some vendors will include Document Management, Project Management, Build and Release Management, Test Result tracking and Deployment functions in their ALM offerings. Then there's Process/Work Flow management and Change Management.
There is no real definition of ALM. In fact, the definition needs to be somewhat application dependent. Web applications have different life cycle needs than cell phone apps, which are very different from apps for power plants.
But the idea that CM is more than just CM exploded into the 20th century. The transition is more than functional. ALM is a backbone business technology, whereas the old CM was a design team aid. The industry has transitioned. The technology is still catching up to the transition.
3. Seamless Integration
As ALM catches on, there has been a realization that ALM is not just a merging of a bunch of tools into a suite. The key is to get the payback of an integrated solution. Similar administration across all management functions, common process/work flow engines, common repositories and unified user interfaces. The payback has begun to build. This is especially obvious in tools such as CM+ and MKS.
The concept of seamless integration goes even one step further. Not only are the functions together, sharing data, etc., but with seamless integration, you don't even need to know what functions you're using - you don't think that way. Instead, you begin to think of roles and what you need to do your work. A seamlessly integrated tool allows you to navigate through your role(s) from a single interface which is role-based, instead of being lifecycle function centric.
One of the key challenges of seamless integration, attained by very few tools, is the ability to freely and quickly navigate through traceability links, which themselves can be extended as needed by the application management team. When you can answer the questions you need to with a few clicks traversing multiple lifecycle functions, you're almost there. When you can also use the same multiple-site technology on all ALM functions you've arrived.
Seamless integration has really been restricted, for the most part, to management tools. There is still a lot of work to be done to integrate design tools with management tools. Limited success in the "back-plane" efforts, and complexity in the Eclipse and other IDE integration spaces have slowed progress here.
4. Usability
Seamless integration is just the tip of the iceberg. The real advance of the decade has been in usability. CM tools have gone from a capability driven market to a end-user driven market. Mac and Windows applications are easy to use. They don't require a lot of training to get going. So CM users are demanding the same. CM, which used to require a week or two of training, and vendor supported installation, is now, in many cases, a set-up and go environment. Many common capabilities, such as checkin and checkout, are accessed in an object-oriented fashion, through a source tree.
OK, there are still many tools that are command line driven, but those are dying away.
There's still a long way to go, but significant strides have been made so that the CM tools reach out beyond the designer to the whole product team. Advances have been made so that administration is dramatically reduced, or at least has a reasonable user interface to support it. Only the complex, older technology still needs multiple levels of administrator training.
5. Dashboards
The one thing that has brought CM/ALM tools into the realm of management, more than any other perhaps, is the use of dashboards. Dashboards can summarize project data, product data, developer data, test data, and more. Well-designed dashboards can be used to drive meetings. Their drill-down capabilities allow management summaries to be interactively probed to give more detail on risk items. In some cases, dashboards are pre-configured as part of the tool, while in others, there are various levels of customization possible.
Dashboards are new to ALM tools, but already have shown significant promise in elevating CM/ALM tools to a backbone technology used by development and business managers alike. At the end of the decade, it was becoming clear that role-based dashboards are important. And there's a lot more progress to follow as dashboard technology will continue to evolve into role-based portals for CM users.
6. Process Flow
The term "process-centric" was adopted to describe CM tools which could be adpated to support particular CM processes. Over the decade, the industry began to formalize the description of CM process. The use of state flow (state/transition) diagrams extended across multiple ALM functions. The concept of user roles was used to describe process.
The process focus, facilitated through maturity models, such as CMMI, has positioned the CM industry to come together to form a more standard behaviour. This still has a long way to go, but the process focus has brought the industry to a key threshhold for moving forward. Process technology will continue to progress as the relationship among object-based interfaces, rules, triggers, permissions, roles and state transition diagrams is formalized.
7. Integrated Repository
The idea of an integrated repository across the lifecycle has caught on in the industry. It doesn't mean that all the solutions now provide this. But some do, and the others realize that without a single integrated repository, seamless integration isn't going to happen, and traceability is going to remain, at best, rigid while requiring considerable effort. The attempt to build CM "back-planes" really needs to be founded on the realization that an integrated repository of ALM information is required. Furthermore, the set of information will continue to expand over time - the back-plane will ultimately be the repository.
8. Little CM Advance
Overall, on the CM proper side of things, there has been very little advance. Merge tools do the same job as they did a decade ago. Baseline definition technologies have not progressed significantly. Some of this is because the job is completed (e.g. merge tools). But in some cases the progress has just been slow. Progress has been made in managing CM better from a Change perspective, rather than from a file revision perspective. Much progress has been made in supporting workspace management. Still, the complexity of CM is high and the tools have to do more to reduce the complexity for the user. Better use of context, branching patterns, and cross-product capabilities are required in most tools.
So there you have a quick summary of many of the major events of the past decade - as I see it anyway. There are also a lot of external factors: user interface standards, mobility, web access, etc. that have had an impact. But let's move on.
And now, 10 for the '10s
So what are we going to see over the next decade? Here's a glimpse. But to be sure, there will be new technologies which will bring changes to this list over the decade.
1. CM Moves into Broader Verticals: Lawyers, Accountants, ...
2. Next Generation Repositories
3. Easy Customization
4. Market Consolidation
5. Broader ALM
6. SCM Standards
7. Reliability and Security
8. CM/SW Design Synergy
9. Zero Administration
10. Significant Price Drops
So here's my quick take on what will happen in these areas.
1. CM Moves into Broader Verticals: Lawyers, Accountants, ...
There is a realization, today, that CM could be of so much use outside of the development shop. Lawyers have endless revisions of their legal agreements. Accountants evolve their spreadsheets. What tools do they use to keep track of their evolution? Well, there's not really much out there. In the next few years, CM technology will evolve to bring solutions outside of the traditional domain of CM.
2. Next Generation Repositories
While vendors and users alike have recognized the need for an integrated repository across the lifecycle, the complexity of CM will necessitate a move from traditional repositories to a new generation of repositories. This next generation will allow the revision of data records, will support hierarchical data architectures, and will simplify mapping of the CM problem space onto the repository. At the same time, they will bring in a new level of performance while eliminating database administration.
3. Easy Customization
Many tools have progressed to allow significant levels of customization. While customization is a requirement, unless it is easy to do, and can survive upgrades, it will be of limited use outside of the larger shops which can afford to dedicate resources to customization. But the drive for customization is too large maintain this status quo. Dashboard design will drive this requirement as customers demand the ability to create their own dashboards.
4. Market Consolidation
The CM market will begin to consolidate. A few solutions will win out in the end. Whether or not one of these will be an Open Source solution is still to be determined. Consolidation will be driven by price pressures and lower levels of consulting as ease of use improves.
5. Broader ALM
ALM will continue to broaden. On the front side, we'll see time sheet tracking, portfolio management, and business case management. On the back side, we'll see customer tracking and, in some cases, more detailed deployment tracking. Where it makes sense, organizations will grow CM to cover the entire product lifecycle.
6. SCM Standards
Have you ever looked around for a good SCM course. You'll find the occasional course, perhaps very narrowly focused. But until the industry consolidates terminology and practice significantly, it will be difficult to define adequate SCM courses. However, this will happen in this decade. The courses will help consolidate the standards and vice versa. PLM and ITIL will find a software CM counterpart.
7. Reliability and Security
Reliability is a big issue today with CM tools. This will cease to become an issue as the relative cost of unreliability will grow dramatically. Scalability, a key challenge of reliability, will be addressed by improving technology. And alongside reliability will be significant advances in managing the security of data. Integrated data encryption technologies, at-rest encryption, user-level and role-based data protection, and more will come to play a bigger role.
8. CM/SW Design Synergy
The line between CM and SW Design will begin to blur as CM tools start to address SW architecture and design support issues. For example, searching through multiple revisions of source code, and searching through a specific configuration lineup will move search functions from the IDE to the CM tool. Support of product variants will be primarily a design issue but strongly supported through a CM framework. CM tools will be used to simultaneously support multiple views of a web site, based on the user context. There are many other design areas that will merge with the more advanced CM tools of the 2010s.
9. Zero Administration
A few CM solutions require almost no administration. Some of these provide a narrow CM scope, but some provide a wide ALM scope. In the coming decade, if there's a need for administration, the CM tool will fall out of the market. The cost is too high and there will be a sufficient number of solution alternatives that require no administration. This means easy install, easy upgrades, fast roll-out, and no need for a day-to-day administrator.
10. Significant Price Drops
CM product licenses will see significant price drops across the industry over the next decade. Investment in high price solutions will be justified only where the total cost of ownership can be show to be low. Consulting and training rates won't change much, but hopefully there will be a lower requirement for each. Open Source solutions will get squeezed here because, although they will continue to evovle, their architectures will limit how quickly they can advance in the market. As prices fall in the market, the savings of using open source will decrease significantly.
So there they are at a glance. My 10 predictions for the 10 years of the '10s. 10 for the 10's. So what am I missing? Or where have I made my mistakes? Let's review it again in 10 years to see how I did!