How software engineering teams can learn from semiconductor manufacturing
You can draw a lot of metaphors between writing software and the delicate combination of physical and digital realms which produces semiconductors.
I am a complete outsider to the world of semiconductor manufacturing. I am, by all means, an amateur; my favorite book about integrated circuits is effectively a picture book. (It's a really good picture book!)
This weekend, I found myself reading through a textbook on semiconductor manufacturing and process control. It was a pretty good book — though, to be fair, I skimmed most of the chemistry and statistics. I found myself drawing a lot of parallels between software engineering and the production of ICs. They're obviously not directly related, but you can draw a lot of metaphors between writing software and the delicate combination of physical and digital realms which produces semiconductors.
Here's a collection of some of those metaphors.
Building the factory is the most expensive step.
70% of the indirect cost of semiconductor fabrication is equipment costs. More than two thirds of the cost of an IC is building the factory. Building a high-volume manufacturing facility costs several billion dollars.
Even if, like me, you work in the realm of the digital, with intangible products which live in our devices, you ignore the up-front costs at your own peril! This is one of the core principles of Shape Up — find all the time-bombs before you get started so that you don't end up spending time on them further down the line.
Don't discount the labor involved in getting everyone on the same page, managing your stakeholders and making sure everyone involved in your project, from the people writing the code to the people that will be selling it. If you have everyone bought in up front, you can make sure your production line can succeed with minimal hiccups.
Adapt as you go.
For each IC "run," an immense amount of data is collected, which is then correlated to the successful yield for the run. Over the course of a run, tweaks are made to accommodate for natural variance, and then after that run, changes will be made to the input parameters to make the next one even more successful.
This is a constant, evolutionary process; though each step in each machine will have a complete maximum and minimum, the IC manufacturing process is constantly making tweaks within those parameters — and raising an alarm if that range is ever exceeded.
For your processes, you should always be evaluating what's actually happening. What's helping your team, and what's holding your team back? Make game time adjustments, and make sure your team is constantly reflecting on its progress. Retrospectives are a mission-critical way to make sure folks are comfortable asking questions and having the agency to improve things for the better.
Do not strictly follow the book by the book! Each team is going to have different needs and come with a different set of norms which make up its culture — let the team evolve over time to build positivity and momentum.
Measure everything, but incorporate the qualitative information, too.
You should be measuring as much as possible in order to see how effective your changes are. But those measurements can't live in a vacuum: your quantitative information needs qualitative hierarchies. Build expert systems which incorporate your data and your process expertise; codify that knowledge into a system of expert rules.
This means you need to have a repository for your observations, and a way to build those observations into the way you visualize and evaluate your metrics.
Don't be afraid of big changes to the process.
One of the big revelations that led to small, efficient packages for integrated circuits was to take the chip and mount it "upside down" from the conventional orientation inside its housing. We now know this as "flip chip" mounting.
Research into semiconductor manufacturing breakthroughs aims, in my view, to optimize a specific part of the process. What big changes can we make to each stage of the process to increase our happiness and effectiveness? Don't be afraid to talk about really big shifts; instill a spirit of experimentation in your teams which allows for flexibility.
It's the knowledge that you generate from your experiments that turn into your competitive advantage, so make sure you have the time and space for trying new, exciting things!
—
(All statistics from Fundamentals of Semiconductor Manufacturing and Process Control, unless otherwise noted.)