The abstraction trap

Abstraction - the generalization of a single instance into a repeatable, sometimes parametrizable pattern that can be reasoned about - is the bread and butter of the technical world. Think for a second about the levels of abstraction that needed to be climbed for you to read these words! Every computer in the world fundamentally only does one thing - binary math! That's it. But we use abstraction to turn that math into letters stored in a database, bits of an internet packet sent to a server and encoded on a magnetic medium somewhere, finally even small colored dots on a screen that look like the letters we want.?

You read that paragraph and probably thought "duh!" right? It is pretty obvious...to us. And that's really the point of this letter. If you've selected into and been successful in the tech industry at all, and most particularly if you work closely with software, you have a very above-average ability to consume, internalize and use abstraction. You're likely very comfortable with it.?

But most people aren't. How often have you heard someone say, "oh I just don't get computers at all" and you laugh a bit at them because it just doesn't seem that hard to you? We've all had moments where we don't really understand why something is so hard for someone to understand - almost always, it's about some kind of abstraction that's hard to handle.?

This can leak over into our design of software very easily, and it's related to the "programmer trap" we discussed earlier. It's very much not enough to test software on people in the industry who not only have this ability to parse abstraction but who also are insiders who understand common design patterns (and IT professionals are "in the industry"). Often, when I get stuck with a piece of software, I can think "ok, what was the programmer probably thinking when they built this" and it can help understand. Most people outside of the industry can't do that - they need something that has a more familiar narrative flow, that asks less of them in terms of complex mental models.?

if you like, you could think of this as a form of accessibility design. If we were, for instance, designing software that was very difficult to use if you were colorblind (which we sometimes do inadvertently), the correct response wouldn't be "learn color" any more than the correct response here is "learn abstraction".?

The right answer is always to go to where the user is and to solve their needs. This is easy to do when we can understand and feel those needs ourselves. It's much harder when we have our own biases and blind spots that are more common in the industry - and in that case, we have to take extra care to design for people who are less comfortable with abstraction than we happen to be. This means lots of user feedback, UXR, constant revising of rough edges, good telemetry to see where people get lost, all the usual suspects.?

Saurabh Shandilya

EM at Microsoft | Forbes 30u30 Asia 2021

2 年

Hi Sam, One of the times, I faced difficulties was when I am trying to understand a new design & I kept on thinking - is it me who is not making sense for this or the dev/designer had this abstraction purely to show off the future proofing/generic nature of it? 4/5 I was simply not able to understand the rationale bcz of the blind spots or just less visible horizon(from my POV) but lately I've seen people overcompensating a lot as well when they get to know what they have been missing.

回复
Jeffrey W. Harrington

CEO / Creative Director at Wuzzals

2 年

As a non-programmer I have always wondered how many abstraction layers are there from the chip to a full application. Thanks for posting!

回复

要查看或添加评论,请登录

Sam Schillace的更多文章

  • AI analogies and historical lessons

    AI analogies and historical lessons

    How to make sense of it all. I've decided to keep the primary posts over on Substack.

    1 条评论
  • Motion, Thought, Systems and AI

    Motion, Thought, Systems and AI

    In which I ponder how motion is like thought, why LLMs are like early steam engines (hitting things and pumping water),…

    4 条评论
  • Looking back at the Schillace "laws"

    Looking back at the Schillace "laws"

    Way back in, I think, March or so of 2023, after I’d spent a little while trying to build things with GPT-4, I wrote…

    5 条评论
  • A strange tech parable

    A strange tech parable

    In my role at Microsoft, part of what I do is spend time with the leadership team that runs M365, Office, and Windows…

    12 条评论
  • Simplicity, Clarity, Humility

    Simplicity, Clarity, Humility

    There is an old joke: “sorry this letter is so long, I didn’t have time to write a shorter one”. It’s funny, but it’s…

    4 条评论
  • A matter of context

    A matter of context

    It’s interesting that, as we talk about using AI more and more, the phrase we use is “human in the loop” instead of “AI…

    3 条评论
  • The tension between Chaos and Order

    The tension between Chaos and Order

    I’ve been spending the last week in Japan, meeting with makers and crafts people. as always, it’s a humbling…

    4 条评论
  • No Prize for Pessimism

    No Prize for Pessimism

    A book! I’ve been writing these letters for about 12 years now. I started writing them when I was at Box, as a way to…

    10 条评论
  • Adding Value in the Age of AI

    Adding Value in the Age of AI

    If you wrote out all possible combinations of, say, 1000 letters, the vast number of them would be nonsense. And the…

    3 条评论
  • Don't use AI to make work for humans

    Don't use AI to make work for humans

    I’ve started to notice an interesting pattern. More enlightened teams and people are using AI to get lots of work done…

    5 条评论

社区洞察

其他会员也浏览了