The single biggest problem in communication is the illusion that it has taken place.

George Bernard Shaw

Why a Framework?

The single most important thing that we do at work is communicating with other people. It’s generally how we are able to come up with ideas and execute them in ways that a single person could not.

It does seem that this whole “talking to each other” thing can get complicated. “Miscommunication” seems to be the number one excuse for something getting messed up in a knowledge worker environment. There are a whole host of reasons why this is the case. But one of the easiest ways to combat the lack of retention, the lack of comprehension, or simple miscommunications is to start with the way that we express ourselves.

At Sourcetoad, we use an adapted communications framework that has made life a lot easier for everyone involved. We have set up some basic rules for communication that are easy to remember, and we use keywords so that people receiving the information can context switch into the receiving framework mode. In other words, when people incite the framework, everyone changes their mental stance and prepares to communicate.

An Adapted Simple Model

This framework has been adapted from an amalgamation of numerous other frameworks. It takes a lot from military communication tactics (where being understood can be the difference between life and death) and a number of other popular communication frameworks. This is just the simplest way that we’ve been able to express it. It has been hacked together from too many sources to cite, but it is still simple enough to work well for us.

The Framework

Our framework has only four key pieces:

  • Intent
  • Context
  • A sketch of the desired outcome
  • A sketch of a strategy to get to that outcome

These four items can be placed in various orders, but typically they start with intent and end with a strategy.

Intent

Stating your intent, or at least clearly knowing what your intent is, is the most powerful part of this framework. Understanding your own intent in everything is extremely powerful, but that’s another blog post. Conversations that do not have a well-understood intent are just “chats.” They’re not the type of communication that will solve any problem.

Stating your intent at the beginning of a conversation does two very important things:

  1. It switches the receiver’s brain into “communications framework mode.” It allows the other person to understand that you are about to use the framework.
  2. Stating your intent allows the person to whom you are speaking with to know why you are talking. If I don’t know what you want right at the beginning, we’re probably not going to have a fruitful conversation.

Context

Context is the backstory or history that your receiver may need to fully understand the conversation. Telling the person you’re talking to about the players involved, what previous conversations touched on, or what the stakes are can be extremely useful.

The three main questions you should ask yourself when giving context are:

  • What are we talking about?
  • What do you need to know about this?
  • Have I told you everything you need to know?

When saying this bit out loud, you can use the following trigger phrases to make sure your receiver knows you are using the framework:

  • “For a little background…”
  • “For context…”

Sketch Desired Outcome (End State)

After you’ve laid out your intentions and the context the receiver needs, it’s time to actually tell them what you want. This involves explaining your vision of the outcomes, or the “end state.”

An outcome or end state might be as complicated as: “I think what I want is for the company to open a new line of business, complete with staff and warehousing. I also think we’re going to need to custom build an entire logistics software system over the next few years.”

Or it could be as simple as: “What I would like is that at the end of this conversation, we set up a time to have a formal meeting about it with the team.”

You need to be flexible here because even though you might know what type of outcome you are looking for, you need to leave room for the solution to include new ideas from your audience. That’s why we call it a “sketch.”

When saying this bit out loud, you can use the following trigger phrases to make sure the receiver can envision what you want to happen:

  • “What I see happening…”
  • “My desired outcome is…”

Sketch a Strategy

You know what you want (intent), the receiver knows what you want (end state), and they have the backstory (context) to understand what you’re talking about — we can now move on to action.

In this phase, we outline a possible method of getting to that end state I mentioned earlier. This is up for discussion, of course. The person you’re speaking with is not required to follow your sketch. Rather, this phase invites them to build a strategy with you to accomplish the desired outcome.

The person you’re speaking with might have a much better idea of how to get there than you do, especially since they now understand your intentions and what the end goal is. So keep an open mind, and enjoy the brainstorming.

When describing the strategy you envision, Use triggers like:

  • “A rough strategy we could take is…”
  • “A path I see is…”
  • “I’d suggest x as the next steps. What do you think?”

Example 1

Intention: I want a dashboard to show the ten most important KPIs for our internal product. I want the team to manage the build-out and timing to balance client needs. I’m prepared to invest about 100 hours for the MVP.

Context: Hi Joe, some quick context: I would like for the team to build a dashboard that provides a brief overview of the system – I want this to show the variety of features for sales calls and to be useful for current clients.

