In today's episode, I talk about four different types of abstract mental models.
Transcript (Generated by OpenAI Whisper)
Hey, everyone and welcome to Developer Tea. My name is Jonathan Cutrell and in today's episode, we're going to be talking about allegories, similes, metaphors, and simulations. These are all different degrees of mental abstraction, mental models. We're going to be talking about all of that in one episode today. It's a mouthful. Let's get straight into this content as soon as possible. First, a few housekeeping things. Today's episode is going to tie together some terms that you may not necessarily be intentionally using in your day-to-day job. We've talked about metaphors before and we've also talked about useful abstractions. Today we're going to dive a bit deeper. We're going to explore the differences in a few different ways of creating these abstract mental models. Today's sponsor is SquaresConference. Squaresconference.com. I will be there. This is a conference for developers. I'm going to be there. Dan Dini is going to be there from Code School Valhead. She is a designer and web animation pro, Kim Boss. She is a product designer at Dropbox. There's a whole host of other people that you can find out about by going to squaresconference.com. This was kind enough to pay for a ticket for me and a few of my co-workers. We're going to have a little crew there. I'm looking for it to it a ton. It's in Greatvine, Texas, which is just outside of Dallas. You can fly directly to Dallas and then drive to Greatvine in just a few minutes. Check it out squaresconference.com. Later on in the show, I'm going to share with you a special code that will give you 25% off. That's on the primary ticket that squares has. 25% off just for being a developer to you. Listener. Before I give you that code, I want to talk to you about these abstracted mental models. These are four types of mental abstractions. I'm quite sure that there are more than these four than I'm going to cover today. But these four cover a spectrum that I want to point out to you. A lot of the time we like to unify our language. And really, we should be breaking it out into intervals. We just talked about this last week. We need to be thinking in intervals, not on a complete continuum, but certainly not in binary either. In other words, we end up thinking in false dichotomies accidentally. And we think of things in terms of good and bad, for example, or fast or slow. And really, the truth is much different than that. And this problem is it's kind of like a bias. It's pretty pervasive. It's like false dichotomy bias, right? And it's likely an artifact of our natural desire to simplify things so that we can quickly decode them when we see them in the future. And we don't have to think about them for too long to understand how we relate to them. When we think about mental models or we think about the word abstraction, we often think that that is one category of things. This is how we often try to understand abstractions, that it's something layered on top of another thing. This is the way that I think about abstractions when I'm not actually using my brain very hard. That's the false dichotomy. I think of an abstraction as a single thing. We unify all abstractions into one category. But today, I want to expand that discussion a little bit and talk about four different types of mental abstractions, mental models. Something things out like this may help you identify when and how to use different types of abstractions. Breaking things out, figuring out what those different steps are between one extreme and the other. Breaking them out may help you identify when and how to use these different types of abstraction. And this technique can be used in other things too. When you find yourself trying to dichotomize something, try breaking it down into smaller steps, smaller intervals and see if those exist. My guess is you're going to find more often than not, they do. So we're just going to touch on these four different types of mental abstractions. You can call them mental models. The first one is allegory. And allegory has deeper meaning than what you see on the surface. Psychological or symbolic, potentially cultural symbolic meaning. For example, when we use imagery that evokes a particular emotion or maybe even a particular time period, we're taking advantage of allegorical design. When I say the color red, you have a particular understanding of what the color red associates to in your life. If you live in the United States near where I live, you're going to associate red primarily with stop signs, potentially with negative things. You're going to see caution when you see red. But when we add green to that, when we say red and green, it's likely that once again if you live in the United States, you're likely to think about the holiday season. Now if we add red, yellow and green, once again here in the States, that means a traffic light. And it's likely that you're going to think through those things as a part of our culture. Now that is a very simple example of allegory. There are much deeper examples of allegory in literature. And allegory is actually a literary term that describes when an author uses something as a symbolic stand-in for a different thing. A particular character could be allegorical and allegorical symbol for something that was happening in the time period that that author wrote that particular piece. So for software design, we don't see this very often in code, but we do see it in UI design, and when we're talking about user experience. For example, we know that red has a deeper meaning. We just now discussed that. Then simply the color itself, it's not just a collection of light and pigment. This can be a highly simplified version of an allegory, but using red as a stand-in for the word warning. You're using something that's totally separate, and they aren't necessarily even connected through language. They're only connected through some kind of deeper connotation or psychological symbolic meaning. Okay, so that's an allegory. And again, that's not seen as often in code. It is seen in design, but still this is something that you're going to see more in things like literature, perhaps in copyrighting and brand development, which a lot of you who listen to the show, you're involved in some kind of brand development. So keep that in mind when you go forward and working with those projects. The power of allegory should not be underestimated. It's worked for thousands of years in literature, and it can certainly work when you're developing brand. Number two is simile. Okay, number two is simile. This is another type of mental abstraction. And typically with mental abstraction, what we're saying is we're abstracting one thing away from another. So simile is the next step on the scale, and a simile is when you say that one thing is like another. One thing is like another. For example, saying that an overlay on a blurred image is like a piece of wax paper on top of a polaroid or a piece of code is like a tree, a particular algorithm is like a tree. With simile is, it's most often the case that the simile is trying to point out a particular characteristic or perhaps a few characteristics of the item and the item it is being compared to. So in the wax paper example, we are talking about the terrability of wax paper. We are talking about how the wax can melt off of it, but rather we're only referring to the way the light hits it. So that is a simile. Similes are most similar to metaphors, and metaphor is number three. Emiles are often mixed up with similes, but the difference here is that we aren't saying that one item is simply like another. We're actually saying that one item is another. For example, on a website, you might have a carousel or an even better example of this. For email, you actually use the word inbox to describe where all of your incoming messages go to. This is a exact example of metaphor. A metaphor is often, again, it's confused with simile because they have a lot of similar characteristics, but the main difference between simile and metaphor as it relates to software is that we're often using most of the characteristics of the compared objects. A metaphor is saying that something embodies a lot, if not all of the characteristics of that particular object, but that it may present it in a different way. So like, functionally down below the presentation layer, a lot of the things are functioning in the same way. In the inbox example, we have messages that come in, we can go and get those messages, we can put them in other boxes, and so that metaphor kind of holds up functionally as a metaphor for a real mailbox. Now could you use a simile in place of a metaphor? Of course you could. Let's say that an email inbox is like a true physical mailbox, and that would be perfectly fine. There's nothing particularly wrong about mixing these two different things, but I'm trying to give you tools for planning in the future when you're trying to create these mental models for yourself. Maybe you can use metaphor to describe something that more holistically covers the functional feature sets of something, and assembly to describe a limited set of similarities. So we've gone through one, number one was allegory, number two was simile, and number three was metaphor. Now I want to take a quick break, just a 10 second break. Squares conference has been so kind to sponsor Developer Teaby bringing me and a few of my colleagues out to squares conference, I hope I can see you there in grapevine, Texas. It's at the end of April. Go and check it out squares conference.com, and they have given us a special code to give to Developer Tealisteners, and that could expect FM25. That's spcfm25. That gets you 25% off on your tickets to squares conference. Again, I will be there. Dan Dining will be there. Val head, a whole list of people that you want to go and see. And you can find out who's going by going to squares conference.com. And I hope to see you there. Go and check it out squares conference.com. Don't forget the code is specfm25. And just let them know that Developer Teasends you their way. Thank you again to squares conference. So we've gone through three of these mental models, mental abstractions. Allegory, simile, and metaphor. And the fourth one is simulation. Simulation. Allegory is probably the most abstract that you can get. Simile is significantly less abstract than an allegory. It's comparing to things. Software is a bit more directly connected because we aren't using like language. We're simply saying that something is something else. And finally, simulation is the most literal abstraction of them all. Essentially what we're trying to do with simulation is create as close to the real thing as possible. We're trying to create as close to the real thing as possible. And you see this particularly in gaming. We see simulation because we're creating physics worlds, for example. We're creating some kind of interactive AI component maybe. And really simulations, they're an abstraction because they are immersive completely in a digital artifact. A simulation is a complete digital artifact that tries to approximate the input and output of a real life scenario or perhaps an imaginary scenario that is being simulated as if it could be real life. For example, imagine a simulation of flying through space. Of course, you haven't had a chance to fly through space. And particularly if we had a simulation of a human on Mars, then that wouldn't be a human flying through space either. Now I should mention that it doesn't even have to necessarily be digital. A simulation can simply be trying to approximate the realistic environment with whatever tools you have, digital or non-digital. For example, there are teams who are actually simulating the human trips to Mars. And they're doing it here on Earth. They're trying to create a similar environment here on Earth. So a simulation is approximating as literally as possible with whatever tools you have, the input and output mechanisms so that we perceive something that is very similar to what it would be in that real scenario. That's what a simulation is. So hopefully these four ways of thinking about mental models all the way from allegory, the symbolic literary meaning of allegory all the way to the most literal version of an abstraction, the simulation. Hopefully these four things can help you understand mental models a little bit better and start thinking about things. Not in terms of simply, oh, it's an abstraction or it's not an abstraction, but rather start thinking about them in terms of their different levels on that scale. What type of abstraction is it? Thank you so much for listening to Developer Tea. This show would not exist unless it was for the people who listened to it. So thank you so much for spending your time listening to Developer Tea. One way you can help the show out tremendously is by subscribing. And another way that you can help us out is by going to iTunes and leaving a review. These two things are massive for helping the show continue to do what we do. It helps not only because you are getting consistent deliveries of the show, which hopefully that's what you want anyway, right? But it also helps because it pushes us up a little bit in the iTunes ratings. And that's why I tell you that it helps other developers just like you find Developer Tea. So if you think that Developer Teadeserves to be pushed up in the ratings so that other developers can find it, then go and leave a review. That's the best way to help us get pushed up in those rankings. Thank you so much for listening. Thank you again to Squares Conference. If you want to see me in Texas, go to squaresconference.com and use the code specfm25. Of course that code can be found in the show notes at spec.fm. That'll get you 25% off to go to Squares Conference. Thank you again to Squares Conference for sponsoring Developer Tea. Thank you for listening. And until next time, enjoy your tea.