Two principles stand out when understanding LabWare's philosophy for developing their Laboratory Information Management System (LIMS) product. The first and overriding principle is that, whatever needs to be achieved, it must be configurable rather than customized by whoever needs to implement it. Let us take a moment to understand what this means:
Configuration implies the use of standard tools and mechanisms within the product to accomplish a desired effect. This will involve the use of templates and may indeed require that a scripting language be invoked (in LabWare LIMS this language is called LIMS Basic). This scripting language generally allows the user to call standard functions within the application, and these functions will necessarily behave in a predictable and correct manner. For example, logging a sample into LabWare LIMS using a LIMS Basic function will have exactly the same effect as logging the sample via one of the login screens. The audit trail will be produced, any configured triggers and rules will take place and all security features configured will be used.
The alternative to configuration is customization. Typically this involves using software tools, often the ones used to develop the core product in the first place, to alter the application to suit the situation at each site. This approach has several potential dangers. The behavior of the customized code may not be the same as that of the original code and, especially if the person performing the customization does not completely understand the inner workings of the product, it probably will not be. With customization it is easy to bypass certain security that should be adhered to (this is particularly serious for regulated or accredited labs). Using customized code also runs the risk of preventing or at least complicating future upgrades.
The other principle that is religiously followed by LabWare is that all enhancements are ultimately driven by the needs of the customers either articulated directly, or indirectly via the consultants working with the customers. So LabWare is continuously developing the tools and modules to satisfy the ongoing needs of the customers, but doing it in a way that adheres to the first principle, i.e., everything is built to be configurable and to be generic, so that all the customers can benefit from improvements and advancements asked for by specific customers.