2001, August: Upsides & Downsides in Houston

--

This is the 7th in a short series of articles around my 4-decade+ career in software development — for your amusement, edification, and to capture a bit of computing history. They also bring back some memories for me, fond and otherwise.

A code of ethics manual for the defunct corporation Enron.
Code of Ethics Manual, courtesy Jim Evans. License: https://creativecommons.org/licenses/by-sa/4.0/deed.en

As we embark on our career paths, almost no one ever looks down the road ahead and thinks, “If I ever start struggling, I’ll just resort to doing something unethical or illegal to get out of trouble.” Most of us actually do face tough choices, however, and many of us do choose the unethical path, even if we’ve found a way to pretend we didn’t.

Our mindset about any single unethical choice we’ve made is generally going to be one of the following:

a-for-autocratic. “It’s us or them, and I don’t feel guilty about doing what it takes to survive.”
b-for-blind. “This isn’t really a problem.”
c-for-conscientious. “I don’t have a choice, but I’m sure going to feel guilty about this.”
p-for-penitent. “I’m going to fess up to being guilty of this unethical choice.”

I’m optimistic about humans; I think most of us rarely end up with an autocratic mindset (a). I do suspect many of us end up in the conscientious mindset (c) and don’t speak up, or put on blinders (b), because we’ve found a way to justify our actions (some folks might say, “the end justifies the means”). I’m also realistic: I don’t think most folks publicly confess their ethical lapses.

In 2001, Object Mentor (OM) finally sold another “Advanced Object Oriented Design” class to an unsuspecting customer. We’d sold plenty of classes on plain ol’ object-oriented design, but no one had bought the advanced version of the class in a while.

Bob Koss told me there’s no such thing as an advanced class, and he’s probably right. This class smacked of “well, they already know the core of what’s important about OO design; what else can we sell to them?” Further, I was told that the customer was actively seeking out more training, and this is what we had left to offer.

Since I didn’t design or sell the course, I took on a blind ethical mindset at the time. They’re learning stuff, we’re making money, it’s my job to teach the classes I’m told to, what’s the problem?

“It’s basically teaching them a bunch of design patterns,” I was told. Indeed it was: patterns upon patterns upon patterns… repeat for five days. State machines. More sophisticated versions of state machines. The visitor pattern, complex enough on its own, but then… wait… successively more sophisticated versions of the visitor pattern.

The visitor pattern
The visitor design pattern, courtesy Vanderjoe. License: https://creativecommons.org/licenses/by-sa/4.0/

You get the picture. The prospect of slogging through patterns for a week seemed a real downer, and worse, probably not the best use of the customer’s time or money.

Design patterns were still an obsession in 2001. At OM we were starting to push a de-emphasis of their role in software development. But hey, we were also seeing waning demand for the XP Immersion class, so, upside: revenue.

Melting patterns in Houston

On the upside again, I had the rare opportunity to co-teach with Michael Feathers. I think we were co-teaching because neither he nor I had taught the material before.

Back to the downside, the class was in Houston in August. The week of Monday, August 13, 2011, specifically. Ah well, I’d be in an air-conditioned office all week (an upside given the circumstances).

Even more on the downside, the advanced OO class didn’t involve any sort of coding, which made the whole thing dubious at best from my stance. Five days of drawing UML diagrams and talking about patterns seemed dry, forgettable, and unforgivable. But remember — this was a time when there was such a thing as a software designer who didn’t have to get their hands dirty with code.

The tedious nature of the class started to make me feel some of the guilt, pushing me into a conscientious ethical mindset. In an attempt to get rid of my guilt, I ended up writing skeleton code for some of the more interesting patterns so that we could demonstrate how they played out. Never mind that our assumption for the class was that some students wouldn’t be able to read code. So maybe it was just me heading back to the blind ethical mindset — to make it seem like the class wasn’t as bad as it really was.

A major downside

Neither Michael nor I had ever heard of this Houston company before. Monday morning at class start we asked, “What do you do?” The answer sounded something like “we analyze trends in the industry in various markets, such as energy, and then invest in them accordingly.” There were a few other things in the quite interesting mix of what this company was into.

Tuesday morning (August 14¹), we were just getting started when the students seemed to be buzzing with excitement. No, it wasn’t excitement about the slog of patterns being thrown at them one after the other. A few of them were looking intently at their monitors.

“Our CEO just resigned,” said one student. Sounded like a downside.

“That can’t be good,” I quipped to the class.

Apparently the CEO had only been in that position for six months, so the news was quite the surprise. Eventually we got the students to settle down and zone out on patterns for the next few days.

The focus was an upside, because those folks needed to learn whatever they could: The company was Enron, the resigning CEO was Jeffrey Skilling, and we’d had a coincidental brush with one of the biggest corporate scandals in US history. Indeed, it wasn’t good. Major downside.

Jeffrey Skilling mug shot
Jeffrey Skilling mug shot, courtesy United States Marshals Service

Reading some quotes from Skilling would seem to peg him as the sort of person who relishes the autocratic ethical mindset: “… we are a green energy company, but the green stands for money.”

And yet I’m not so sure. It’s easy to demonize people like Skilling, and attribute to them only the worst possible motivations and behaviors. Demonization is great, because it lets you pretend that you are nothing like these people who you believe have always been evil.

Harder to swallow is that they likely started as conscientious people, just like you and me, i.e. they felt guilty about the choices they made. And then moved quickly, and willfully, into the b-for-blind mindset as the number of sketchy ethical situations increased, while their cognitive dissonance about it all continued to spike ever higher. Some of them of course have jumped the shark into the autocratic mindset.

It’s only easy now — many years later — for me to admit that I didn’t speak up when I should’ve. In the heat of potentially getting called out, it was far easier to believe something that made me feel better. While our breaches may be on a much smaller scale, we all share some DNA with Jeffrey Skilling.

--

--

Jeff Langr / Langr Software Solutions
Jeff Langr / Langr Software Solutions

Written by Jeff Langr / Langr Software Solutions

40+ years developing. Wrote Modern C++ Programming w/ TDD; Agile Java; Agile in a Flash; Prag Unit Testing in Java; some of Clean Code.

No responses yet