This morning I saw @Dixie3Flatline's tweet about how you can dislike a tool without writing a mean blog post.
I remembered a conversation with @KentBeck about critique: art students explicitly learn to critique the work of others. Engineers...don't, and it shows.
What do?
/1
I trained in arts schools for years before becoming an engineer, and it has definitely impacted the way that I handle both giving and receiving critique.
So what constitutes a sophisticated, useful critique?
/2
BEFORE I BEGIN, two things.
1. I'm about to discuss critiquing a PIECE (like code, software, a product, or a book).
This is not about feedback for a PERSON. You can read about that below. Or, if you're light on time, check out the 20 minute talk.
/3
2. I have written about code review specifically. Code review is a specific type of feedback with specific strictures, and so I wrote about that SEPARATELY. Check out that post before applying this thread to your code reviews.
/5
We have a tendency, when we use an app or read a book or otherwise consume an information product, to make a snap judgment about whether we "like" it.
In and of itself, this isn't that bad. But there are a couple things to keep in mind.
/6
FIRST THING TO KEEP IN MIND: Is this piece for me?
The NUMBER ONE cognitive wtf I see from engineers, frankly, is the unquestioned assumption that everything that exists in the world is for them personally.
Friends, it is not.
/7
This is why engineers sometimes provide what they think is a helpful critique and get ignored or rebuffed by creators.
Sometimes it's because "the creator can't take feedback" or whatever. More often, it's because the "feedback" was "this should have been a different thing."
/8
Example: I wrote a piece for tech folk from marginalized groups about how it's not "imposter syndrome" if we're being TOLD we don't know what we're talking about
Some wyt dude showed up to tell me I misunderstood imposter syndrome—accidentally proving the point of the piece.
/9
It can be SUPER illuminating to put some real thought into who an app/book/etc is for.
Is it for working moms who don't have time to use whatever YOUR favorite thing is? Is it for engineering beginners? Experts? Who is the person who would like this thing the MOST?
/10
Whether that person is you or not, thinking about who that person might be can help you make a more useful, grounded, nuanced critique.
Experienced creators do not care what people that their thing ISN'T for have to say about it.
/11
SECOND THING TO KEEP IN MIND: Under what conditions did the creator decide to make this?
This can also be super illuminating. What gap were they trying to fill? What problem were they hoping to solve? What personal experience led them to make this?
/12
That can help you understand their perspective—which you NEED, to make a nuanced critique.
This is why artists present their work for critique with an explanation. (Tangent: remember this next time you moan about chefs putting a story at the beginning of their recipe).
/13
Mechanical engineers get to lean on the natural laws of physics.
Computers are person-made, so in computer science, our "physics" are the perspectives of the creators of the things we consume.
So it is with any person-made thing.
With this info... /14
...you can better understand and talk about whether the creator accomplished their goals, based on their perspective, for their audience.
/15
ALL RIGHT I'M BACK
So far we have covered:
1. Who is the creator's audience? 2. What are the creator's goals?
There are two more critical things to think about.
/16
THIRD AND FOUTH THINGS TO KEEP IN MIND
3. Who is YOUR audience? 4. What are YOUR goals?
i.e., what are YOU trying to accomplish with this critique?
This sounds trivial, but in practice it can be a relatively advanced self-reflection exercise.
Lemme exemplify why.
/17
We tend to think that the audience for a critique is the creator, but that's not always true.
Take books, for example The book is published. Maybe the author is famous. Hell, maybe the author is dead!
So...
/18
...if it's not the author, who is the audience for your book critique?
Maybe it's you. Maybe the goal is to articulate and understand what YOU like and want to read.
Maybe it's other readers. Maybe the goal is to help others decide whether, or how, to read this book.
/19
Maybe the audience for your book critique is others who HAVE read the book. Maybe you notice an important bias or omission in the book and you want to warn others against taking the account at face value.
/20
With a product, or with code, your audience may well be the creator.
Maybe you ARE their intended audience, and you want to express a need that you hope they'll fill.
Or you're genuinely trying to help them improve their thing and accomplish their goals.
/21
It turns out that none of these audiences or goals is well-served by some kind of excoriating screed.
And you know what? I think engineers mostly know that. I think screeds happen for a few reasons.
/22
REASON #1: Someone got themselves into a position where they depended on a product, service, or resource, and it didn't deliver, and now the person is frustrated or upset, and instead of regulating their emotions, they're yelling at someone.
/23
REASON #2: Internet discourse values pithy zingers. Internet humor often depends on them.
In a lot of the cruelest "critiques" I have seen, I recognize the intent to be a funny guy—maybe for clout, maybe just to feel good.
It fails, but it's there.
/24
REASON #3: The fact that a creator did something, or the positive response to that creator's thing, makes someone feel insecure, and they write a screed from their own insecurities to try to knock the creator down a peg.
Now here's the catch:
/25
To offer good, useful, nuanced critiques, we need to be able to CATCH OURSELVES writing something for one of these three reasons.
And that's what I mean when I say that critique requires relatively advanced self-reflection capacity.
As Kent put it the other day...
/26
"Who is this feedback about?"
We gotta be able to recognize when our critiques are no longer about the piece we are critiquing, and are instead about us.
27/27
• • •
Missing some Tweet in this thread? You can try to
force a refresh
We have a pandemic, a reckoning about police brutality, late-stage capitalism, and more.
And consecutively, I'm supposed to be teaching a class about mobile software development.
I wanna talk for a second about why and how I address tough topics like these in the classroom.
1/
So first, why talk about tough stuff in the classroom?
1. These things affect my students lives and, therefore, ability to learn. Acknowledging the events makes it easier for students to come to me with questions and concerns related to their studies.
2/
2. I look like a tool if I teach 20 min after the Derek Chauvin trial concludes and I act like nothing just happened.
Computer scientists already have a reputation for living in their own little nerd world. I don't wanna feed that beast.
3/
I have been watching several online lectures and lecture playlists from different instructors lately.
I'm starting to have some aggregate thoughts about what makes a lecture work—or, more specifically, NOT work.
1/
Before I begin, two things
1. I'm a graduate school instructor. I have given lectures. I'm not the peanut gallery.
2. My sample is "Lectures that got to YouTube," so their quality probably outstrips the average.
In particular...
2/
I have seen very few cases where the instructor didn't prepare or didn't care.
So this thread is really "What can STILL make a lecture not work, even if the instructor cared about the quality of instruction and prepared for class."
3/
This evening in Chicago, I watch one moneyed/powerful institution after another sound alarms about Possible Protests.
That's what upsets them; not graphic evidence that Chicago Police murder innocent people with impunity.
What is the purpose of protest, here, now?
1/
Under the right circumstances, protests drive change. In 2020, multiple city administrations moved to divert funds from policing to community support, and Colorado became the first state to end qualified immunity since its introduction.
But Chicago's circumstances...
2/
I mean, let's start here: the mayor is a cop.
She has presided over, at this point, MULTIPLE high-profile cases of police misconduct attempted coverups.
To be clear, engineers have a lot of power and share blame for a lot of stuff.
But also, engineering suffers a bit from the goalie problem, and it ends up negatively impacting orgs' opportunities to fix things. 1/
The Goalie Problem:
Any time the opponent scores, what's immediately obvious is whatever the goalie did wrong.
But the most fruitful answers to "how can we not let this happen again" often have to do with how that ball got into the goalie territory in the first place.
2/
Here's a common one: some kind of joke about "Engineers write bad error messages."
'kay, well, sure, hardy harr, but that's what happens when you don't give eng the time or access to ask questions and then and hire a designer who doesn't design failure cases.
3/
@freakboy3742 So, I feel like an ass explaining this to a Django maintainer. This guy's gotta know 3x as much as I do—including why it's controversial.
The REPLIES, however, are getting kinda sarcastic and mean and poorly informed. So I'm'a explain, in good faith, why it's controversial. 1/
@freakboy3742 Before I begin, who the hell am I: I write Python that powers article recs on Firefox and NASA LandSat satellite data-to-image processing. I teach Python to CS grad students by having them replicate features of pytest, pandas, and memcached.
The reasons it's controversial:
2/
@freakboy3742 1. The first thing to understand about any language/framework is that computers are entirely manmade, and so therefore CS doesn't have "natural laws" like physics does.
CS's "laws of physics" are the perspectives of the humans who wrote whatever the thing is we're writing in. 3/