Lately, I’ve been blogging about proper system administration and maintenance. Today, I want to talk about the LabWare LIMS / ELN and the use of its Wait() command, which has basically become the felon of the programming world.
Stop using this command. I mean it! Seriously!!
We hear about bad programming techniques and LabWare systems that failed based on the use of the Wait() command. I will suggest that you forget you ever heard of this command and that you ignore it from now on. In twenty years of working with the LabWare system, I have probably only found a true use for it once or twice, ever, and as an actual timer to remind a user of something, not as a way to wait out the other processes.
The problem with this command is that people who are new to using the system get frustrated that their subroutines aren’t running in the order expected. They then run across the Wait() command and get the bright idea that they can use this in their programming to make one part of the code wait for another part of the code, thus forcing all their code to run in the order they need it to.
Here’s why this doesn’t work: first of all, this isn’t how the system works – if things are running out-of-sync, you probably have them in the wrong order; secondly, that few seconds of waiting that now causes your programs to work the way you want them to will eventually stop working as the system gets bigger (i.e., when it goes into your Production system). So, the Wait() command isn’t really a fix, at all, and the entire house of cards will eventually come tumbling down.
For those who might think that, as long as it’s working, what’s the harm, I say this – if the way the system was forced into working was by throwing in these commands then, when it stops working, a lot of this code will have to be rewritten. Here is a link to read more about the LabWare LIMS and some of its issues.
The bottom line is this: some people are fine knowing they’ll eventually have to rewrite all that code. It’s job security. I understand that not everyone works toward putting the best system in but more toward thinking about how they can keep getting services from the customer and charging the most. For everyone else, for anyone that is trying to put in a maintainable system that will work for the long-term, pretend you never heard of the Wait() command and move along.