Outcome: My desired end state is I get a demo-able dashboard on our test instance within the next four months. It should have 70% of the functionality shown in the mockups.

Strategy: I think the rough path to getting there is for you and Jane to meet and work out which features are doable in the next four months while balancing client requests. Then you can create tickets for the segments and decide how flexible the dashboard could be. Let’s get together for a review and approval meeting when that’s done. After that, we can start handing out the tickets to the team.

Example 2

Intention: I want to get James to switch the DNS servers for a client.

Context: Hey James, for some context, Martin asked me to help him with their new mail server. They’re going to be setting this up on their side with Office365. I’m not sure what is required 100%, though.

Outcome: I would like to send Martin an email with the steps he needs to take to prepare for the switchover and the dates when we plan on doing it. If we have any questions for him, I’d like to include those in the email by the end of the day tomorrow.

Strategy: My strategy here is that I will follow your advice and guidance to the letter because I’m not the expert.

Recap

If you are talking to someone at work, they might not actually be paying attention. Having a communications framework with key phrases and trigger words can make a huge impact on changing the mindset of the sender and the receiver. When both parties know that information is going to be transmitted in a certain way, retention and accuracy rates are way higher.

At Sourcetoad, we use the trigger words and key phrases below to help change our thinking, speaking, and listening modes:

  • Intent
    • “My intention is…”
    • “What I’m looking to do is…”
    • “What I want is…”
  • Context
    • “For some context…”
    • “A little background…”
  • Sketch of my desired outcome
    • “The outcome I’m looking for is…”
    • “When this is all done, I’d like to see…”
  • Sketch of a strategy to get there
    • “I think a rough path to get here is…”
    • “The strategy I imagine is…”

That’s it! It’s a very simple yet powerful tool to help improve communication. You can alter this plan or invent your own, but the key is that both parties know the rules. The idea that people can switch between a conversation and “communication” is life-changing – but it requires training on both sides.

Previous ArticleNext Article
I help companies turn their technical ideas into reality.

CEO @Sourcetoad and @OnDeck

Founder of Thankscrate and Data and Sons

Author of Herding Cats and Coders

Fan of judo, squash, whiskey, aggressive inline, and temperamental British sports cars.

Leave a Reply

The Million-Line MVP

A founder told me last week that his chatbot understands him better than most people he works with, and he wasn’t joking.

He had been alone in his house for the better part of a year building an app on one of the popular AI coding platforms, and he wanted me to take a look. Almost a million lines of code, one developer (him), no engineering co-founder, no senior reviewer, no nobody. The app had an ERP module, a CRM module, a custom AI agent with a name and a voice, built in mini-games (yes, really), dozens of character personas, a few landing pages, and a small army of social media accounts in multiple languages. He had not yet had a paying user, or even a free one.

He was, by the way, very excited.

(I’ve changed some details, since the pattern is what I want to talk about and not the founder. I see something close to this on roughly one out of every three sales calls now.)

What used to slow you down was the point

Building software used to be annoying for mostly good reasons. You had to hire developers, or learn to code yourself, or convince a co-founder to come along for the ride. Then, you would grind out every line, which would come at a cost (time, money, conversations, arguments, etc.)… basically friction. And that friction was not a bug, but it was like this ting that you are forced you to deal with, before adding any feature, whether the feature actually needed to exist.

Startup advice has been more or less the same for twenty years, maybe more:

  • Build something small
  • Show it to real people
  • Find out what they actually want
  • Don’t build a million things at once.

The Lean Startup came out in 2011 and we have all been quoting it at each other ever since (poorly, mostly).

This is what we talk about when we discuss “startup discipline”. It’s really not very complicated, but it can be really hard. It used to be hard because building was hard, and now it’s hard for a completely different reason.

How does one person build almost a million lines of code in a few months?

The honest answer is they don’t, the AI does, and the AI has no opinion on whether any of the code should exist.

This is the part I want to sit with for a minute, because I think it’s the heart of the problem. Imagine you’re building a startup that lets local news anchors rent out their unused toupees by the hour (try not to overthink this). You sit down with one of the AI coding tools and you say “build me a marketplace where toupees can be listed by the hour,” and the AI builds it. Then you say “actually, add a loyalty rewards program,” and the AI builds that too. Then you say “and also, add a Pokemon-style mini-game where users battle each other’s toupees,” and the AI starts coding.

