Jean identifies a narrow slice of perspectives that disproportionately drive the conversation about what "good software eng" looks like: both the code itself and the work that produces it.

Here's my $0.02, as a S.Eng and an educator, on what this conversation misses.

/1
So first of all: a few tweets downthread, Jean brings up FAANGs. I promise, I'll get to FAANGs. But that's not where this conversation starts.

It starts with the dissonance between what 90+% of devs do and what they THINK they do.

/2
The lion's share of "THE OTHER STUFF," from my perspective, are the parts of engineering that The Conversation about "good software engineering" habitually ignores or under-discusses.

Once again, educator and practitioner here: I think "the parts" are like 80+% of the job.

/3
I've said this before, so this'll be review if you've ever broken bread with me:

MOST dev education, from academia to YouTube tutorials, is "How to build Y from scratch using X."

Meanwhile, most engineering projects look like "add to, fix, or maintain this thing."

/4
And I think if you were to ASK devs what they do, they'd often SAY "I build [thing]." But that's aspirational. They want to be building. They think of themselves as builders.

Enhancements, repairs, and maintenance lack relative desirability, so the convo glosses over them.

/5
What's the impact?

We fail to hone a slate of skills that we then spend 80+% of our time using.

Like debugging skills, or figuring out what the hell this code is meant to do (I call this 'forensic software analysis').

ALL these, in fact:

/6


chelseatroy.com/2021/10/29/a-r…
...and the follow-on impact of THAT is that, because we're bad at these things, we spend more time doing them worse, and in the process make our jobs less fun for ourselves and leave behind code that makes our successors' jobs less fun, too.

/7
For example, let's take just one: debugging.

It doesn't even have to suck.

It CERTAINLY doesn't have to be as stressful as it is when we're all conditioned to treat debugging like standing on tiles barefoot during a game of "the floor is lava"

/8


chelseatroy.com/2019/12/30/pos…
For the record, I know plenty of FAANG devs and ex-FAANG devs. They, too, do loads of debugging. Maintenance. Forensic software analysis.

The "dark matter of software engineering," to me, is less "FAANG vs not FAANG" and more "A dev's plum project vs most of the actual job."

/9
I'm also gonna note, I'm not a willing subscriber to the FAANG-hegemonic view of software eng.

I WILL concede that commonly used open source dependencies, and therefore a disproportionate piece of everyone's code bases, belongs to these companies, so we'll discuss that.

/10
For the uninitiated: FAANG stands for "Meta/Apple/Amazon/Netflix/Google," and it's like the Harvard-Yale-Princeton of tech employment.

/11
So, note that I said the dependencies "belong to" these companies, not "come from these companies. The things we credit FAANGs for, upon close inspection, are themselves often testaments to the fact that quality tools come from everywhere.

For example...

/12
FB did not build React. They acquired it.
Apple did not build the iconic touchscreen. They acquired it.
Google did not build Android. They acquired it.
Netflix did not build Metaflow. They acquired it.

These places don't universally generate 'excellence'. They buy it up.

/13
But, OK, so the QUESTION was "are their practices universal?" and the proposition was that they're NOT, and I agree.

Most folks don't have billions of rows of data. They don't have HUNDREDS of engineers theoretically available like interchangeable parts.

/14
That is a very unique, particular situation, and I'd say it applies to...honestly not even most teams at the FAANGs. Again, that situation is aspirational and therefore overrepresented.

Let's compare it to some of my clients.

/15
My clients are often social-good projects run on grants, donations, and the goodwill of the privileged.

In that world, 'Bus count of 1' is aspirational. It's frequently 'we WISH we had a dedicated person, but for now it's either LaQuan's Friday evenings or nothing.'

/16
In THAT world, you can't count on context handoffs, and your patterns have to withstand it.

It's not "we do this because our engineers suck." It's "we do this to navigate a constraints that no giant OS sponsor deals with to this degree."

/17

Example:
Another example: there are operational & ethical questions associated with the use of small-n data.

"What guardrails do I need to efficaciously and ethically predict off of a training set with confidence intervals THIS big?"

In fact...

/18
Default and commonly-taught practices are INSUFFICIENTLY RIGOROUS or small-n data.

We train people on giant datasets with no ethical concerns like MNIST and Iris, and then ask them to analyze 200 medical records.

Teams need much MORE knowledge to do that correctly.

/19
OK, so in addition to the slew of skills we use all the time as engineers that we mostly don't discuss in tech education,

there's also a slew of constraints and circumstances we face all the time as engineers that we mostly don't discuss in tech education.

What do?

/20
"Fix all of tech" look brah I'm TRYING, but it's taking a second. Patience plz.

In the meantime, on the backend, we can get more nuanced about how we evaluate practices, skills, and solutions.

Starting with, ditch "best practice." That's fake. That's not a real thing.

