As strange as it sounds, whenever I hear the word process, I cringe. Not because processes are bad, they are absolutely critical, but because so many teams that I encounter either have no process or too much process. They struggle to find the balance. In this post, I’d like to share five tips I have for maintaining effective design processes.
Image Source: https://goo.gl/images/3yXz3D
Tip #1 – Maintain your discipline
Engineering processes can really help developers create software quickly, efficiently, and with a minimal number of defects. The problem that many developers encounter is the push from management to move faster or change directions on a dime. When this happens developers, who want to please their employer, are more likely to cut corners and lose their discipline in order to make management happy. Of course, this results in a decrease in the discipline to follow processes which then decreases quality, increases defects and causes more problems that then increases costs and delivery times. When the pressure is on or a request is made to change directions, do so in a disciplined manner.
Tip #2 – Make controlled changes and see how it affects the outcome
There is no such thing as a perfect process. Processes should be like living things. That is, they should
- Change their actions based on the circumstances before them
- Adapt to changing environmental conditions
- Increase and decrease in “weight”
Just like with animals, changes should be controlled, and the results measured. If the result is good, continue with the change and maybe make more changes. If the results are not good or are ineffective, roll back and try something else.
Tip #3 – Don’t settle for “this is how we have always done it”
One of my top ten pet peeves is when someone tells me “this is how we have always done it”. Processes are put in place to help us follow best practices and avoid pitfalls. The truth though is that best practices and pitfalls do change with time and the processes need to change too. We should always be questioning whether what we are doing is still the best way to do it and blindly following along. When in doubt, see tip number two.
Tip #4 – Don’t be afraid to simplify
I’ve found that overtime, processes tend to accumulate. They start out simple and then something is added. And then added. And then some more is added. Before you know it, the process is this gigantic monolithic tome that is slowing people down. I have several recommendations for you.
- When processes get big, simplify.
- When processes take a lot of time, simplify.
- When processes feel like they are crushing your soul, simplify.
Do I need to say it? Don’t be afraid to simplify!
Tip #5 – Review processes annually
When I was in graduate school, I worked for the university developing flight software for small satellites. I was working on a team with more than 20 engineers and students. One day, the lab was more quiet than usual. I gave no notice. The next day, the silence ensued, and I began to wonder what was going on. I found that a dozen engineers had been toiling away preparing their PCB’s in a panel for manufacturing. Each engineer had been working away on their panel for around twenty hours and were about three-quarters of the way through this massive process for preparing boards.
I asked one of my colleagues for their PCB files and about ten minutes later gave him a fully panelized layout with gerber files. A process that was typically taking each engineer 20 hours. With a shocked look on his face, he asked “how did you do that?”! The team had been using a process that had been put in place years before and never stopped to review the process and determine if there was a better way. It turned out, the software now had a panelization but that could be pressed that let a designer drop their board onto the panel and the software did all the work for them. Review your processes annually! My simple change saved them 20 hours per designer per board layout.
If you can maintain your discipline and continually question “why you are doing it this way” and “is there a better way”, along with following the tips in today’s post, you’ll find that you will be able to control your design processes and keep them from controlling you.
As grandmaster Garry Kasparov put it, “A weak human player plus a machine plus a better process is superior to a very powerful machine alone, but more remarkably, is superior to a strong human player plus machine and an inferior process”.