E27: How Can We Clone Stephen Shapiro?
24 Jun 2021 · 23 min
Stephen Shapiro and Adam Leffert discuss building an AI chatbot that guides users through 25 problem-solving lenses. They settle on a hybrid approach: start with 7 to 10 core lenses, use modular decision trees, and test with real clients asynchronously before scaling to full AI.
Chapters
What if we could clone someone digitally? Welcome to Invisible Solutions. I'm your host, Steven Shapiro. Each week we tackle your most complex problems using the lenses from my book, Invisible Solutions. If you need the lenses, go to getthelenses.com with that. Let's get started with today's episode. This week, I'm thrilled to bring on a great friend and a brilliant developer, Adam Leffert. Adam is a freelance C Sharp. Net software architect and developer based in the Boston area. But for me, more importantly, he's a great friend and the creator of the Invisible Solutions lens browser and the Invisible Solutions lens bot. Welcome, Adam.
Great to be here.
You're somebody who I've known for a long time and I really respect. I mean, your technical chops are just unbelievable. And when I started writing Invisible Solutions, before it was even called Invisible Solutions, in fact, you came up with the title Invisible Solutions. So I have to give you a little bit of credit on that here. The day I said I'm working on a new book around this concept of lenses, before I even started writing anything, you were already thinking about how can we create tools to support it? And you've been working with me on this, you know, pretty much from the very beginning. And so that, to me, is so cool because now we're together to have a conversation around the lenses that we've been talking about for a while now. So, as you know, this is a problem solving show, and I'd love to hear the problem that you would love for us to tackle using the lenses that we've been talking about.
All right, so we've worked together already to create a thing called the Lens Browser, which is a very clear, very straightforward software that lets you browse through the lenses, show you when to use them, how to use them, examples, videos. People like it. People feel like it's a good start, but they want more. So when I've asked them what kind of more they want, they want something that really helps them actively reframe problems and helps them do what they couldn't do before with the process of invisible solutions, not just the set of lenses. So my problem is how do I create software that when we give it to your readers and your clients, helps them so much. If we take it away, they get mad.
First of all, that is an awesome question, partly because what you've done is you've built into it lens number 14, which is the emotion lens. And most of the problems that I tend to get are very analytical. This one has just so much emotion to it. So I love Starting with the emotional aspect of it. One of the things which I just want to point out, and the Lens browser. If anybody's interested in learning more about the Lens Browser, that's actually a commercially available tool right now, go to invisiblesolutionstools.com and you can check it out. There's a free trial for it. It's a really great way of displaying the lenses so. So that you can easily navigate them. But as you point out, it doesn't have intelligence, it's more of a browser. Hence the name.
Exactly.
So you've been building this bot, and what I love about the bot is, you know, I had just a client the other day saying, how can we replicate what you do, like the way that my brain works to be able to know which lens to choose at which time to do the reframe? How could we automate that? Somebody just asked me that the other day. So I think that's what you're sort of getting at. Is that not correct?
Exactly.
Cool. So let's talk about that. And here's what I like about this concept is when we enable people to do something in a way that they couldn't before, I think it's going to get at that emotion you're talking about. So give me a little more background thought. What's worked, what hasn't worked, where are you getting stuck in the process?
So what's work is asking the user. That's why we have this, you know, just to say it. A chatbot, a software where you're on a phone or you're on a desktop web browser and you type back and forth with it, you ask it a question, it asks you a question, you sort of chat back and forth so it can know what you need, know what you want. Where I'm getting stuck is frankly, how to structure that conversation. There are so many ways. When somebody speaks to you, you're obviously a person, you listen and you can just understand and talk. The bot is really good at parsing language, knowing what words goes with what, but it doesn't understand anything. So how can I structure that conversation? So the software knows what information to offer the user and kind of what roads to take them down in the problem reframing process.
So I love that perspective. And it's, you know, a lot of people in a situation like this, they might reframe. The problem is, how can I use AI to solve this problem? It's not an AI problem. I mean, this is, I think, for the most part, I mean, could we, I guess. But to Me, this is really a decision tree type of logic. And I think getting at that is, is really the key here. And I just want to point out for people that one of the things that I do with clients is they bring me problems and we'll do like a hot seat. And I will just say, okay, well, how about this lens? If you listen to the podcast, you'll see this is what I do is I just sort of know which lenses seem to feel right. And so is that essentially what you're trying to do, Adam, is like almost get to the point where the software can sort of intuitively know what's the right question to ask next to be able to drive the reframing?
Yes. And kind of what those parts are. So you go to maybe a doctor appointment or something and they look at you, they listen to you, how are you doing? And then you say, oh, my left arm hurts. And that sort of sends you down a road and then you're done with that and it's like, oh, and by the way, my eyes itch, or something like that. So for any kind of a problem solving situation with a professional as you are, it's not just one thing, and it's not just a doctor saying, here's a pill, here's a pill. They're these little subroutines almost, but they're also related. I found that sometimes people get mad at software because they already explained something. So to kind of. To walk it back a moment. Yes, it's a decision tree, but it's a bunch of decision trees. And I feel like the software should be informed and, and as you use it over, frankly, months and maybe even longer, it should get better at helping you. You shouldn't have to repeat yourself. If you've expressed something, it should know it and move forward.
So there is some form of, I guess you could call it machine learning involved. It has the ability to improve itself over time. Rather than being a static set of logic. Let's just apply the analogy lens because you really, I think in that last example did that. I know that there's a number of chatbots out there that are for medical diagnoses. I mean, obviously they're not going to be prescribing drugs or surgery based on a chatbot, but they're at least designed to help you determine, do I need to go to an emergency room? So what have you seen with other chatbots in other contexts that work particularly well? Maybe something that we haven't really adopted yet. And what would it take to try it out?
Yeah, exactly. It's a great thing you mentioned because I've looked, but I haven't looked recently. So I do. I write web software, I write these chatbots, I do software architecture, but I work with Microsoft tools a lot. Microsoft has a health chatbot, which I looked at at the beginning of the COVID pandemic because I was so curious about, you know, health issues, as we all have been. And I just made up a symptom. I said, headache, you know, what's going on there? And it led me down a road of have, you know, did you drink too much coffee? How old are you? Have you hit your head? And so one, one thing to follow the analogy lens would be to go back to that bot that I think they've rolled out in the real world with real hospitals and put a lot of time and effort in and see how does it relate information about you, information about your experience to suggestions. And it comes up and says, oh, you're probably fine. Oh, watch it. Oh, no, you should call the emergency room right now. I should look at it again and see what they've done.
So that's a great place to look. And I'm wondering, though, as you're talking and we've had this conversation over the past year, is that obviously, if we're looking at medical chatbots, and let's just dive down into headaches, specifically, the amount of different questions and permutations, variations is substantial. I mean, I would imagine if you were to look at the logic for the chatbot that they developed, it's got to be pretty complex and pretty fascinating with lots of different parameters. And we have 25 lenses. Not like we have 25,000 lenses. We have 25 lenses. So let's talk about the reduced lens, which is number three, which, here's the thing which I know about myself is when I do a hot seat, there are still, I would say, 7 to 10 of the lenses that are my go to lenses. Like, I would. I would use them almost every single time. And then it's the other 15, which I use, but they're much more specialized and nuanced. So is there a possibility of somehow with the chat bot focusing on. And maybe there's a little bit of the leverage lens too, which is, you know, what's the most important? What are the most important lenses? Get those front and center in front of people, because maybe we'll have the best chance of getting an insight. And then the other 15 are like, okay, if you're still stuck, let's go through some deeper Logic, so we can simplify the logic up front. Does that. How does that sound?
It sounds great. And as you were telling me, I think see if I can guess or not guess or remember which ones they are. Reassign and sequence or resequence, I'd imagine, because I know, you know, you're working with companies, you're quite busy. I listened to you a little bit and then I ran away to kind of do my work. As I listened, even though we have reconnected periodically, I realized that I do need to have you more in the process. So you would come and show me, oh, this group of lenses is good for this. And. And then I'd go work on that. And this group of lenses, I think I haven't been iterative enough. I'll still, of course, respect your time, but I haven't been iterative enough with you. I've tried to gather the kind of pearls of wisdom, run away and come back to you with something fully formed. And I guess that's a. Was the lower expectations lens, the ones where you're. You're kind of stretching too much. That's reduce, as you said.
Yes, yes.
Yeah, I think I need to reduce. I think I need a resequence and a little bit of a reassign.
Well, that's a great use of lenses. There you go. Chatbot. Done.
And we're done.
And we're done. Scene. But the resequence lens, I think, is a really important one here. And so I love the way you framed it in terms of resequencing our interactions, which I think is great, because I think you're right. I mean, I think at times it gets very easy. And this is sort of one of the curses of having done something for. For decades. You just assume that other people are able to pick it up, even after our having talked about this for over a year now. And the concept of lenses, as you know, I started working them 10 years ago. So we, this is. Our conversation around lenses isn't even a new one. It's been going on for a long time, but I do it daily as part of my work.
Sure.
So we, we do make some assumptions that somebody else is going to be able to. To. To be able to do what we do, which is. Which is a challenge. So resequencing our relationship, I think is a good one. I think the other one is to resequence our relationship with the clients. Because it's interesting for you and I to come up with a chatbot, but until we Actually test it out with a client, it's not really going to make much of a difference. And so one of the things which I'm going to suggest is that as we move forward, we always have a real world client that we're working with so that we're re sequencing it. So instead of predicting what they want, we. We're postponing till they tell us what they actually need.
Absolutely. And unsurprisingly, I had my aha moment while I was intently listening to what you were telling me, which is yes to all of that and those interactions. As I was coming to this podcast, I was thinking, I want this, I want that. I want to know what the interactions are. Interactions being those little trees of the decision tree, but also how they fit together. So what I realized as you were, as you were telling me that was yes, resequence. Yes. You know, we come up with something. I work with you, I work with the client. And that in that reduced sense, if we could polish one of those, one of those interactions, some of which I've already done. I've been trying to do too much at once. Right. I've been trying to create the interactions. Imagine the customers and create their interactions between the connections, the connections between the dots. So if we worked in that 1, 2, 3, 1, 2, 3 manner to produce 1 and then maybe 2 and then maybe 3, then I could take them home and then I could focus on the connections. How does this part of the conversation flow into that part? So they're not just separate little modules that they really all inform and make each other more valuable. If I had those building blocks, I could sort of relax and focus on how to put them together and then at the end of the game we'd have it but not try to do all of it at once. I think that's another mistake I've been making.
I think one of the things also is, like you said, at times we want to respect somebody else's time, but I'm really committed to having a product that is going to be world class here. And so I think it's also, you know, the resequence lens is just, as you can tell, it's one of my favorite ones. The resequence lens is also really powerful, especially when it comes to interactions. A lot of times we assume that the only way we're going to be able to get anything done is getting on the phone or a zoom call call.
Right.
Whereas, you know, I'm a big fan of asynchronous tools. I use YAK or Voxer or tools like that where they're like walkie talkies. And so, you know, I think that's something which you and I haven't really done. We've done some emails and some text messages, but I think we should set up a communication channel on YAK and people who are listening. It's yac.com and basically what you do is you got a question, you want to test something out, you just send me a little voice message and when I get a chance I'll respond back and then you're respecting my time because then I'll just answer whenever I have the time and you can ask a thousand questions and that'd be perfectly okay. So I think that's a really good lens to use for this.
I think it's wonderful. I think also one of the things I've been looking forward to, I've done chatbots and I've done them as demos, but looking forward to sort of doing one more professionally in the so called real world is that it shouldn't need any, what we call kibitzing, any suggesting it should just sort of speak for itself. So when you ask a close friend to look at something you made, they're often like, oh that's great because they like you. But we create these pieces and talk about Async having you look at them. We make something good enough to put in front of a client, the client looks at it without me looking over their shoulder and I feel like we'll get a response that's more honest and more. And if they say it's good, it's really because it represented well, not because they decided they might like me or they want to do me a favor, make me feel better that that Async will let them look at it on their own time and give us a, some frank feedback.
Yeah, I love that. I mean it's all about the communication. I think one of the things that I found is with innovation in general, not just software development, is by resequencing things, by changing the order of things and being able to almost that, that build it, try it, fix it mentality like, okay, I'm not going to try to get something perfect, I'm just going to get a, the simplest, bare minimum, the minimum viable product type of thing done and then we'll iterate from there. I think that's, you know, the innovation process that we use for other types of products would be perfect. Here, let me give just two last lenses sort of to wrap it up and I'm not sure if these are going to have any applicability, but sometimes lenses just stimulate a thought and you don't know. So the variations lens. The variations lens says we don't want to treat all situations the same. And to me, the underlying premise and where I got the variations lens was from somebody I was working for years ago in software development. And he said that you never design for the exception, you design to handle the exception. And I'm just wondering if with the chatbot, if we can figure out what the exceptions are. And maybe the exceptions are those other 15 lenses that we don't use as much and we design only for the 10, but maybe there's a different use case. So what comes to mind when you think about the variations lens?
Yes. Yeah, a sort of concise answer. I feel like narrowing it to the most oftenly used at the very least would be a very useful exercise and then turn attention towards the exceptions, as you say, and then see where we end up well.
And what I like about that too is if we have the go to lenses, we could even go deeper. Like right now, there's certain content around each of the lenses, when to use it, how to use it, examples of it in action. But what we could do is create a lot more supplemental information around lenses that we use all the time. For example, the leverage lens, let's just take one of that, that one, which is one of the 10. I could create a whole new body of work just around the leverage lens, which gets into all the different aspects of it, which then might lead to different branches in the decision tree, which isn't just the generic leverage lens, but it might be specific instances of the leverage lens which could then really, I think, create even more value for people.
Absolutely. I mean, as I listen to that, I think about real problem, about the fact that what we're really trying to do is to serve these people that are intelligent, that are really good at their industry they're working in or their skill, but they might not know the lenses. And I don't have a name for this, but I've noticed in myself and in friends, and I think you might have even mentioned it to me earlier today, things that we do, anyone does every day, you think aren't a big deal. So having lived with the lenses for so long, I feel like I'm maybe overlooking the value of what you just said about going deeper about examples and, and secondly, that as we present that content, as we sort of teach that material, maybe we can gently collect some information either about the problem Itself. Given the problem you're framing, do you think this or do you think that? Or how do you feel about this lens? Yeah, I've got this one nailed. Show me something else. Or I want to go deeper. Or I get the abstract, but I want to see examples. Maybe their knowledge of the lenses themselves is a somewhat separate issue than to also be trying to read their mind and solve their problem at the same time.
I've got to tell you, I'm so excited about this conversation, because people who are listening, I want you to get that Adam and I have talked quite a bit over the years about this, and. But I don't think we ever really just sat down and said, how do we apply the lenses to the lenses? And I'm just thinking there's. There's just. In this conversation, I feel as though we've identified some really great and powerful opportunities. I'm just like, I'm more excited about the chatbot now than I think I've ever been, just because I think we have some clarity around some of the things we can do that are going to really just create even greater value. So this is awesome. We'll do one last lens, and we're going to do something that I did last time, and I'm going to let you choose. Gonna let you choose the lens to close this off, and I'm gonna give you three lenses, and you choose the one that you think is gonna provide the most provocative and interesting solution. All right, so the lenses are number four, which is the eliminate lens. Like, what could we eliminate? What could we get rid of altogether? How about. And I'm just picking this one randomly, number 20, the bad ideal lens. Like, what would be the absolute worst idea that we could possibly do and maybe turn that into something that's a great idea. And then how about the. Let's try the hypernym lens, which is all around the levels of abstraction of words. So which one do you think would you like to tackle?
I'm going to go with eliminate.
Cool. All right, what comes to mind?
Oh, I thought it was going to come to your mind.
Ah, no. Well, look, I think the good thing with the eliminate lenses we've covered some of the possible ideas is like, well, maybe it's eliminate the focus on the 15 lenses that aren't as popular, therefore, focus our energy on the other ones. And we're not eliminating the other lenses. But let me ask you, just thinking about everything you've done with the chatbot so far, what could we eliminate from what's already been done that might simplify it or, or what can we eliminate from our conversations moving forward that might just accelerate the development. Anything come to mind?
Great question. As much as possible, what I'd like to eliminate, even though, I mean what I said earlier, that the system is going to have to be to some extent, these little subroutines. Let's talk about this, let's talk about that. The need for the software to keep somebody in one of those subroutines, in one of those parts of the tree. So if we can make this work by again, trying something, showing it to you, showing it to the customers, where they can kind of freewheel, where they can be more like talking to a person. If you were speaking with a client and you were going on about something meaningfully, but you were really getting into it, they might say, oh, I'm sorry, but I really want to know about that. So if we can support that and eliminate the need to keep them kind of in blinders, kind of on train tracks, I think the software would be more fun to use and more like working with a real person.
Well, fantastic. And I guess that really is the goal, is to be able to have a conversation with a computer the way you would talk to somebody, talk to me, if we were to do this on the phone. So I love that. Adam, this was a great conversation. If somebody wants to get in touch with you, what's the best way for them to find you?
Happy to hear from them. I've got a website called full stack developer fullstackdeveloper.com with no punctuation contact info and reach out to me there. Or just drop an email@mindmodelmail.com M I n d m o d e l mail.com. love to hear from you.
Fantastic, Adam, thanks so much. And again, for those of you who are listening, remember, you can give a trial to the Lens browser. Just go to invisiblesolutionstools.com definitely check it out. I think you'll enjoy it. And also one of the things that I would ask you to do is if you try out the Lens browser, please give us feedback. And if you're interested in learning more about the chatbot and maybe being a beta tester, definitely give us a try. Adam, thank you again.
Thank you so much, Stephen. Amazing experience.
Well, we'll have you back on again sometime in the future.
Wonderful. Thanks again.
And with that, we are at the end of this week's episode. To submit problems you want solved on this podcast, go to invisiblesolutionspodcast.com and remember to download the lenses. Go to getthelenses.com I look forward to being with you next week. And until then, happy problem solving.