According to the Merriam-Webster dictionary, a "best practice" is "a procedure that has been shown by research and experience to produce optimal results and that is established or proposed as a standard suitable for widespread adoption."
The important words in this definition are "experience" and "optimal results." When developers build solutions following corporate best practices, they'll follow proven designs established through experience for general program structure, user interface, and operation. If their organization's standard best practices are already good, then following them will help the developers deliver the quality results their organizations demand.
But what about this thing called "optimal results?" How do standardized best practices provide them? The real answer lies in how they are implemented.
Implementing standardized best practices
Many developers come to their jobs without exposure to standardized programming practices. When they start, they may feel they're not being trusted, that being required to follow best practices is something of a slap in the face. But most organizations with a commitment to excellence do indeed establish standard ways of doing things, as do their customers. A new developer is likely to encounter device-based best practices, equipment-based best practices, and procedural best practices. They may find themselves wondering what kind of over-regulated environment they've fallen into. It may all feel a little overwhelming and more than a little bit constraining.
What new programmers are likely to find after a few years on the job is that these standard practices deliver tangible results. As they adhere to the best practices that both their own organization and their customers' companies require, they'll begin to discover why standardized ways of doing things have value. Best practice programming approaches help save time developing and implementing new software. They also make code reuse easier. If developers can recycle existing code for a new project, they can save considerable engineering time. And time, as we all know, equals money.
Reaping benefits of programming best practices
Many integrators will find that the real value of programming best practices is that they help build the confidence to go to different plants for the same customer and dive right in to fix or change things. If the programming best practices have been followed and routines have been designed according to the proper guidelines, they will know how the code is organized and how the results should act and look, even if they were not the original coders. Standardized practices make integrating new functionality easier and troubleshooting issues far less troublesome because they provide integrators guideposts for finding what they're seeking in the code—especially when standardized, reliable documentation is one of the best practices being followed. The value for in-plant engineers is even greater: each time they return to their code, they'll have the security of knowing exactly how things are being done, no matter which system they're examining.
So here is the message to give new programmers: Best practices aren't constraining, they're liberating. They allow developers working with existing systems to concentrate on achieving desired results rather than figuring out how the current system is implemented. They make new projects more likely to be able to reuse existing code. They provide a structure and process flow that makes program maintenance easier. They're called "best practices" for a good reason.
It sounds a bit like a contradiction, but the constraints of best practices can actually set you free.
Bryan Little is a principal engineer and food leader specialist at Avanceon, providing support for food & beverage customers. He has been working in the world of integration for more than 20 years.
This article appears in the Applied Automation supplement for Control Engineering and Plant Engineering.