Friday, October 9, 2015

There is no chain of command in software organizations

The government, at least partly out of genuine curiousity and other good intentions, has decided to get to the bottom of the VW scandal, and so they have called the executives before Congress to explain what went on.

I'm not sure why people outside the software industry find it so appalling that the head doesn't know what the arms and legs are doing.

VW says rogue engineers, not executives, responsible for emissions scandal

Volkswagen's US CEO testified Thursday that the decision to use emissions cheating software was not made at the corporate level. Instead, it was "software engineers who put this in for whatever reason," Michael Horn told a congressional panel that is investigating the scandal.

This is nothing new.

In 35 years in the industry, I've never been in an organization where managers more than 1 or (rarely) 2 levels above the engineers have any idea what the individual contributors are talking about in their meetings and hallway discussions and email threads.

When asked how the cheating software worked, Horn said he didn't know. "Personally, no. I'm not an engineer," he said.

Software engineering is an extraordinarily complex mental activity, requiring you to construct elaborate, extensive abstract models in your mind, and visualize and comprehend how alterations to those models and their algorithms will change the system's behavior, and then to transfer those mental constructs into concrete embodiment as lines of program code that are compiled and executed by actual physical machines.

It's a very specific skill, and although it can be refined and honed over the years, it's not something you can dabble in.

You either do it, or you don't.

If you don't, you say,

"Personally, no. I'm not an engineer."

And then, that's where it ends.

You don't understand what the software is.

You don't understand how it works.

You don't understand where the strong points are, and where the weak points are.

Rarely do you even have any idea which parts of the software are associated with which engineers, and who works on what, and what particular strengths and weaknesses your engineers have, and how that relates to the particular strengths and weaknesses that your software, and hence your products, have.

You just have no clue. For you, it ends at:

"Personally, no. I'm not an engineer."

That's how the software industry works, that's how it has always worked for the 4 decades I've been part of it, and that may be how it will always work.

I'm not sure what this means for the world, but it's a fact.

No comments:

Post a Comment