Keep Track of Design Changes in HCL Domino Applications

By Nigel Cheshire

As the father of four daughters, I’ve seen my fair share of Disney animated movies. Many of those stories are based on traditional fairy tales, and many of those were written or transcribed from earlier stories by the Grimm brothers way back in the early 19th century.

It’s pretty well known that many of the stories that the Disney kids’ movies are based on have been changed quite a bit in comparison to their original versions. Jacob & Wilhelm Grimm first published their book of fairy tales in 1812, and some of the details in those stories are pretty, err, grim compared to their Disney equivalents.

In the Grimm brothers’ version of Cinderella, for example, the stepsisters go so far as to cut off their toes and heels to get the glass slipper to fit. Not quite sure how the prince didn’t notice as they were trying it on, but apparently it was down to some doves to tell him how the sisters cheated. The doves later come back (during Cinderella’s wedding, no less) to peck out the eyes of the stepsisters. I don’t remember any of that happening in the Disney version.

The point is, that the story of Cinderella, along with many other of those old tales, has changed over time. Even the Grimm brothers changed the stories in a relatively short period of time, making the book of “Children’s and Household Tales” more child-friendly over time.

These days, fictional books don’t usually change once they’re published. Once you’ve read a Harry Potter book, you are not anxiously waiting for version 2.0 of the same story to come out.

Software, of course, is different. Like works of fiction, software is based on written text, but by its very nature it will change over time. In fact, that’s a huge and necessary part of software development - the ability to manage changes to what the original author(s) wrote.

That’s why the tools you need to create and manage software need to be a bit different to the tools that writers use. Managing versions, in particular, is a challenge for software developers that most fiction writers don’t have to deal with.

Like Hansel and Gretel, it’s a good idea to leave a trail of pebbles (not breadcrumbs, which can be eaten by birds) so that you can backtrack if you need to. And of course Teamstudio CIAO! provides a full blown version control system for HCL Domino developers. You don’t necessarily need to go that far though; if all you need is the trail of pebbles, then Teamstudio Undo provides a way to step back across previous versions of your Domino code.

Whether you already use version control or not, it’s a good idea to have a reliable way of finding out exactly what the differences between two versions of an application are. That’s why we created Teamstudio Delta. Delta shows you all the (significant) differences in the design of two HCL Domino applications. If you’re familiar with other differencing tools, that might not sound like much. But keep in mind that Domino has an unusual, proprietary and pretty impenetrable way of storing the design of a database. So unless you’re exporting the entire design out to DXL and comparing that, it’s not a straight text comparison task. Even if you were to “diff” the DXL representations in text, it’s pretty hard to work out what part of the actual application the DXL that you’re looking at represents.

So when it came to building Delta, we went to great lengths to show the differences in the context of the application itself. And, we also put a lot of effort into working out what differences are meaningful, versus those things which just change every time you open or close a Domino database. (There’s more of those than you might imagine.)

Also, the nature of Domino applications is that many of them are based on the standard templates that ship with the product (mail, discussion, teamroom, etc). So when a new version of Domino is released, it’s a challenge to merge the customized versions of those templates with the changes in the new release, unless you have a surefire way of detecting the differences.

So, if trawling through two different versions of a database design looking for changes from one version to another has you feeling a bit like Cinderella cleaning the ashes out from the stepsisters’ fireplace, maybe you should take a look at Delta.

To learn more about our suite of developer tools for HCL Domino, click below.