Brad Appleton | <brad@bradapp.net> | Motorola Network Solutions Group |
Stephen P. Berczuk | <berczuk@acm.org> | NetSuite Development |
Ralph Cabrera | <cabrerar@agcs.com> | AG Communication Systems |
Robert Orenstein | <rlo@perforce.com> | Perforce Software |
Send us your comments! |
One must be extra cautious not fall into the common trap of isolating team members from each other, or from their own efforts upstream. We must encourage frequent, visible communication of changes and status, even while carefully controlling and isolating parallel efforts and change-tasks.
This affects not only communication and productivity, but also the visibility and frequency of new baselines. The fewer times we need to build, and the less that needs to be rebult each time, the more productive we can be, and the more we need to visibly communicate what has changed in the latest stable baseline of the system.
In the extreme case, conflicting changes that affect fundamental portions of a subsystem or module may require the collaboration of many developers (perhaps even one or more managers) to conduct a redesign effort, and (re)build a shared understanding of the subsystem or component. This last scenario is one we desperately want to avoid by effectively managing teamwork and workflow.
1.2.3.4
, where each
subsequent component identifies a branch of its predecessor. Other VC
tools (such as ClearCase [Leblang94],
and Perforce [Seiwald96]) provide
more symbolic hierarchical names, like
/main/rel_1.1/fix_file_menu
,
which more easily lend themselves to comprehension by humans.
CVS (see [CVS]) allows mnemonic "tags"
to be used for branch names, but such branch names are not hierarchically
composed into branch paths.
The better VC tools not only provide GUI merging assistance, they are capable of tracking merge-history information and dependencies, and take advantage of this by making automated merging easier to perform, and more likely to be correct. Most tools, however, seem to provide merge-assistance for text-files only. A select few tools are capable of providing (or being extended to provide) merge assistance for non-text files, such as word-processor documents and spreadsheets. Merging of non-text files can be extremely difficult (and often ill-advised) without such support.