One of the most difficult engineering processes to nail down is a complex design handoff from one team to another. Awhile back, I discussed this briefly using a football analogy. I want to expand on that a little today:
- What makes a handoff so difficult?
- Why does so much information get lost?
- Why do teams inherently place blame on each other when it goes poorly?
I think the biggest reason, and one I can certainly discuss in a separate blog entry, is the engineer’s extreme aversion to documentation. Detailing the minutiae of an engineering process ALWAYS feels like overhead, not real work (even though we know how important it is).
Another reason for handoff difficulty is more bureaucratic: Decisions on the details of the handoff have to occur across two teams. You can’t have the deliverer and the deliveree disagree on what is coming and at what time. It needs to be agreed upon, documented, and practiced.
So what can be done to ease the handoff procedure? I have a few suggestions:
1) Document. Document. Document.
At the onset of my professional career, my very first boss told me that the most important, yet most overlooked task that an engineer must tackle is documentation of work. No one ever documents anything. When it comes to handing off a design from one group to the next, documenting exactly what is required of that design to move on to the next group is incredibly important.
What is required for the next group to begin their work seamlessly without delay? The document should spell out any and all specifications in addition to the proposed schedule. Many times “rolling” or phased handoffs are required for complex work. In this case, what is required at each phase needs to be clearly laid out in the documenation. I’m not talking about sending an email out either. Emails get buried. There should be a version-controlled repository for all procedural documentation.
2) Error checking
Before the handoff, the validity and completeness of said handoff should have some kind of checking procedure. This can mean anything from measurements and calculations to custom scripts and software to check that required specs have been satisfied (by “required”, I mean “documented”).
In my experience, the best team to do the checking is the one handing off the design. Aside from being the most familiar with the state of the design to that point, this team also is in a position to fix/enhance before wasting the time of another team. It is maddeningly frustrating when a team relies on the future work of successive teams (down the design pipeline) to find problems. It’s a waste of everyone’s time and defeats the whole purpose of having the handoff in the first place. Check your work!
3) No more communication should be necessary between the teams
Obviously, this is unrealistic. I would never suggest that teams shouldn’t talk to each other if issues arise. But, this should be the goal of writing a handoff procedure. If all specifications are met, and the handoff documentation is sufficient, the team taking over the design should be able to work without hindrance and without the need to loop back and communicate with the preceding team. Or, realistically, the loop-back communication should be minimal. If you find yourself writing a handoff procedure that looks like this:
- Team A releases design to Team B
- Team B runs engineering process X, reports results to Team A
- Team A fixes, then re-releases design to Team B
Well, there is clearly a huge problem here. This is a horribly inefficient way for engineers to work together. Perhaps a different handoff point should be established. Perhaps Team A should just run engineering process X itself. In any case, procedures like this one are common, but quite often avoidable.
4) Careful with automation
For a lot of applications and designs, there are opportunities to automate sections of the procedure. I tend to lean towards automating everything. But, in the context of a handoff procedure, I like to be a little more careful. Automation is good, so long as details aren’t lost in the shuffle.
One issue I’ve seen is when there are lost design details or data points because the team handing off has automated a large portion of their work (and vice versa when loop-back data is unfortunately necessary). It’s important that key aspects of the flow are not buried in automated procedure. Or, at least make your code smart enough to dump out everything (and more) that might be useful to either engineering team.
5) Establish handoff “experts” on each team
If management doesn’t have the time to establish a handoff procedure, they should anoint handoff experts on each team to dig into the details. These experts would theoretically be responsible for everything I’ve discussed thus far: documenting specs/schedule of the handoff, developing error checking systems to assure completeness/validity, establishing a robust-enough procedure so wasted communication is minimized, and ensuring key data points and information are not lost in the automation. This way, you don’t have entire teams fighting over what needs to be done. Just a few people should be responsible for detailing and maintaining the procedure.
Find Business Development Consultants on Industrial Interface to help with challenges like those discussed in this post.
This was probably an especially boring post for those of you not obsessed with day-to-day procedural BS, but I’d still love to hear your thoughts. Post a comment if you agree/disagree or have come across any creative handoff techniques.