When I was a child, I loved to buy model car kits and put them together. Perhaps this hobby helped prepare me for a career in systems engineering!
Putting together model cars: A thought experiment
Imagine that your manager gives you two identical model car kits of a 1964 1/2 Mustang Convertible (pictured below) and asks you to assemble them. You have lots of experience putting together model cars from kits, so estimating how long it will take is easy.
Putting together the first model car
You open up the first box and find parts organized into subsystems and a sheet of assembly instructions – just like other model car kits you have put together. It takes about 2 hours to put together, just like you estimated. It looks great when you are done. You feel happy with your work.
Putting together the second model car
Now you open up the second box. The parts are not organized into subsystems. They are all jumbled together in no particular order. And there are no assembly instructions! You spend a lot of extra time figuring out how to put it together and doing rework when you get it wrong. When you are done, there are a couple of parts left over because you couldn’t figure out where to put them. The model doesn’t look quite right. You feel frustrated that it didn’t turn out as well as you hoped.
The results
Conclusions:
Developing a product with poorly defined subsystems is like building a model car from a kit containing an unorganized collection of parts.
Developing a product without a carefully thought-out integration plan is like building a model car from a kit that doesn’t have any instructions.
If you don’t put the effort into subsystem design and integration planning, don’t be surprised when your development project takes much longer than estimated and the quality of your product isn’t as good as it should be.