Wednesday, February 7, 2018

Herding Cats; Creativity and Discipline in Engineering Development



I was working on a team designing a large computing system.  It was a long-term project with lots of funding so we had time to explore many ideas.  The group had many academic/professorial type engineers.  There were no urgent deadlines.  After a while, we were working on lots of interesting side projects that had little to do with completing the task.  One engineer was working on chemical surface treatments to reduce PCB surface roughness, rather than designing a board for the project.  It was fun and a good learning experience, but not directly relevant to completing the project.  We needed more focus and discipline to make steady progress.

I've also worked on a team at the other end of the spectrum.  The project was so structured and regimented that we successfully completed a product, on time, that nobody wanted.  The product was dull, expensive and had mediocre performance at best.  The team needed more creativity and experimentation.

Like most things in life, moderation and diversity is best.  The strongest engineering teams include people with a diversity of styles and skills.  The best teams need a combination of order and chaos.  Flexibility, creativity, uncertainty and experiments lead to new ideas and discoveries.  The most effective teams I've been on, have developed spontaneous order.  Everybody has the right motivation and the right mix of skills and leadership that people can see what needs to be done next and just do it.  Everybody does their job and looks for opportunities to make improvements and do something valuable.
On the other hand, some amount discipline and enforcement is needed occasionally to encourage team members to stay focused on the goals of the team.  There are certain times where what's best for the individual is not what's best for the team.  It's good to avoid these situations as much as possible, but they will happen occasionally.  It's in these moments, that a little bit of discipline makes a huge difference.

For instance, a project task may require 1000 measurements.  It's tedious and time-consuming and most engineers do not find it fun.  Also, it's a thankless job, with little reward and low prestige and fame.  An engineer is unlikely to get a raise or promotion for completing repeated measurements.  However, those tedious measurements are critical to build an accurate dataset, in order to make the right decisions for the project.

What's a good way to have structure and focus, while encouraging creativity and experimentation?  What's a good way to give people flexibility and freedom, while staying on schedule and making steady progress?  How do we have good teamwork and encourage people occasionally to make individual sacrifices in order to provide a big benefit to the team?

There are many pieces to building good teamwork.  These include focusing on goals and having a clear vision.  It's also important to address obstacles to teamwork.  One of the biggest obstacles is knowing when to quit.  When an idea doesn't work, it's difficult for people to move on.  We really want our ideas to work!  If there's a huge penalty to telling people that something is not working, then people will cover it up or ask for more time.  Engineers can make it sound like it's almost working, not ask for help.  It's better to get help, try really hard multiple times, then shut it down if it's not working and move on.  Another big obstacle is the credit-grab.  People want to position themselves so that they get the credit if the project is successful, but somebody else gets the blame if it's not.  It works well to give the team credit for success and reward people for finding problems, rather than penalizing people for problems.

I've had the most success in engineering teams that maintained focus with clear goals and vision, lots of flexibility, and a little bit of peer pressure and minor enforcement when things get off track.  Here are the highlights of what has worked:

GOALS, VISION
  > one big idea, measure everything as to how much progress is made toward the vision

Keep focus on Solving the problem statement, delivering a solution for a customer, making a product

Give people 20%
   > 20% of time can be spent on your own ideas, basically whatever you want

Peer pressure and nudges in the right direction
   > regular meetings with status updates, focus on vision
   > give praise for teamwork and results

Share the load
   > the most painful and tedious tasks can be shared and supported by the team
   > have a measurement day, everybody goes into the lab for 3 hours and gets the 1000 measurements done
   > have a documentation day, bring in coffee and donuts in the morning, get into a conference, setup your laptops and work together to get the documentation done

Winning makes everything better
   >  Just like in sports, winning helps smooth over any technical or relational challenges
   >  Focus on wins, success and accomplishments to provide motivation and energy to encourage teammates to work hard and make sacrifices for the team

Encouragement and praise for team results, trying something new and good attitudes
   > In order to counteract the habit of hiding bad results, heavily reward when something is proven not to work.  We have a conclusion and can move on, that's great !
   > Thank people for sharing and helping each other. For instance: "Lin, thank you for helping the analysis team to get the channel results."
   > Call out team results that make progress toward the goal. For instance: "Great job on the analysis results!  That gets us closer to completing a successful design."

Discourage credit-taking and blaming others
   > If somebody says "The mechanical engineer didn't get the drawing done, so the product is late,"  respond with facts and focus on goals and improvement: "Let's not assign blame.  The mechanical drawing was delayed by 3 days, so that delayed the product.  What do we need to do now to move forward with the product?  What can each of us do in the future to speed up the process?"

People can form and disband small teams (3-4 people) whenever they want, in order to accomplish specific tasks

Develop appreciation for each person's skills, say "good job" and mean it and appreciate it.

Put people in roles where their style and personality fits
   > People who are detail-oriented and good at following all the steps in a process can do measurement and methodical analysis
   > People who are creative and thrive on doing new things can do experiments and try creative solutions
   > People who like talking, interacting with people and selling an idea or vision can get drive schedules and gather input from everybody on the team to guide decisions
HAVE FUN !