My Favourite Part of Toronto is the Subway

As the grey train dashes into Royal York, the TTC man waves. I step over the yellow lego platform edge as the tinted windows clasp together. The missed-the-train man waves. I slump on my red velvet…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Why Engineers Fail When Building New Things

Think of engineering like a control system.

Everyone makes preventable mistakes. But when engineers make mistakes, lives can be at stake.

When building new things, finding and reducing design flaws isn’t always straightforward.

Some projects are close enough to previous experience that lessons are applied directly. In these projects, rules of thumb can guide decisions even when there is uncertainty.

But increasingly, engineering projects use brand new technologies in complex environments. Here there are fewer applicable lessons — learned or data to anchor our understanding.

In complex projects we need tools to find “unknown unknowns” — the things which we’re unaware of— as quickly as we can.

To prevent mistakes, we need an idea of how they are made.

This view can be directly applied to understand errors in engineering.

Let’s imagine engineering as a control system with a designer, the design itself, and some test to check that the design matches the intent:

In this model the designer is the controller. Her job is to create a design consistent with the requirements and constraints. The designer evaluates inputs and compares them with the feedback she receives from design and test. She then uses judgment to make changes until requirements and constraints are met.

Design errors emerge from flaws in this engineering control system.

Now that we have a model of the engineering process, we can look at each piece to see how things could go wrong:

This figure has a lot going on, but there are really only a handful of themes. There are five basic ways errors can grow.

Many mistakes relate to asynchronous evolution. This is when one part of a design changes without necessary changes in the other parts.

Author’s original illustration.

In fast-moving projects requirements and constraints are often ill-defined when design begins. Conflict between designs is common because requirements depend on the design itself.

This conflict is necessary, but unresolved differences can create big problems down the road.

Even when changes within a design are carefully made, the effects can be neglected or misunderstood. One part of a properly designed system can change behavior without being noticed.

Errors are often attributed simply to lack of knowledge. But when building new things, there are always things we don’t know!

It’s how we build knowledge that matters.

Author’s original illustration.

Errors propagate when mental models diverge from reality. This delays discovery until reality catches up, often in a big and painful way.

The Tacoma Narrows Bridge is a great example. The problem wasn’t found until construction began. A costly fix was found, but only days before it collapsed.

Even before work starts, requirements and constraints inherently assume how a design operates. Differences between those who set requirements and the designers using them can cause design flaws.

There are always differences between a test and the operation of the design itself.

Author’s original illustration.

A test article may be a few revisions behind. Test conditions rarely match conditions in operation exactly. Software is often so complex every edge case can’t be tested before release. Analysis always makes simplifying assumptions.

If these differences are not accounted for, engineers can make erroneous decisions.

When there are many people working on a single project, design changes can conflict.

This is especially true in complex designs and organizations. Without enough coordination there can be confusion over who is actually responsible. Changes may be missing (“I thought you were gonna to do that!”), responsibility can be diluted, and conflicting direction given.

No control system — engineered or human — can perform better than its feedback.

Author’s original illustration.

Engineers can’t make good design decisions without good information. Sometimes the organization and its processes don’t reinforce feedback enough. Human factors like conflicting communication styles and defensiveness can also impede feedback.

Delayed feedback exacerbates the problems of the other themes.

Delays cause asynchronous evolution, hurt coordination, and widen the gap between mental models and tests.

There are many ways to test designs beyond big prototypes and gate reviews.

Don’t skimp on cheap preventative maintenance!

When rework is found, it is common to increase schedule pressure and put these tasks to the side. But project dynamics suggest it’s a better strategy to increase effort on rework discovery.

Get feedback earlier and faster by asking peers to review work. Learn how adjacent systems work beyond what is immediately relevant. Create quick tools to double-check you’re on the right path.

In aerospace we often say “test like you fly” and “test early and often.”

Their role is clear when considering the engineering process as a control system. The closer a test represents requirements and constraints, the better changes will be. The earlier testing occurs, the fewer errors propagate to other designs.

The further a project deviates from prior experience, the earlier you should test.

Even though adding tests can look like a longer path on paper, it is often shorter. The schedule impact of errors is often underestimated because rework creates more rework.

Good engineering can’t happen without good feedback. People tend to get comfortable with a certain way of working and don’t realize their engineering “control loop” needs to adapt. Ask yourself:

It is common to think of development projects as linear, but there is a lot of messy iteration. Designs start with incomplete or missing information. Tests don’t always represent reality. Changes to other work can invalidate important design inputs.

The more you align your work with the real nature of engineering, the better off you’ll be.

Add a comment

Related posts:

A Substitute for Fibonacci in Trading. Thinking Outside the Box.

The most famous sequence in Mathematics is without a doubt the Fibonacci sequence. It is used in Technical Analysis as a way to find support and resistance levels. It can have other uses as well such…

Not enough Content

As I sit here and write out this piece while listen to Gary Vaynerchuk audio book “Crushin It”, I had to pause it. He said something that made me realize, it doesnt matter how well written something…

Stop Focusing On Doing And Start Being A Leader!

Being a leader is about more than simply ‘doing’. Be clear about your values and beliefs to be the leader you want to be. I wrote an article a few years ago, for a great site called atd that offers a…