Last week I met someone who is a “metal detectorist.” In other words, for fun, he goes trolling around the countryside (usually plowed fields) with his metal detector, looking for interesting finds.
He showed me some of the items he’d picked up, the most impressive of which was a gold stater - a shiny gold coin that dates back to the first century BC. I was struck by the unusual design which, he told me, was based on a disjointed horse. I learned that the fundamental process of minting the coins hasn’t changed significantly in more than 2,000 years - back then the die with the reverse design on it was probably struck with a hammer, now the coin blank is minted in an automated press. The basic process is the same, but of course the consistency and quality of the finished item has improved significantly.
That experience got me to thinking about how automation and tools are used across a variety of different industries to improve quality and consistency. Cars were individually hand-built until Henry Ford automated his production line in 1913. Surgeons and airline pilots use a simple but effective tool - a checklist - to ensure that complex repetitive tasks are always performed in a uniform way. Why are the same principles seldom applied in the world of software development, especially when building Notes and Domino apps?
In the Lotus Notes application environment, it’s not uncommon to find a series of routine manual processes that are well known to a particular individual developer or administrator, but that knowledge is seldom transferred to another person. In many cases those tasks may not even be written down. These undocumented manual processes can lead to bugs and possible build errors. Simple, repetitive tasks, are particularly vulnerable to errors. Consider the case where a server name changes and that name has been hard-coded into one or more applications. Somehow you have to find all occurrences of that name in all applications and change them all. Without tooling, it’s highly likely that you will miss one instance of the name, or possibly mis-type the new name.
More complex processes present more of a problem, and a greater risk, which is why aircraft pilots are often seen brandishing clipboards with long checklists attached to them. In the Notes and Domino development world, that translates to what we call the “build process”, the series of steps that are required to assemble the components of a database design into a working application. This could include things such as setting the correct ACLs and database properties, signing the database or design elements with the correct ID, or setting the server that agents are to run on. Often, these items will be held in one person’s head, but it’s vital that they are executed the same way each time you deploy a new version of an application template.
Of course, here at Teamstudio, we offer a number of tools that can help ensure consistency and thereby ensure the quality of the applications that you are building or maintaining. Need to automatically search for and replace those hard coded server names? Look to Teamstudio Configurator. If you want to define and automate the steps needed to consistently deploy new versions of a database template, then Build Manager is the tool for you.
If any of this rings any bells for you, or you just want to chat about any aspect of your Lotus Notes/Domino application environment, click below. We’re always happy to chat!
Footnote: That’s not a photo of the actual coin the detectorist showed me. I forgot to snap a photo of it and that’s the closest approximation I could find. It looked pretty much identical though!