And every version control system must possess universal attributes, he notes. One, it should provide revision control on individual assets or objects. Two, it should provide the obvious version control, which he calls a snapshot that consists of a specific revision to the assets. Three, it should apply lifecycle tracking. By lifecycle, Parker means every step in a user’s version, from development to quality assurance and other steps that describe the path through the version’s particular life.
A fourth critical aspect of software version control is providing protected work spaces, he said, “so that different teams can apply different changes without affecting others.” One real version issue exists, for example, when there’s a common library of shared components that are used in three applications, Parker says. “You have three different teams all working, all moving forward. The library is also advancing. You need to be allowed into that common library,” Parker explains. But you also need a common, protected workplace, he says. What must occur then is that the developers have access to information but no ability to change the library.
What drives the need for version control? “Software configuration management (SCM) does. It’s the layer on top. It’s a gate keeper,” says Bob Jenkins, principal collaboration consultant with CollabNet (www.collab.net), Brisbane, Calif., which supplies on-demand distributed software development solutions such as Subversion, an open-source, wide-area-network technology that centralizes version control changes made on the same software located in different places. “SCM is usually tied to a system that tracks, issues, detects and enhances. Most SCM is external to, but tightly integrated with, version control technology,” Jenkins explains.
But there’s only a line—not leap—between version control and SCM, he says. “Whether you go all the way from version control to SCM depends on how sophisticated your development program is.” He calls SCM somewhat of a luxury, because its complexity requires users to first get comfortable with version control. “SCM is probably better for larger companies and teams, especially those that are much more dependent on software,” Jenkins says. “But for some smaller companies, version control is probably all they need.”
Serena Software’s Parker also suggests that companies may need SCM, but adds they may go even further to software control management. What drives these decisions is organizational complexity, which he says encompasses size of applications, size of the IT team involved, project criticality and the fault-tolerance requirement of the system. Noting that revision control is the true first level in this progressive hierarchy that ends with software control management, Parker explains that version control applies to individual applications, while SCM is system-wide and software control management goes beyond SCM.
Make it intelligent
What’s next for version control? End users are looking for version control to be more intelligent and easy—to tell them what to do—Jenkins says. “The distinguishing part is the number of layers you can put on top of version control. It’s the GUI (graphical user interface) thing.”
But what Jenkins believes is now driving version control is the simplification of more complex processes, from a behind-the-scenes vantage. “The user now has a simpler way of doing things and leaves the harder things to version control.”
He notes that change detection is a useful functionality that version control has. This attribute allows end users to look at two files and helps them understand what happened in the change, Jenkins says. “Change is remembering how these things relate and how the impact may be on the bigger system.”
C. Kenna Amos, [email protected], is an Automation World Contributing Editor.