What Are the Methodologies You Use to Manage Complexity?
One of the most powerful methodologies I use is the Unified Modeling Language (UML). Though its
focus is object oriented software development, my teams and I have found it useful in modeling
systems of all kinds -- even mechatronic systems. In fact, I've found mechanical engineers to be
some of the most enthusiastic adopters, since UML provides a format for describing objects, their
properties, and interactions -- and those objects can be physical as well as virtual. Using tools
such as Rational Software Architect to support the use of UML provides evolving models for testing
assumptions, continually updates documentation, and a high degree of automated code generation.
LEAN is another major influence on my approach to product development in general and specifically to
managing design complexity. The concepts and practices of LEAN engineering drive out waste. Given that
designs tend to be over-engineered in their early phases, driving out waste also drives out a great deal
Along the same lines, Failure Modes and Effects Analysis (FMEA) exercises are a powerful tool. I lead
them early and often throughout the design process. Although their main purpose is to analyze potential
failure modes within a system, they force a reexamination of the current design iteration (with the help
of disinterested participants), streamlining the design while eliminating potential failure modes. And, of
course, it results in a more reliable product.