The Eyes Don't Have It - Why You Need Tooling to Find Differences in Code

By Nigel Cheshire

Most of us read thousands of words from a page or screen every day without giving it much thought. Written language - the act of encoding language and recording it in some way that allows a reader to accurately reconstruct it - has been around for thousands of years. In fact, it’s thought that writing may have developed independently in at least four different ancient civilizations, between 3400 and 650 BC. Given that we humans have been reading for at least 2,500 years, it’s not surprising we do it without thinking too much about it.

Personally, I’m a slow reader. I like to think it’s because I’m paying more attention than other people, but actually I think it’s because I never had the patience to learn how to speed read. However fast we are reading though, our eyes are making saccadic movements as they scan the page. In other words, your eyes don’t scan smoothly along a line of text as you are reading, they move rapidly from one point (a “fixation”) to the next.

According to Wikipedia, most readers move their eyes about four times a second, with each fixation lasting about 200ms. The other 50ms is the amount of time it takes to move your eyes, during which no information is acquired. And so this is how we read - linearly (left to right and top to bottom for English), with lots of rapid eye movements, skipping along about 8 characters at a time, snapshotting a group of characters with each fixation.

This saccadic movement of the eyes when reading means that the brain often is called upon to fill in blanks and make sense of pieces of information that might be incomplete. A famous example of this is the phrase “Paris in the the Spring” in which most people, when reading at a normal speed - will miss the extra word “the”. When you think about it, it’s pretty amazing that we humans are able to read and write at all. But it’s an imperfect system; we can read well enough to comprehend, but can’t easily spot mistakes.

Humans are also, in general, not very good at noticing when things change. Probably the most famous example of “change blindness” is the Invisible Gorilla. But if you need convincing of how hard it is for us to spot differences, try out the Smithsonian Magazine’s daily Spot the Difference game. Interestingly, it turns out that one of the things that makes spot the difference so hard for humans, is that changes that occur during saccadic eye movements (such as the movement between two different versions of the same picture) are much harder to detect.

So what does all this mean in the context of software development? Often, we find ourselves needing to find differences between different versions of code - especially when it comes to Domino applications. Because of the nature of Domino’s application design distribution mechanism (replication and replace/refresh design), there are many opportunities for things to go awry and design elements not to get updated correctly. There are also cases where an application design might be updated in production without the main development copy being updated to match (heaven forbid!). Or perhaps standard templates such as mail and discussion have been tweaked with a customization that gets overwritten when a new version of Domino is installed.

In all of these cases, you may find yourself staring at two versions of the “same” piece of code and trying to work out what the differences are. As your eyes flick back and forth between the two versions, perhaps you will spot some differences, but you will probably miss some, too. Clearly, tooling is needed.

For development environments where all the code is represented in text files, this is straightforward; there are many variations on the “diff” theme that will easily allow you to compare two text files. But what about traditional Domino database designs?

That’s why we created Teamstudio Delta. Delta will identify all differences between two different versions of the same design, and lets you drill down to see each difference in context. It simplifies the process of comparing two Domino application designs and, more importantly, ensures that you won’t miss any.

Humans are good at doing many things, and reading, where all we need to do is to understand what was being written, is one of them. But when it comes to comparing two Domino application designs, that’s something that is better left to a software tool.

To learn more about Delta, or to start a conversation about any aspect of Domino application development or management, click below. We love to chat!