Managing Change on the Web
By Ray Valdés
In last month's discussion of templates, I touched upon the need to keep different members of a Web development team from "stepping on each other's toes." This is especially important when there are frequent updates to shared resources, like source code, HTML documents, and template files. We discussed various template alternativessuch as JSP, ASP, Jamal, and WebMacrowith respect to how easy it is for different members of the team to work on the same file in an error-free fashion.
Template engines such as WebMacro and Freemarker do keep people from overwriting each other's work, but only by facilitating the separation of code from content and presentation. This is an "implicit" mechanism for asset control, in that no one is explicitly restricted from editing one part of a source file versus another. This method places a lot of trust in the idea that a content developer won't be working on the same file as, say, a JavaScript coder. For medium and large Web sites though, especially those with many people involved, implicit asset control is not enough and can quickly lead to revision errors.
Fortunately, there are various software packages currently available that allow for explicit versioning of content and components. Compared with template engines, where there are many Open Source and otherwise freely available packages, the asset management arena is dominated by commercial solutions. A reason for this might be that creating an elegant template mechanism that lets a Web developer specify dynamic behavior and presentation in a concise but powerful way provides a compelling challenge to many programmers.