/21
There's no universal best practice because there's no universal. If we're acting like it's universal, there's some specific context that we don't realize we're treating as the default.

Watch me drink wine and yak about this in my Oscar the Grouch PJs

/22

chelseatroy.com/2021/10/04/yow…
INSTEAD of evaluating a skill, practice, or solution on whether we "like" it or whether it's called "best", we can EXPLICITLY consider who it's for, how they use it, and whether their context transfers to us.

The questions I ask in tool evaluation:

/23


chelseatroy.com/2021/09/22/cri…
OK I think that's plenty for one thread. Calling it here.

24/24

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Chelsea Troy 🏳️‍🌈

Chelsea Troy 🏳️‍🌈 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @HeyChelseaTroy

27 Oct
Fun fact: before I went full codeslinger, I was training to work for The Government, specifically govt-orchestrated disaster preparedness.

Part of the training, as you can imagine, was epidemic preparedness. For example, we ran a response simulation for an outbreak in NYC.

/1
This was in 2011.

So, organizers try to include all the realistic contingencies in these simulations. Otherwise the simulation is useless for preparing people to act under pressure.

As of 2021, all the simulations I participated in while studying have been shelved.

Why?

/2
Because all of those simulations fail to account for an organized effort from a reasonably large, highly connected portion of the population to resist epidemic response measures.

/3
Read 7 tweets
22 Oct
I have, four times now, witnessed a group of software and machine learning whizzes gather in a room (or Zoom) to brainstorm the reinvention of transport for eco-friendliness and human convenience.

All four times, the brainstorm "invented" buses. To the letter. All four times.
This is why, when people ask "can AI save XYZ," I usually think to myself "If AI can save XYZ, listening to folks who didn't grow up rich can save XYZ for like a millionth of the cost of AI trying to save it"
By the way, all four times were personal experiences.

I'm not counting the time when E**n M**k tried to reinvent transportation and invented the bus, or when Via tried to reinvent transportation and invented the bus, or when Uber tried to reinvent transportation and invented th
Read 6 tweets
21 Oct
I want to share an observation that might prompt some thought.

Anytime a colleague who has been at a company <6 months has tried to get me to apply to their team, they either didn't stay for 6 months or they wanted out by 6 months.

This impacts how I respond to that request.
/1
I don't blame my colleagues for this.

I think tech companies (maybe all companies but I'll stick to what I know) tend to try hardest at the recruitment step and a lot less hard at the retention step.

And sometimes they effectively sell a fantasy to hire.

/2
Look.

Working for someone is a big bet.

Selling my friends on working somewhere is a BIGGER bet, by an order of magnitude.

More on that specific topic in the post below.

To me, the corollary to that is...

/3

chelseatroy.com/2020/08/24/tec…
Read 5 tweets
15 Jul
@venikunche This is a tricky question. Here's why:

I think what you're asking is "at what age did you experience your age used against you personally."

But ageism has affected my career in tech separately from my personal age. It does this by shaping the ecosystem itself. Examples:

1/
@venikunche 1. I have never, at a tech company, had a manager over the age of 29, with one exception, who was 32.

It has therefore been impossible for any of them to possess significant management experience. This has affected my experience of, and expectations for, being managed.

2/
@venikunche 2. I have never had a mentor within my same employer with more than ten years' field experience.

To get these, I have had to specifically go find people outside my employer. Most of them have their own businesses because employers fail to recognize their value as FTEs.

3/
Read 8 tweets
13 Jul
You know what, yeah, lemme opine on recorded meetings for a second.

It has three parts. I'll attempt to present them in an organized fashion.

A thread.

1/
1. Most meetings already suck. They don't get better because the folks planning the meetings disproportionately hate meetings less due to they have what we call a high Caucus Score.

Now that I've dropped spoilers on this post, here's the details:

/2

chelseatroy.com/2018/03/29/why…
2. Remoteness EXACERBATES the way business as usual discounts the needs & contributions of low Caucus Score, remote, or asynchronous teammates. If a meeting is recorded, it's also, consequently, remote.

More on the consequences of colocation culture:

/3

chelseatroy.com/2018/04/17/but…
Read 5 tweets
5 Jul
Oh, I LOVE this question.

Let's talk about contract work versus permanent roles, specifically as an engineer (maybe it applies outside engineering, but I'll stick to what I know).

I have done, and still do, both of these, and I'd love to bust some myths about them.

Thread. 1/
MYTH 1: You have to choose one or the other at a given point in time.

I realize that, for plenty of folks with children and other obligations, having anything in addition to a full time job is not tenable, and I acknowledge that.

That does not mean it's always impossible...

/2
...to try a contract role while in a full time role, if they are curious about it.

Before I started my consultancy, I picked up teaching on the side of my day job. Once I started feeling more fulfilled in teaching than at work, I got A LOT more curious about contract roles.

/3
Read 26 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(