Many of my friends think that I have a low opinion of most doctors. That’s not quite true. The issue is, as far as the medical profession is concerned, I think that we believe that they understand a lot more than they actually do. Most medical diagnosis, it seems to me, is based on trial and error. Got these symptoms? OK, take this drug and come back in 2 days if you’re not feeling better. Oh, that didn’t work? OK, let’s try this drug and see if that helps. This impression is exacerbated by the fact that many drugs are found to treat certain conditions by accident. Minoxidil, for example, was developed as a drug to treat ulcers, but was found to be more effective for high blood pressure. Then someone noticed that bald men who took it were regrowing their hair, and now it’s the active ingredient in Rogaine. Anyway, enough of my soapbox.
In 2009, surgeon Atul Gawande published The Checklist Manifesto. If you haven’t read it, you should. It’s an easy, yet remarkable read. When browsing through the shelves of Barnes & Noble, most people probably wouldn’t think of picking up a book on checklists. Yet somehow Gawande manages to make the subject not just interesting, but compelling.
In the book, Gawande makes a distinction between medical profession errors that are made because of ignorance (we don’t know enough) versus errors of ineptitude (we don’t properly apply what we know). He illustrates this with some powerful examples.
My own grandfather died of a heart attack back in the 1960s, when he himself was in his mid-60s. Back then, the fact that he was an overweight smoker didn’t factor in to his cause of death. He was just unlucky. I don’t know exactly what happened, but I’m guessing that the doctor or paramedic who attended him just didn’t know how to save him because nobody knew at that time. My point is that, back then, people who died of heart attacks probably died because of ignorance, rather than ineptitude.
Now of course, we know a lot more about how to prevent heart attacks, and how to treat them. But even with today’s knowledge and technology, doctors have to do the right things in the right order to ensure the best possible outcome. Heart attack victims with blocked coronary arteries, Gawande says, should receive surgery within 90 minutes of arrival at hospital. That means that every patient with chest pain needs to be properly diagnosed, prepared for surgery and admitted to the operating theater within that time period. In 2006, he says, that happened less than 50% of the time.
My issue with the medical profession is that we are more ignorant than we like to admit. Dr Gawande’s issue is that we don’t have good enough systems to ensure that we consistently apply the knowledge that we do have.
So, I hear you ask, what does any of that have to do with Lotus Notes and Domino application development? Well, in its defense, the medical profession is dealing with a largely unknown subject. Much of the workings of the human body are still a mystery. Science is gradually increasing their knowledge, but there is still much that is unknown.
Software development, on the other hand, was invented by humans. There is nothing about writing or maintaining code that is unknown to everyone. So we can’t use ignorance as an excuse if things go wrong. I used to tell myself this often while I was trying to track down a particularly elusive bug. There has to be a logical reason why this code is behaving a certain way, I just need to keep going until I find it.
So if we can’t blame ignorance when things go wrong, it has to be ineptitude. Humankind, Gawande argues, has accumulated huge amounts of collective knowledge. To the point where, most of the mistakes we make are not because we don’t know what to do. They happen because we don’t have good enough strategies for applying that knowledge consistently. His answer to this great conundrum of the 21st century? The humble checklist. Properly constructed and maintained checklists, he argues, give us a simple but very effective way to ensure that complex processes performed by highly knowledgeable and skilled professionals are done consistently and with the highest probability of a positive outcome.
And so this is how human error is avoided and surgeons can ensure that everything that needs to be done in a complex surgery is completed, in the correct order, consistently every time. What about us Notes/Domino developers? Do we ever have to perform a complex series of steps, and is it vital that we complete them every time the same way, in the same exact order?
Yes! Think about what happens every time you create a new version of a Notes application. After all the testing is done and the new version of the app is ready to go, there is a number of steps that you have to perform to roll the app out to users. For example, you might need to:
Set the database title
Set the template name if this is a master template or set or clear the “inherited from” template name
Set the template version, name and date
Compile all LotusScript in the database design
Set the name of the server that scheduled agents are to run on
Enable or disable agents based on the server the application is running on
Review and clear “prohibit design refresh” at an individual design element level
Sign the database with a known Notes ID
Some people we know (not you, I’m sure!) don’t even write these things down. They leave it to their memory to hold the list of things that need to be done. And yet it’s really, really important that these things are done consistently, accurately and in the same order every time you roll out a new version of the application template. While it may not be a matter of life and death, it can certainly save you a lot of time and effort in terms of tracking down problems with a new build (not to mention a lot of unhappy users!).
So, when it comes to rolling out new versions of a template, be like a good surgeon, and use a checklist. Define your process and apply it consistently, every time.
And, of course, there is an even better way, which is to automate the process. That’s where Teamstudio Build Manager comes in. If you’d like to talk about how Build Manager can help automate your template deployment process for one-click builds, click below to chat!