The user you're building for doesn't exist
???? Hey there and thanks for reading. Each week I share tips and tactics that help software developers and teams create more successful software projects. Get the latest issue of the Build It Better newsletter in your inbox by subscribing today.
In this week's email we'll be covering:
The user you're building for doesn't exist
Most of us are familiar with user stories that follow this format:
As a commenter (persona), I want to see all the comments on a post (action), so that I can reply to them (outcome).
Despite how much we rely on them, it's easy to forget that user stories are imaginary. They're based on assumptions about a hypothetical user persona and set of actions and don't usually give any context.
If we look at the previous story closely we'll notice that:
Stories like this force us to build a specific set of functionality for an imaginary user that no one agrees on.
Then late in the project we usually realize we're building the wrong thing or for the wrong user.
This leads to wasted product and engineering effort and eventually worse software that no one uses.
Instead of taking user stories at face value along with all their assumptions, we can shift to a better format that focuses on the situation, motivation, and context we're trying to solve.
Here's a user story template that does that:
When <situation happens>, I want to <motivation>, so I can <outcome with context>.
To implement it use the following process:
Compare the original version of the story with the final revised version.
The revised version is more useful because it gives context, gives shared understanding, yet isn't prescriptive on what to build.
领英推荐
What do the best software developers and teams have in common?
They know how to make the right choices so they can ship successful software.
Right now you're reading a past issue of the?Build It Better?newsletter.
I release a NEW issue like this every Wednesday.
Join other developers from companies like Dropbox, Spotify, MongoDb, Capital One, and Automattic who read Build It Better weekly.
Subscribe today to get the latest issue first.
If you build it they will not come
Thanks to modern tech culture we often take it for granted that once we build something it will be a hit and "change the world".
But if you build it they will not come.
How do we end up building something no one uses?
More often than not, we deal with it by adding more features in the hopes it'll be enough, we pivot to building something completely different, or we give up altogether.
In the end, we're left with little to no traction, a meandering product roadmap, unused code paths, piles of unnecessary tech debt, and a lack of confidence.
Building something is the easy part. Getting someone to use it is much harder...
To be continued...
You can find the rest of this issue on the Build It Better website.
Want the latest issues delivered to your inbox every Wednesday? Subscribe to the Build It Better newsletter.?
Technical Product Management | Sofico
1 年Thank you for sharing your thoughts on user stories Jonas Fleur-Aime I agree that providing context and shared understanding is crucial for valuable software development, and your proposed format aims to achieve this effectively. However, I believe the original format can also achieve this when using well-defined personas like 'Ben the Busy Professional.' Instead of referring to a role executing an action, we should focus on real types of users, providing context on their goals, needs, and challenges. For instance, 'Ben the Busy Professional' serves as a more meaningful persona compared to just 'commenter.' I also believe that user stories can highlight what needs to be built without specifying how to build it, allowing the development team the freedom to find the best solutions. The following revised user story using the original user story format encapsulates the user’s goal and the benefit of the feature concisely and effectively. My revised user story: 'As Ben the Busy Professional, I want to engage with the most relevant comments, so that I can join the conversation” WDYT?
Software Engineering Leader / Builder / Startup Advisor
1 年Links I mention in the full article: - Denis ?ahuk's post on The Discomfort of Agility: https://craftingtechteams.substack.com/p/the-discomfort-of-agility - Caleb Mellas' post on Dealing with Imposter Syndrome: https://levelupsoftwareengineering.substack.com/p/how-to-deal-with-imposter-syndrome - Leemay Nassery on how to turn tech debt into tech wealth: https://increment.com/planning/reframing-tech-debt/ - Rob Walling's podcast episode on why you shouldn't rely on luck: https://www.startupsfortherestofus.com/episodes/episode-670-relying-on-luck-avoiding-burnout-and-bad-player-vs-bad-instrument-a-rob-solo-adventure
Engineering @ Olo | Author of Level Up Software Engineering Newsletter ??
1 年I enjoyed reading your article, Jonas Fleur-Aime. I couldn’t see which post of my you were linking to, but I’m glad you’ve been finding my content helpful!
Stop firefighting. Start leading. I help engineering leaders become strategic technologists that build teams who ship on time and without stress. Engineering Expert ? Coach ? XPer ? SuperDad? ? Author ? Speaker
1 年The hard truth of our business is that for every useful feature you have to develop 20 that aren't. This doesn't mean our process is flawed. It means are assumptions about the user and market are flawed. This flaw is by design. The problems arise from us not being comfortable with this truth and we assume our assumption (or in tech terms—a "model" of our user) is a real one. Thank you for the mention Jonas.