What Is Reuse to You?

June 12, 2017
A collection of libraries is a better way to reuse certain aspects rather than just pulling up a previous project to copy code or other elements.

We have heard for years and continue to hear the term “work reuse,” but what exactly does that mean for each of us? I happen to be in the system integration business, so I’ll speak from that perspective, even though I suspect many parallels can be drawn for various businesses. I’m going to talk primarily about code reuse.

There is something that a number of system integrators call “reuse” that is an illusion of reuse. That would be: “Let’s see. What project did I do that looked a lot like this one? Oh yes, I’ll go copy some code out of that one and paste it into this one.” Every project is unique in some way—even the “duplicates,” it seems. When going back to a previous project (and perhaps not even a project that was written by the same person), that copied section of code might very well (and probably does) contain some code that was unique to that project. At a very minimum, the tags might well be called something unique to that project and not compatible to this one. So the programmer copies it over, bugs and all.

I prefer to have a collection of libraries that are managed by what we call a technical oversight committee (TOC). These libraries have been tested and proven and reside in a special location on the company network. They need to be extended and perhaps modified somewhat to meet exact requirements for the project at hand, but the programmer can be assured that the library doesn’t have any buggy code in it and that the tag names follow a consistent, company-wide naming scheme.

The next question could be something like: “How can I incorporate new, innovative ideas into my code?” Another might be: “How do you keep these libraries from becoming stagnant?” Both of these are great questions, and here are the answers. If an employee feels that they have found a better way to solve the problem, they can then submit that idea to the TOC and then the TOC chair will call together the committee and evaluate the new idea through peer review. If they determine that the idea is measurably better and not just different, then the old library will be moved to a “previous” location and replaced with the new one. They might also determine that the submission is different enough and/or specialized enough to be a standalone addition to the current libraries.

There are a number of things that the TOC will take into account, including readability and maintainability. We have a policy here (at least mine) that we don’t want projects to look like a graduate school lab exercise. We want them to be mature, structured, professional, maintainable solutions.

Drawings are another thing that can benefit from the reuse of templates and automation. I consider automation and blocks to be a legitimate form of reuse as well.

Documents such as specification documents can benefit from a template that provides a framework of things to be covered. I prefer a template over simply bringing up some previous document from another project for many of the same reasons that were mentioned concerning programming code. The framework will be more generic and it will be free from specific names. A template will also have consistent styles within it so that formatting will be more consistent and easier to apply. Proposals are another set of documents that benefit from a standardized framework to ensure that the specific proposal has addressed all the subjects that are required to make the offering clear to the customer as well as clearly defining the extent of the offering to help the delivery team avoid scope creep.

The underlying theme to all of this is to have some sort of structure around whatever method you intend to use for work reuse. Don’t allow it to become a collection of methods but rather a defined way that you have chosen to manage it. I tell our guys, “There are a lot of ways to do things. This happens to be the way we do it.”

Ray Bachelor is chairman of the board at Bachelor Controls Inc., a certified member of theControl System Integrators Association (CSIA). For more information about Bachelor Controls, visit its profile on the Industrial Automation Exchange.

Sponsored Recommendations

MSD-SLC16G

CLICK industrial memory card, 16GB microSD. For use with all products with microSD memory card slot.

C0-12DRE-D

CLICK Ethernet Analog PLC, 24 VDC required, Ethernet and serial ports, Discrete Input: 4-point, DC, Analog Input: 2-channel, current/voltage, Discrete Output: 4-point, relay, ...

C2-FILL

CLICK PLUS option slot cover.

USB-CBL-AMICB6

AutomationDirect programming cable, USB A to microB-USB, 6ft cable length. For use with Productivity1000 and Productivity2000 CPUs and most USB devices.