It doesn’t pause or ask why, and it doesn’t say “dude, I love your enthusiasm but I am genuinely worried we are losing the plot here,” it just builds the toupee-battle-feature.

This removes the single most useful thing about a good engineering team, which is that engineers PUSH BACK. A senior developer, or a seasoned product manger, asked to add a toupee-battle mini-game to a B2B rental marketplace would slowly take off their glasses, set them on the desk, and ask one of those long quiet questions that means “we are not doing this.” The AI this is a sycophantic drone that has the eagerness of an underfed puppy to please you, and it has no glasses to take off. It also has unlimited keystrokes and believes that every single idea you’ve ever come up with is absolutely genius. At least it tells me that everything I’ve ever written or thought about is pretty clever.

A few months ago I ran into the perfect name for this, which is Slurm Coding. I used to call it AI crack coding, because the dopamine loop is very real, and I have really needed another hit of that good AI crack just one more time before I went to bed on more than one occasion. But Slurm is both more insidious in its combination of addictiveness and corporate outreach.

The MVP don’t change

Here’s what hasn’t moved in twenty years of startup thinking:

  1. Build the smallest thing that solves one specific problem for one specific person.
  2. Show it to that person (a real person, probably not your spouse, definitely not your mom, and DEFINITELY not my mom, and 100% not your chatbot).
  3. Find out what they actually do with it (which is probably not what you thought).
  4. Kill features, pivot, or double down based on what you learned.
  5. Repeat.

What’s new is that step one is basically free, and while not perfect, free is very alluring. You can build the smallest thing in an afternoon, or the largest thing if there’s no one around to tell you not to. Steps two through five still require getting out of your house, talking to humans, accepting that most of your assumptions are wrong, and throwing real work away. None of that is faster than it was in 2005, none of it is fun, and none of it scratches the “I NEED MORE SLURM” build-a-thing itch the way an AI tool does.

So a certain kind of founder just skips it, staying in the build phase indefinitely, because the build phase now feels like winning at a casino while getting unlimited free martinis. The feature ship (how to get them onto a server is someone else’s problem) the codebase grows, the agent agrees with everything. Meanwhile the only thing that actually matters, which is whether anyone wants this, goes unanswered.

It’s the founder version of Wilson the volleyball. In your unwashed isolation, you’ve made a friend, you’ve named the friend, and the friend agrees with everything you say. The problem is that the friend is also the boat, the island, and the ocean, and you haven’t actually left the house yet.

To be fair, I am not above this myself, by the way. I have, in my time, built things that nobody asked for and gotten weirdly emotional about them, but the difference is that mine were three hundred lines of code over a weekend, not almost a million lines of code over the better part of a year, which is sort of the whole point. No one asked for my William S. Burroughs poetry writing twitter bot, but I loved it anyway.

Codebases don’t love you back

Code you wrote yourself CAN hard to let go of, and code you wrote with an AI, when you are not a trad-coder, seems to be way harder. Experienced engineers seem to be more than happy to throw away AI code or rebuild it in a heartbeat. But I can see how even if you didn’t actually write the lines, but the shape of the thing is yours (you named the characters, you picked the voice, you spent months in a chair with this thing as your only collaborator), and you have feelings about it.

But one day, if you’re lucky, and it does have SOME product market fit, a real engineering team is going to need to look at your masterpiece. And they are not going to share those feelings. They’re going to tell you, as gently as they can manage, that most of it has to go. Not because they’re mean (they might actually be mean), but because almost a million lines of AI-generated code, written by one person, in one tool, with no architectural review, is never maintainable, almost guaranteed to not be secure, and almost never going to scale past the “prototype” it currently is.

So what should you actually do?

I mean, I already told you… Build the smallest thing you can, then show it to ten strangers and actually listen to them. Throw away half of what you built and build a slightly different smallest thing, and repeat until one of those things is real. Keep your runway reserved for the moment you realize you were WAY off about something important, because, like, you will be, and that moment is what your runway is for.

Use AI tools, because they are legit amazing. But treat them like a coffee machine (fast, useful, no opinions of their own), not like a co-founder or worse, a slot machine. Co-founders are supposed to tell you no, slot machines whisper “just one more hit baby!”