Photo courtesy Nic Redhead
I’ll be the first one to point out that having a standard doesn’t automatically give you better quality in your products, but standards can multiply your efforts to produce quality products in several ways. Sure, someone can technically follow the standard and create horrible results. Worse, they might wrap use of a standard around unmaintainable code. But if you want better quality, here are four reasons for standards.
Standards provide common language
One of the biggest benefits to a standard is the way it puts everyone involved in the project on the same page. There are common terms, processes, and best practices around that standard everyone can agree to. Sometimes these standards are just the technologies we use to get the job done, but sometimes it is those additional practices that are fundamental to the benefit you receive fom the standard. In all cases, it helps to know that everyone is on the same page when describing an aspect of the product or test environment with a simple and unambiguous term.
Standards establish shared philosophy
I’ll illustrate this by way of an example. In chip verification, Universal Verification Methodology (UVM) is more than a standard for syntax. It’s a philosophy of testing. If fully embraced, not only does the standard provide a way to do your testing, it also provides the methodology and philosophy. When everyone adopts that common philosophy, including management, there is a willingness to make investments into the environment that are required to reduce the net cost and shorten the overall project schedule.
Standards for processes
Not every standard has to be widespread or industry-wide to provide benefit. Often companies have trouble standardizing processes in even the smallest development groups. It is easy to let things happen, especially in the beginning phases when the goal is just to get something out the door. If no one makes a conscious effort to standardize, chaos ensues. For example, the way tests are setup or data collected from those tests should conform to a standard.
Benefits of this approach to processes include:
- New team members: One process to learn means shorter ramp to productivity.
- Maintenance: Updates to the process can be handled easily. The goal should be to enable updates from a central file or configuration. Often, hundreds of files have to be hand edited because every one is unique.
- Data collection: A standard method of collecting data allows for comparisons between data sets and, more importantly, tracking trends over time. Problems can be spotted before they are obvious.
Standards allow use of contingent workforce
Most projects have varying needs throughout their duration. Sometimes those needs are handled by moving staff around from one project to the other, and other times it is by bringing in outside help. Use of standards, especially industry-wide ones, makes it easier to find help when you need it. I have frequently run across the unusual and the bizarre when working with customers. For those like me where learning is a strength, that isn’t an overwhelming setback. Frequently, that leads to your consultants leaving shortly after discovering that they will have to invest heavily in learning an environment they will never use again.
If you put all of these benefits together (the shared terminology of common language, commitment to common philosophy, consistency of process, and staffing flexibility), your quality and productivity will soar.
What have you loved or hated when dealing with standardization in your development environment?
Recent Comments