<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="https://www.w3.org/2005/Atom">
  <channel>
    <title>Pete Roome</title>
    <description>Writing about building products with AI, from the inside.</description>
    <link>https://peteroome.com</link>
    <atom:link href="https://peteroome.com/feed.xml" rel="self" type="application/rss+xml" />
    
      <item>
        <title>Stop saying "vibe coding"</title>
        <description>&lt;p&gt;In February 2025, Andrej Karpathy &lt;a href=&quot;https://x.com/karpathy/status/1886192184808149383&quot;&gt;posted a tweet&lt;/a&gt; about a new way of working he called “vibe coding.” Accept All, don’t read the diffs, copy-paste errors back in and hope for the best. He meant it for throwaway weekend projects. He later described it as “a shower of thoughts throwaway tweet.”&lt;/p&gt;

&lt;p&gt;Then the term escaped. Within months it was applied to everything — careful, test-driven AI-assisted engineering lumped in with reckless prompt-and-pray prototyping. By November it was &lt;a href=&quot;https://www.cnn.com/2025/11/06/tech/vibe-coding-collins-word-year-scli-intl&quot;&gt;Collins Dictionary’s Word of the Year&lt;/a&gt;. And somewhere along the way, it became a way to dismiss people.&lt;/p&gt;

&lt;p&gt;I’ve watched “vibe coding” turn into shorthand for “not a real engineer.” A label to make anyone using AI tools to build something feel lesser — especially if they don’t have a computer science degree. &lt;a href=&quot;https://www.techspot.com/news/111468-openclaw-creator-vibe-coding-slur-against-ai-assisted.html&quot;&gt;Peter Steinberger called it a slur&lt;/a&gt; on the Lex Fridman podcast. &lt;a href=&quot;https://www.klover.ai/andrew-ng-pushes-back-ai-vibe-coding-hard-work-not-hype/&quot;&gt;Andrew Ng said the name was misleading&lt;/a&gt;. Karpathy himself &lt;a href=&quot;https://thenewstack.io/vibe-coding-is-passe/&quot;&gt;retired the term&lt;/a&gt; after exactly one year, proposing “agentic engineering” instead. The person who coined it doesn’t want it anymore.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.producthunt.com/p/vibecoding/the-state-of-vibe-coding-2025-key-takeaways&quot;&gt;Product Hunt’s 2025 survey&lt;/a&gt; found that 63% of people using AI coding tools aren’t developers. They’re designers, product managers, domain experts, founders. People who understand their customers deeply and can now pair with AI tools to turn that understanding into working software.&lt;/p&gt;

&lt;p&gt;That should be welcomed, not dismissed.&lt;/p&gt;

&lt;p&gt;I run a startup where our automotive expert has decades of knowledge about how parts catalogues actually work. Our product designer understands garage workflows because he’s sat with mechanics and watched them order parts under real pressure. When those people contribute more directly to what we’re building — prototyping ideas, testing hypotheses, building internal tools — the product gets better. Not because they replaced an engineer, but because they brought context no engineer had.&lt;/p&gt;

&lt;p&gt;The research backs this up. &lt;a href=&quot;https://www.bcg.com/publications/2018/how-diverse-leadership-teams-boost-innovation&quot;&gt;Boston Consulting Group found&lt;/a&gt; that companies with diverse management teams generate 19% higher revenue from innovation. &lt;a href=&quot;https://www.mckinsey.com/featured-insights/diversity-and-inclusion/diversity-wins-how-inclusion-matters&quot;&gt;McKinsey’s research across 1,000+ companies&lt;/a&gt; showed organisations in the top quartile for diversity were 39% more profitable. &lt;a href=&quot;https://hbr.org/2016/11/why-diverse-teams-are-smarter&quot;&gt;Harvard Business Review reported&lt;/a&gt; that cognitively diverse teams solve problems faster and consider more solutions. Calling someone’s contribution “vibe coding” because they aren’t a traditional engineer doesn’t protect quality. It keeps good ideas locked in people’s heads.&lt;/p&gt;

&lt;p&gt;The whole point of a cross-functional team is that different people see different things. Engineers bring technical rigour and years of hard-won lessons from maintaining production code — they know what breaks at scale, what’s expensive to change later, what looks simple but isn’t. Designers bring heuristics and deep customer insight from watching real people use the product — they’ve seen where users get stuck, where they give up, where they find workarounds nobody planned for. Commercial stakeholders keep us honest about business constraints — what we can actually charge for, what the contract requires, what the timeline looks like. And domain experts bring industry knowledge and on-the-ground reality that means we’re building for how things actually work, not how we imagine they work.&lt;/p&gt;

&lt;p&gt;None of those perspectives live in the code. They live in conversations. AI tools don’t change that. They just mean more people can act on what comes out of those conversations.&lt;/p&gt;

&lt;p&gt;But more people building doesn’t mean everyone building alone.&lt;/p&gt;

&lt;p&gt;I’ve seen it happen. Someone picks up a ticket, builds the thing in isolation, shows it to the team, and the solution isn’t right. Back to the drawing board. Wasted time and energy regardless of whether you wrote the code by hand or prompted it. Melissa Perri called this &lt;a href=&quot;https://www.oreilly.com/library/view/escaping-the-build/9781491973783/&quot;&gt;the Build Trap&lt;/a&gt; — organisations that measure success by shipping features rather than solving customer problems. AI tools make it worse because they compress the time between “I have an idea” and “I have a working prototype” to almost nothing. The conversations before building — about constraints, edge cases, what we tried before, what the customer actually said — those matter more than ever now. The speed of execution has gone up. The importance of knowing what to build hasn’t changed.&lt;/p&gt;

&lt;p&gt;And quality is still on you. “I used AI” isn’t an excuse for not understanding what you shipped. The tools actually make that easier. Ask Claude Code to explain every decision. Review screenshots, check API outputs, write tests, ask for feedback. Automate parts of the quality process as you learn the codebase. The responsibility shifts from “can you write this?” to “do you understand this, and should it exist?”&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://simonwillison.net/2025/Mar/19/vibe-coding/&quot;&gt;Simon Willison’s rule&lt;/a&gt; is a good one: don’t commit code you couldn’t explain to someone else. &lt;a href=&quot;https://tidyfirst.substack.com/p/augmented-coding-beyond-the-vibes&quot;&gt;Kent Beck coined “augmented coding”&lt;/a&gt; as the disciplined middle ground. &lt;a href=&quot;https://addyo.substack.com/p/vibe-coding-is-not-the-same-as-ai&quot;&gt;Addy Osmani argued&lt;/a&gt; that conflating vibe coding with AI-assisted engineering devalues the discipline entirely. These are all useful frames.&lt;/p&gt;

&lt;p&gt;But I think the fix is simpler than finding the right two-word replacement. We already have a word for what’s happening. It’s building.&lt;/p&gt;

&lt;p&gt;When a product designer prototypes a feature because they’ve spent weeks watching users struggle with the current one — that’s building. When a domain expert creates an internal tool that saves their team hours — that’s building. When an engineer ships a complex system with AI writing 80% of the first draft — that’s also building. The tool doesn’t define the work. The understanding does.&lt;/p&gt;

&lt;p&gt;What I’d rather see is teams where everyone can contribute to building, where conversations happen before code gets written, and where quality is everyone’s responsibility regardless of how the code got there. That already has a name. It’s just good product development.&lt;/p&gt;

&lt;p&gt;Karpathy’s tweet was a year ago. The term has done enough damage. Let it go.&lt;/p&gt;
</description>
        <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
        <link>https://peteroome.com/2026/03/01/stop-saying-vibe-coding/</link>
        <guid isPermaLink="true">https://peteroome.com/2026/03/01/stop-saying-vibe-coding/</guid>
      </item>
    
      <item>
        <title>A CTO who builds again</title>
        <description>&lt;p&gt;Last month I built an internal tool that uses LLMs to map vehicle specifications to parts catalogue codes. It takes a vehicle registration, runs it through a few layers of logic, and works out which variant of a brake pad or oil filter fits. Our automotive domain expert does this manually - it’s the gold standard that we hold the automation that we build to.&lt;/p&gt;

&lt;p&gt;But, I was curious if an LLM could speed up the process, while maintaining accuracy. So I gave it a go over a weekend. It’s rough, but it works well enough that we could some of it daily, confirming and correcting mappings that might take months to get through by hand. Each confirmed mapping makes the system a bit better at the next one.&lt;/p&gt;

&lt;p&gt;The thing is, I built it using AI tools. I couldn’t have built it from scratch anymore.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;I was a software engineer for twelve years. Started at a digital agency in Norwich, spent a decade building things. I was good at it — not the best in the room, but I understood systems well enough to make sound decisions under pressure.&lt;/p&gt;

&lt;p&gt;Then I moved into product. Eight years of it. Wonderbly, Vinterior, Cazoo. By the time I co-founded Carpata as CTO, the muscle memory of writing code was gone. I could still talk about architecture, debate trade-offs, review technical proposals. But I couldn’t sit down and build the thing. One of my first moves at Carpata was hiring a lead engineer, and part of the reason was that I didn’t trust myself to write the code that mattered.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;There’s an obvious question here: should a startup CTO be coding at all?&lt;/p&gt;

&lt;p&gt;It depends. My context is a team of five, onboarding our first paying customers and finding product market fit. On any given day I’m hiring, aligning the team, talking to clients, managing IT, reviewing commercial priorities and updating our roadmap. Code is one part of a full day. The difference is that it’s now a part at all.&lt;/p&gt;

&lt;p&gt;Before AI tools, picking up a technical task meant rebuilding the context in my head first. The codebase, the data model, the edge cases. That could take hours, and in a day full of meetings and interruptions it was rarely worth starting. So I didn’t.&lt;/p&gt;

&lt;p&gt;What changed is where the context lives. I keep everything in local markdown files - product decisions, technical context, domain knowledge, customer feedback. When I want to work on something technical, I prime Claude Code with the relevant files and we pick up where we left off. The context is in the documents, not in my head.&lt;/p&gt;

&lt;p&gt;That shift matters to me more than the coding part.&lt;/p&gt;

&lt;p&gt;I’m autistic. Context-switching has always been hard for me. If someone interrupted me while I was deep in a problem I’d get genuinely frustrated. Not because the interruption wasn’t valid, but because the mental model I’d spent an hour building had just collapsed, and I’d have to rebuild it from scratch.&lt;/p&gt;

&lt;p&gt;Now that model lives in files. I can have a side conversation, step away for a call, deal with a hiring issue, and come back to the technical work without losing the thread. Claude picks up the context. I don’t have to hold it all in my head anymore.&lt;/p&gt;

&lt;p&gt;The flip side is that I can now be hyper-focused for longer (which has pros and cons), and on multiple things at once. On a good day I’ll have two or three instances of Claude Code running — one building a proof of concept for a new feature, another synthesising customer feedback from the last week’s Granola transcripts, another running data analysis on product usage. The only thing holding me back is a MacBook with 8GB of RAM that wasn’t designed for this.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;AI tools changed what’s possible for me.&lt;/p&gt;

&lt;p&gt;I started with Cursor, moved to Claude Code, and the bottleneck shifted. The frameworks I didn’t know, the syntax I’d forgotten, the library quirks I’d never learned — none of that mattered anymore. What matters is understanding customer problems, having a team of experts to figure out the right thing to build and knowing what good looks like. Twenty years of building things had given me that, even if eight years of not building things had taken away the ability to express it in code.&lt;/p&gt;

&lt;p&gt;The barriers to trying something have disappeared, it’s now easier than ever for someone to test an idea and to validate if it solves a problem.&lt;/p&gt;

&lt;p&gt;My lead engineer is a much better engineer than I ever will be. I still lean on him and my team for architectural direction and feedback generally. But the gap between understanding a problem and being able to ship a working solution has got a lot smaller. For a CTO at a startup with five people, that matters.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Coding is actually the smaller part of how these tools have changed my work. My setup right now:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Granola&lt;/strong&gt; — captures meeting notes automatically and syncs them into Obsidian. Every client call, candidate interview, team standup becomes searchable context I can feed into other tools. Six months of meeting notes and conversations compound in ways I didn’t anticipate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Obsidian&lt;/strong&gt; — my product brain. Every customer conversation, technical decision, product hypothesis, and domain insight lives here in markdown. It’s what makes everything else work. When I prime Claude Code with a folder of notes, it has the same context I do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notion&lt;/strong&gt; — shared documentation and our kanban. Where the team aligns on what we’re building and why.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Code&lt;/strong&gt; — for building features, debugging, exploring technical approaches, drafting technical documents. But also for product strategy, structuring hiring briefs, analysing customer data. It’s my default thinking partner for nearly everything.&lt;/p&gt;

&lt;p&gt;The pattern is the same whether I’m writing code, preparing for an investor update, working through a hiring pipeline, or pulling themes out of customer conversations. I think in problems and context. The tools do the rest.&lt;/p&gt;

&lt;p&gt;I’ll write more about the setup and how these connect in practice — there’s a whole post in that. The short version is that the tools reward experience. The more you know about what you’re trying to build, the better the output. Twenty years of building things wasn’t wasted by eight years of not building them. It was compounding.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;I know some people would call this vibe coding. I’m going to write about why that term needs to go. But that’s for next time.&lt;/p&gt;

&lt;p&gt;For now: I’m a CTO who builds again. Not the way I used to. But in a way that allows me to contribute to our engineering while doing everything else a CTO does.&lt;/p&gt;
</description>
        <pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate>
        <link>https://peteroome.com/2026/02/27/a-cto-who-codes-again/</link>
        <guid isPermaLink="true">https://peteroome.com/2026/02/27/a-cto-who-codes-again/</guid>
      </item>
    
      <item>
        <title>A Product Managers system for getting shit done</title>
        <description>&lt;p&gt;As a product manager, not only do I have to get shit done, but I also have to get the right shit done. As my seniority and responsibilities have increased, it’s become more and more important for me to build a system for managing my workload.&lt;/p&gt;

&lt;p&gt;The questions I ask myself daily are:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;What do I need to get done?&lt;/li&gt;
  &lt;li&gt;What’s the most important thing to do?&lt;/li&gt;
  &lt;li&gt;What work am I waiting on from others?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Today I’d like to introduce you to the To-do list template that I’ve built in &lt;a href=&quot;https://notion.so/&quot;&gt;Notion&lt;/a&gt; for managing my personal workload at &lt;a href=&quot;https://www.cazoo.co.uk/&quot;&gt;Cazoo&lt;/a&gt; as a Lead Product Manager.&lt;/p&gt;

&lt;h2 id=&quot;to-do-lists-and-organisation&quot;&gt;To-do lists and organisation&lt;/h2&gt;

&lt;p&gt;Early on in my career, a stream of consciousness list in a notepad (digital or analogue) would suffice when it came to organising my workload. However, as my role has changed I’ve needed to capture more notes and learn to be more intentional about what I pick and choose to work on, to maximise my impact. The fact of the matter is, there are more things to do than there are hours in the week - so it’s crucial for me to be critical of the work I do and don’t prioritise.&lt;/p&gt;

&lt;p&gt;Today, I use a digital To-do list. I’ve tried and tested a number of different systems over the years before getting to where I am today - with my own template and framework that best suits my needs in my current role.&lt;/p&gt;

&lt;p&gt;Upgrading to digital note-taking was a no-brainer for me years ago when full-text search became reliable. Firstly, I could avoid having to re-type my notes into my laptop and, secondly, I could search for keywords to pull up notes I knew I’d taken but couldn’t remember where I’d stored them.&lt;/p&gt;

&lt;p&gt;In the last two years, with the speed of &lt;a href=&quot;https://www.cazoo.co.uk/&quot;&gt;Cazoo’s&lt;/a&gt; growth, I’ve had to evolve my system further to keep up.&lt;/p&gt;

&lt;h2 id=&quot;notion-user&quot;&gt;Notion user&lt;/h2&gt;

&lt;p&gt;Internally at Cazoo, we use &lt;a href=&quot;https://notion.so/&quot;&gt;Notion&lt;/a&gt; for a lot of our documentation and it naturally became the place for me to store and manage my own workload. I love Notion’s flexibility.&lt;/p&gt;

&lt;p&gt;As I grew more experienced using Notion I became aware of its powers and capabilities and have since built a few “widgets”, including my To-do list, to optimise processes. &lt;a href=&quot;https://www.notion.so/help/guides/creating-a-database&quot;&gt;Notion’s Database tool&lt;/a&gt; alone is invaluable when it comes to building out your own documentation process. Layer on top of that “&lt;a href=&quot;https://www.notion.so/help/guides/using-database-views&quot;&gt;Database Views&lt;/a&gt;” and you can build some pretty powerful “tools”. If you haven’t tried it, I’d recommend giving it a go; for anything from Roadmaps and Launch Plans to organising Customer Insights and OKR planning.&lt;/p&gt;

&lt;p&gt;So without further ado, here’s what I’ve built…&lt;/p&gt;

&lt;h2 id=&quot;what-is-it&quot;&gt;What is it?&lt;/h2&gt;

&lt;p&gt;My To-do list looks and functions a lot like a Kanban board, similar to the Trello or Jira board setups a lot of technology teams use to manage their day to day work. I log items on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;To-do&lt;/code&gt; column before picking them up and moving them across the board as they reach each stage of completeness. I do however have a few optimisations that I will walk you through.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022-04-30-a-product-managers-system-for-getting-shit-done/to-do-list-to-get-shit-done.png&quot; alt=&quot;My To-do list tool works a lot like a kanban board&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;ongoing-meetings&quot;&gt;Ongoing meetings&lt;/h2&gt;

&lt;p&gt;Each week I have a number of ongoing meetings that I attend, for example, 1:1s or steering groups for bigger cross-team initiatives. I have a column on my board for each of these.&lt;/p&gt;

&lt;p&gt;When the meeting is first scheduled, I create a new entry for the meeting on the board using a template I’ve set up. This is accessible via the arrow on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;New&lt;/code&gt; button at the top right of the board.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022-04-30-a-product-managers-system-for-getting-shit-done/notion-template-for-a-new-meeting.png&quot; alt=&quot;Quickly create a new ongoing meeting with a template&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I give the meeting a title and set a similar Meeting/Initiative to help display and organise sub-actions later.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022-04-30-a-product-managers-system-for-getting-shit-done/setting-a-meeting-initiative.png&quot; alt=&quot;Adding a title and initiative name to the new meeting&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As I attend each meeting, I open the card to take notes and log actions.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022-04-30-a-product-managers-system-for-getting-shit-done/meeting-actions-and-notes.png&quot; alt=&quot;The database view I can see within a meeting, and the notes section too&quot; /&gt;&lt;/p&gt;

&lt;p&gt;By default, an ongoing meeting item has a shared database view of the entire to-do list embedded within it. I apply the new Meeting/initiative tag I’ve just set up (e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Product Update&lt;/code&gt; as a filter), to refine the actions I see in this view.&lt;/p&gt;

&lt;p&gt;In doing this I have oversight on what I need to do, what I’ve done and, also critically, what I am expecting from other people too. That’s right, I can log actions for others. This part is particularly useful for me to follow up on at the next meeting - especially 1:1s. It helps me to keep people accountable to the things that they said they’ll do. Paranoid? Perhaps! But it keeps me really organised.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022-04-30-a-product-managers-system-for-getting-shit-done/filtering-meeting-actions.png&quot; alt=&quot;Filtering the database view to see only actions relevant to the ongoing meeting&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At first, after applying these filters, the list will be empty. I can now add items during discussions in the meeting and not only will they appear here the next time I attend the meeting, but they’ll appear on the main view of my board ready to be actioned too.&lt;/p&gt;

&lt;p&gt;I also have a “Not done” and “Completed” view for this part, so I can go back to anything previously completed if needed.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022-04-30-a-product-managers-system-for-getting-shit-done/actions-within-a-meeting.png&quot; alt=&quot;Not done actions on the database view in the ongoing meeting&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;inboxtriage&quot;&gt;Inbox/triage&lt;/h2&gt;

&lt;p&gt;A typical day can often involve a number of meetings, back to back - each with multiple actions to come from them. My strategy here is to log the actions within the context of each meeting on my board immediately so I don’t have to remember anything. It’s therefore important that I later review the overall list, prioritise and double-check if I’m the right person to complete the logged action or if I should hand it off. This is where the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Inbox&lt;/code&gt; comes in handy.&lt;/p&gt;

&lt;p&gt;This view of the actions is a simple table view. It shows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Incomplete actions&lt;/li&gt;
  &lt;li&gt;Actions not yet triaged&lt;/li&gt;
  &lt;li&gt;Actions not already assigned to someone else&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From here, I can amend my notes, prioritise the actions and validate that they should be on my To-do list - it’s the first line of defence for my time.&lt;/p&gt;

&lt;p&gt;As I review each action, I mark it as triaged and it disappears from the table.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022-04-30-a-product-managers-system-for-getting-shit-done/actions-to-triage.png&quot; alt=&quot;How actions appear in the Inbox view of my system&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;me-vs-them&quot;&gt;Me vs Them&lt;/h2&gt;

&lt;p&gt;You might have gathered by this point, I don’t just log actions for myself, but also for others too, where it directly impacts my work.&lt;/p&gt;

&lt;p&gt;For each item, I have the ability to log the action for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Me&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Them&lt;/code&gt;. Due to the fact that I’m note-taking within the context of the ongoing 1:1 meeting, it’s always obvious who &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Them&lt;/code&gt; is.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022-04-30-a-product-managers-system-for-getting-shit-done/assigning-actions.png&quot; alt=&quot;Assigning actions to Me or Them&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;prioritisation-leverage-neutral-and-feedback&quot;&gt;Prioritisation: Leverage, Neutral and Feedback&lt;/h2&gt;

&lt;p&gt;Prioritisation is an essential part of a Product Managers life. Every day there is something to prioritise and this includes my own To-do actions.&lt;/p&gt;

&lt;p&gt;I keep it simple, with three options: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Leverage&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Neutral&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Feedback&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Leverage&lt;/code&gt;: The task will have an outsized, multiplier impact. For example, it could be related to hiring, unblocking my entire team from delivering a specific feature or building out my product strategy.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Neutral&lt;/code&gt;: Relates to a standard task that needs to be done, but won’t multiply mine or my team’s impact. For example: reading a document or updating a forecast.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Feedback&lt;/code&gt;: I strongly believe in frequent and timely feedback. It’s therefore a high priority for me if something comes up that I need to feedback on; either to my team or an individual.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022-04-30-a-product-managers-system-for-getting-shit-done/assigning-action-priority.png&quot; alt=&quot;Assigning a priority to actions&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;size-rocks-pebbles-and-sand&quot;&gt;Size: Rocks, Pebbles and Sand&lt;/h2&gt;

&lt;p&gt;When entering or triaging items on my To-do list, I find it useful to prioritise by size/effort too. Again I try to keep it simple by using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Rocks&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Pebbles&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Sand&lt;/code&gt; approach.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The big rocks are your major goals and strategic initiatives, the pebbles are shorter-term goals of lesser importance, and the sand is minor tasks that aren’t essential to your success - &lt;em&gt;&lt;a href=&quot;https://www.businessinsider.com/time-management-productivity-rocks-pebbles-sand-2019-2?r=US&amp;amp;IR=T&quot;&gt;An executive coach uses rocks, pebbles, and sand to explain time management to new CEOs&lt;/a&gt; by Mark Abadi&lt;/em&gt;&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;In planning my day I might line up three tasks to tackle: a combination of a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Rock&lt;/code&gt; and perhaps two &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Pebble&lt;/code&gt; items. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Sand&lt;/code&gt; is often small tasks that will crop up during the course of the day that need to be done there and then, but can also be deprioritised easily too.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2022-04-30-a-product-managers-system-for-getting-shit-done/assigning-action-size.png&quot; alt=&quot;Assigning a size to each action&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;more-intentional-about-planning-my-day&quot;&gt;More intentional about planning my day&lt;/h2&gt;

&lt;p&gt;Using this system, I’ve got into the habit of being more intentional about planning my day. The day before I will pick out the two or three items I want to achieve from my list in order to maximise my impact. This often means I ignore everything else, including those things that come up during the day (unless critical). I order the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;To-Do&lt;/code&gt; column ascending by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Prioritisation&lt;/code&gt; and descending by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Size&lt;/code&gt;. Therefore if by chance I have a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Leverage&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Sand&lt;/code&gt; ticket - it’s at the top of the list and the first thing I prioritise - simple, impactful wins 🎉.&lt;/p&gt;

&lt;p&gt;A side effect of this is that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Neutral&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Rocks&lt;/code&gt; might sit around on my list for a while. I don’t ignore these, but I will monitor them and check in over the following few days to re-validate their associated deadline or importance to ensure I’ve understood them correctly. The best case scenario; a short follow up conversation reveals that I don’t actually need to complete the task.&lt;/p&gt;

&lt;h2 id=&quot;signals-days-in-list&quot;&gt;Signals: days in list&lt;/h2&gt;

&lt;p&gt;As I mentioned at the start, there are typically more actions than my time allows. From time to time I will clear out the tasks that just haven’t cut it in terms of priority. One signal I use to determine which tasks these are is the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Days in list&lt;/code&gt; calculation that’s on each item. I log the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Created date&lt;/code&gt; for every action and have a &lt;a href=&quot;https://www.notion.so/help/formulas&quot;&gt;Notion formula&lt;/a&gt; set up that simply counts the days since creation until today. The higher the number the less likely it is that the item will get done, in all honesty. However, I don’t delete these tasks but move them to an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Archive&lt;/code&gt; state instead.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;There it is, my system for organising and prioritising my workload.&lt;/p&gt;

&lt;p&gt;If you have any feedback, suggestions or questions, please don’t hesitate to drop a comment here or &lt;a href=&quot;https://twitter.com/zoltarSpeaks&quot;&gt;reach out to me on Twitter @zoltarSpeaks&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 30 Apr 2022 00:00:00 +0000</pubDate>
        <link>https://peteroome.com/2022/04/30/a-product-managers-system-for-getting-shit-done/</link>
        <guid isPermaLink="true">https://peteroome.com/2022/04/30/a-product-managers-system-for-getting-shit-done/</guid>
      </item>
    
      <item>
        <title>Automating my family’s grocery shopping to reduce costs and waste: user testing, emailing recipes and Task Rabbit</title>
        <description>&lt;p&gt;Hello 👋, I’m Pete and I’ve been working on a side-project to 100% automate my family’s grocery shopping. Here is what I’ve been working on in the last few weeks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you would like to find out more or stay up to date with my progress, send me an email and I’ll keep you in the loop: &lt;a href=&quot;mailto:pete.roome@gmail.com&quot;&gt;pete.roome@gmail.com&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I will quickly get to the changes I have made in the last few weeks.&lt;/p&gt;

&lt;h3 id=&quot;-changes&quot;&gt;📝 Changes&lt;/h3&gt;

&lt;p&gt;✅ Added a new “Grocery tasks” menu to provide two controls:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Generate ingredients - to generate recipes and their ingredients&lt;/li&gt;
  &lt;li&gt;Email recipes - to email yourself a list of the recipes you have planned for the week, for future you 👨‍🎤&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-04-28-automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/grocery-tasks.png&quot; alt=&quot;Grocery tasks&quot; /&gt;&lt;/p&gt;

&lt;p&gt;✅ Added three more recipes to the central set on the “Recipes” sheet&lt;/p&gt;

&lt;p&gt;✅ “Planning” sheet - removed to simplify the overall spreadsheet&lt;/p&gt;

&lt;p&gt;In addition to changes I have made to the spreadsheet, there is also now some accompanying information:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.notion.so/Household-grocery-list-documentation-32d2c8a4d2624bf28419d1052c29bf20&quot;&gt;Documentation&lt;/a&gt; - written up to make it easier for others to understand how to use the spreadsheet&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.notion.so/Release-notes-056a54c50ec14b23bf83669e16e050e9&quot;&gt;Release notes&lt;/a&gt; - documented for historical reference and for those interested in reading what has changed over the weeks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Continue reading for more detail on all of this…&lt;/p&gt;

&lt;h2 id=&quot;-err-what-is-this-quick-recap&quot;&gt;🤔 Err what is this? Quick recap…&lt;/h2&gt;

&lt;p&gt;For a couple of months, my family and I have been working towards the goal of 100% automating our grocery shopping.&lt;/p&gt;

&lt;p&gt;We’re doing this to:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Save time - simplify our lives&lt;/li&gt;
  &lt;li&gt;Save money - reduce our grocery spend&lt;/li&gt;
  &lt;li&gt;Increase the variety of our meals&lt;/li&gt;
  &lt;li&gt;Reduce food waste&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can &lt;a href=&quot;https://www.peteroome.com/2020/02/29/automating-our-weekly-groceries-version-1.html&quot;&gt;read my original post that goes into more detail about this here&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;lockdown-cooking&quot;&gt;Lockdown cooking&lt;/h2&gt;

&lt;p&gt;So, another month has passed and here we are, still shopping and cooking in “lockdown”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-04-28-automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/Kidney-Bean-Chili-with-Melty-Cheddar-Cornbread-Topping.jpg&quot; alt=&quot;Kidney Bean Chili with Melty Cheddar &amp;amp; Cornbread Topping&quot; /&gt;
&lt;em&gt;Kidney Bean Chili with Melty Cheddar &amp;amp; Cornbread Topping&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-04-28-automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/Kale-pesto.jpg&quot; alt=&quot;Kale Pesto&quot; /&gt;
&lt;em&gt;Kale pesto&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-04-28-automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/Hashbrown-and-baked-eggs.jpg&quot; alt=&quot;Hashbrown and baked eggs&quot; /&gt;
&lt;em&gt;Hashbrown and baked eggs&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My family and I are still experimenting with our grocery habits, both planning and buying-wise. The difference is that the availability of delivery slots online are few and far between. We have managed two online orders in the last month; one from Ocado and one from Morrisons. In addition, we have visited the store twice - something we were trying to avoid, as part of reducing the time we spent grocery shopping.&lt;/p&gt;

&lt;p&gt;However, shopping in-store (a big supermarket as opposed to a small local store) wasn’t as bad as I expected. The first time I queued for 40 minutes to get in, on my lunch break. The second time I went at 8 pm on a Monday night and walked straight in. The only problem was that a lot of the fresh produce had run out.&lt;/p&gt;

&lt;p&gt;Either way, we are in no position to talk about how annoying the lack of online delivery slots is. My family and I are fit, healthy and perfectly capable of visiting the store. There are people in far greater need of those online delivery slots than we are.&lt;/p&gt;

&lt;p&gt;With regards to this side-project, I had thought that the lack of online options had put a kibosh on automating our meal-planning and grocery shopping, but I may have been wrong. Giving the problem a little more thought revealed some other options that I will come on to shortly.&lt;/p&gt;

&lt;h2 id=&quot;what-have-we-progressed&quot;&gt;What have we progressed?&lt;/h2&gt;

&lt;h3 id=&quot;-user-testing&quot;&gt;🧪 User testing&lt;/h3&gt;

&lt;p&gt;My wife Jen was the perfect candidate to user test the spreadsheet. Set with the goal of “Doing the family shop for 10 days” (slightly longer than normal due to the lockdown), Jen took to our new tool to see how she fared.&lt;/p&gt;

&lt;p&gt;I provided a light intro into how to use the spreadsheet - &lt;a href=&quot;https://www.notion.so/Household-grocery-list-documentation-32d2c8a4d2624bf28419d1052c29bf20&quot;&gt;what’s covered in the documentation&lt;/a&gt;. With this knowledge, Jen got started, generated a shopping list and reconciled the ingredients with what we had in stock.&lt;/p&gt;

&lt;p&gt;Although the process was relatively smooth, Jen had two really useful pieces of feedback:&lt;/p&gt;

&lt;p&gt;📢 “Sometimes we have one item but the grocery list says we need two - I need a way to input what we already have”.  Wow - something I had previously overlooked but was insightful. 🤔&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-04-28-automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/ingredient-quantities.png&quot; alt=&quot;Ingredient quantities&quot; /&gt;&lt;/p&gt;

&lt;p&gt;📢 “You should group the final grocery list so it’s easier to find the items when you visit the store”. This was great. The tool hadn’t been built for shopping in-store, but this feedback was valid. The tins of black beans will never be in the same aisle as the cilantro. 🤦🏼‍♂️ However, the order of the ingredients makes no difference when ordering online and could, therefore, be a distraction, long-term.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-04-28-automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/grouping-ingredients.png&quot; alt=&quot;Grouping ingredients&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;🦄 &lt;strong&gt;Next step:&lt;/strong&gt; Add a column to enable the user to add the number of ingredients they have in stock, to calculate a more accurate final grocery list.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;-in-life-observations&quot;&gt;🔍 In-life observations&lt;/h3&gt;

&lt;p&gt;I had previously been the person to place our grocery orders using our new tool. However, what I kept noticing was whenever Jen cooked, she would ask for a link to the recipe.&lt;/p&gt;

&lt;p&gt;As a result, we added a feature that allows you to email a list of the generated recipes for your grocery list, to your family so they all know what meals are coming up that week and where to find the recipe.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Skill learnt:&lt;/strong&gt; How to script a Google sheet 🎉&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;-generating-recipes&quot;&gt;🍔 Generating recipes&lt;/h3&gt;

&lt;p&gt;Recipes are driven by an input field that allows the user to enter the number of meals they would like to prep for that shop. However, the problem was that any time a field on the sheet was updated, the randomised list of recipes would refresh - changing your entire grocery list.&lt;/p&gt;

&lt;p&gt;With my new found Google Sheet scripting skills I was able to solve this. I added a new menu to the toolbar, that would automatically generate the recipes for your shop, but only when the user initiated it. This means you can be sure that unless you press the “Generate recipes” your ingredients won’t change. 💪&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-04-28-automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/meal-planning-email.jpg&quot; alt=&quot;Meal planning email&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;-documentation&quot;&gt;📒 Documentation&lt;/h3&gt;

&lt;p&gt;To accompany the Spreadsheet template, &lt;a href=&quot;https://www.notion.so/Household-grocery-list-documentation-32d2c8a4d2624bf28419d1052c29bf20&quot;&gt;I wrote some documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The purists amongst you will point out that a good product shouldn’t need documentation. Typically, I would agree. However, I’m prototyping a no-code solution using a third-party product (Google Sheets) and using that product to do something it wasn’t designed to. My goal is to automate our grocery shopping. Until I validate if that’s possible, I will attempt to use little to no code to build the solution - for speed and simplicity. I, therefore, have a prototype that needs a little documentation to explain how it works - and I’m ok with that.&lt;/p&gt;

&lt;h2 id=&quot;next-steps&quot;&gt;Next steps&lt;/h2&gt;

&lt;p&gt;The last few weeks have been a little off-focus with us unable to place online grocery orders, but it’s forced some creativity regarding other options that are available to us.&lt;/p&gt;

&lt;h3 id=&quot;-task-rabbit&quot;&gt;🐰 Task rabbit?&lt;/h3&gt;

&lt;p&gt;I remembered the platform Task Rabbit existed. Task Rabbit allows you to hire local people, ad-hoc, to help with a task you have. It could be anything from building your Ikea wardrobes to… doing your grocery shopping.&lt;/p&gt;

&lt;p&gt;A quick search revealed a few handy helpers who already had reviews for shopping-related tasks.&lt;/p&gt;

&lt;p&gt;With regards to this project, there are two ways Hassan A. could help.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-04-28-automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/task-rabbit-grocery-shopping-screenshot.png&quot; alt=&quot;Task Rabbit Grocery Shopping Screenshot&quot; /&gt;
&lt;em&gt;People on Task Rabbit who can help with grocery shopping&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Going to the store, picking up the ingredients from our list, pay for them on our behalf and delivering them.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Picking up and delivering a Click &amp;amp; Collect order&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Click &amp;amp; Collect is an online feature some of the UK supermarkets provide that allows you to place your order online and then collect it from the store in person.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As a result, I have updated the flow diagram I created for this project.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-04-28-automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/Grocery_Shopping_Automation_-_Grocery_ordering_process.jpg&quot; alt=&quot;Grocery order process map V2&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;🦄 &lt;em&gt;&lt;strong&gt;Next step:&lt;/strong&gt; Determine if it’s possible to automate ordering groceries using Task Rabbit or a similar platform. Consider either a Click &amp;amp; Collect option if available or a helper to do the shopping from start to finish.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On the face of it, these options don’t look to be the most cost-effective, but I can review that during the research.&lt;/p&gt;

&lt;h2 id=&quot;-to-wrap-up&quot;&gt;🎁 To wrap up&lt;/h2&gt;

&lt;p&gt;I’ve improved the process of generating recipes within our spreadsheet and can now email them for easy reference.&lt;/p&gt;

&lt;p&gt;My next steps and focus for the coming weeks:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Add a column to the spreadsheet to enable the user to add the number of ingredients they have in stock, to calculate a more accurate final grocery list.&lt;/li&gt;
  &lt;li&gt;Determine if it’s possible to automate ordering groceries using Task Rabbit or a similar platform. Consider either a Click &amp;amp; Collect option if available or a helper to do the shopping from start to finish.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for tuning in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you would like to find out more or stay up to date with my progress, send me an email and I’ll keep you in the loop: &lt;a href=&quot;mailto:pete.roome@gmail.com&quot;&gt;pete.roome@gmail.com&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
</description>
        <pubDate>Tue, 28 Apr 2020 00:00:00 +0000</pubDate>
        <link>https://peteroome.com/2020/04/28/automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/</link>
        <guid isPermaLink="true">https://peteroome.com/2020/04/28/automating-my-familys-grocery-shopping-to-reduce-costs-and-waste-user-testing-emailing-recipes-and-task-rabbit/</guid>
      </item>
    
      <item>
        <title>Automating my family’s grocery shopping to reduce costs and waste - Part 2</title>
        <description>&lt;p&gt;&lt;a href=&quot;https://www.peteroome.com/2020/02/29/automating-our-weekly-groceries-version-1.html&quot;&gt;So it’s been almost a month since my first post&lt;/a&gt; about how I am automating my family’s grocery shopping - and a lot has changed in the world. Here we are, comfortably isolated at home, practicing the art of social distancing.&lt;/p&gt;

&lt;p&gt;I’m not too sure how it is around the rest of the World, but the UK has gone bonkers panic buying groceries and household goods. In our small corner of South East London, the shelves in our local supermarkets - big and small - are bare. Fresh produce is like gold dust and the items they do have (the dregs) are limited to one or two per person depending on which store you’re in.&lt;/p&gt;

&lt;p&gt;When constraints like this exist, a glorious thing happens - people get creative. I’ve been trying to embrace the limited resources. Paying close attention to those ingredients we have at the back of the cupboard, we’ve been trying to work out what we can cook and bake that we otherwise wouldn’t think of. This week, we baked a tiny soda bread - our very first - and some sweetcorn fritters too - a lovely brunch.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-03-29-automating-our-weekly-groceries-part-2/soda-bread.jpg&quot; alt=&quot;The tiniest soda bread, ever&quot; /&gt;
&lt;br /&gt;
&lt;em&gt;(Tiny 👨‍🍳) Soda bread&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-03-29-automating-our-weekly-groceries-part-2/sweetcorn-fritters.jpg&quot; alt=&quot;Sweetcorn fritters for brunch&quot; /&gt;
&lt;br /&gt;
&lt;em&gt;Sweetcorn fritters, perfect for brunch&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.peteroome.com/2020/02/29/automating-our-weekly-groceries-version-1.html&quot;&gt;As per my last post&lt;/a&gt;, one of the first steps we took to streamline our grocery shopping was adopting a Just In Time (JIT) approach. This falls down very quickly when the stores have no stock - we’ve just had to lay our hands on what we can get. We took delivery of an online shop just before the pandemic levelled up in terms of seriousness, so we had ingredients for five meals in the house. When the UK Government started to restrict our time outside our homes, our food tactics changed. We managed to string out those five meals we prepped by intermittently choosing frozen food/meals to help make the fresh produce last - and it’s worked. We have ingredients left for a couple more fresh meals before we’ll need to really think about where, when and how we stock up.&lt;/p&gt;

&lt;h2 id=&quot;how-automation-can-help&quot;&gt;How automation can help&lt;/h2&gt;
&lt;p&gt;This got me thinking more about the merits of automating our grocery shopping. Would receiving groceries automatically each week have made people less anxious about running out of food in the midst of the COVID-19 outbreak?&lt;/p&gt;

&lt;p&gt;Without a doubt, in my opinion.&lt;/p&gt;

&lt;p&gt;Panic buying is happening due to the worry of not being able to access certain items (e.g. toilet roll) and because of a potential 100% lock-down / need for the whole family to isolate, preventing them from shopping so regularly - two problems online delivery solves. If fresh groceries were turning up to our doors, like clockwork, the need for any of us to panic buy would disappear. Automation would cut out the human, emotional side of this caused by our own anxiety and ensure there was still enough to go around for everyone.&lt;/p&gt;

&lt;h2 id=&quot;review-of-the-goal&quot;&gt;Review of the goal&lt;/h2&gt;
&lt;p&gt;By way of a quick reminder, I set out to reduce the time my wife and I spend on grocery shopping. We calculated we were probably spending 11 days a year - a mind blowing figure 🤯. In addition to this, we wanted to reduce the amount of food waste in our home, as well as our overall spend on food too.&lt;/p&gt;

&lt;h3 id=&quot;our-goals&quot;&gt;Our goals&lt;/h3&gt;
&lt;ol&gt;
  &lt;li&gt;Zero time spent grocery shopping&lt;/li&gt;
  &lt;li&gt;Zero food waste&lt;/li&gt;
  &lt;li&gt;Save money&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;progress&quot;&gt;Progress…&lt;/h2&gt;
&lt;p&gt;In my &lt;a href=&quot;https://www.peteroome.com/2020/02/29/automating-our-weekly-groceries-version-1.html&quot;&gt;previous post&lt;/a&gt;, I described our JIT process using the &lt;a href=&quot;https://www.mealime.com/&quot;&gt;Mealime&lt;/a&gt; app to help build a grocery list.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-03-29-automating-our-weekly-groceries-part-2/black-bean-burgers.jpg&quot; alt=&quot;Black bean burgers&quot; /&gt;
&lt;br /&gt;
&lt;em&gt;Black bean burgers we prepped and cooked, using &lt;a href=&quot;https://cooking.mealime.com/recipes/black-bean-burgers-avocado-spread-mixed-greens-salad/3332#!/&quot;&gt;Mealime&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There was a reasonable amount of manual work still done to get to a complete grocery list. My next steps were to start removing these steps; primarily, getting the ingredients from &lt;a href=&quot;https://www.mealime.com/&quot;&gt;Mealime&lt;/a&gt; into a spreadsheet via an email picked up by a spreadsheet using &lt;a href=&quot;https://ifttt.com/&quot;&gt;IFTTT&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On reflection this step wasn’t going to provide enough additional value to the process, so I went further.&lt;/p&gt;

&lt;p&gt;My goal changed and I wanted a spreadsheet that would select recipes at random - dependent on how many meals I wanted to prep for - and generate a grocery list.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-03-29-automating-our-weekly-groceries-part-2/grocery-shopping-automation-grocery-ordering-process-before.jpg&quot; alt=&quot;Flow diagram of our grocery ordering process - before working on it&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The steps to achieve this:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Enter the number of meals to prep for (N)&lt;/li&gt;
  &lt;li&gt;Select N recipes&lt;/li&gt;
  &lt;li&gt;Aggregate the ingredients for these recipes into a grocery list&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One feature I was keen to achieve was to make sure ingredients weren’t repeated in my grocery list (step 3), but instead aggregated depending on how many were required. For example, if I had two recipes that needed potatoes, one with two potatoes, the other with three, then my grocery list would show five potatoes, instead of two separate potato entries.&lt;/p&gt;

&lt;h2 id=&quot;how-ive-done-it&quot;&gt;How I’ve done it&lt;/h2&gt;
&lt;p&gt;To achieve this, I’ve modelled recipes in my spreadsheet the same way that I would if I were storing them in a database.&lt;/p&gt;

&lt;p&gt;I have three sheets (database tables?!):&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Recipes&lt;/li&gt;
  &lt;li&gt;Ingredients&lt;/li&gt;
  &lt;li&gt;Quantities&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Using unique ID’s I’m able to randomly select recipes and then lookup the ingredients for those recipes and the quantities too (for the purpose of aggregation).&lt;/p&gt;

&lt;p&gt;I used an &lt;a href=&quot;https://support.google.com/docs/answer/3093275?hl=en-GB&quot;&gt;ArrayFormula&lt;/a&gt; to randomise the recipes returned - this provides my grocery list with some variety. It would be easy to select seven recipes and just reorder them every week - but that would get boring very quickly as a consumer. My spreadsheet now takes an input (how many meals we are planning for) and using the ArrayFormula returns a select from the Recipes sheet I have created.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: We’re currently only prepping dinners. We generally eat porridge for breakfast and have been adding ingredients on an ad-hoc basis to our grocery list for lunches. Supporting other meals is a feature we would love to add in the future.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-03-29-automating-our-weekly-groceries-part-2/Screenshot%202020-03-26%20at%2022.20.11.png&quot; alt=&quot;Modelling recipes across three sheets: Recipes, Ingredients and Quantities&quot; /&gt;
&lt;br /&gt;
&lt;em&gt;Recipes modelled across three sheets: Recipes, Ingredients and Quantities. There is a fourth sheet called Selection that is responsible for randomly selecting recipes from the Recipe sheet and then looking up the ingredients and quantities for those.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-03-29-automating-our-weekly-groceries-part-2/Screenshot%202020-03-26%20at%2022.22.39.png&quot; alt=&quot;An example weekly order sheet&quot; /&gt;
&lt;br /&gt;
&lt;em&gt;An example weekly order sheet - it’s a bit verbose at the moment and should be streamlined to make it simpler for others to use.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-03-29-automating-our-weekly-groceries-part-2/final-grocery-list.png&quot; alt=&quot;A complete grocery list&quot; /&gt;
&lt;br /&gt;
&lt;em&gt;A complete grocery list.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So now all I have to do is add new recipes to my sheet as and when I come across them and my grocery list will at some point contain the ingredients for them - it’s very dynamic.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: To be completely transparent, this still isn’t 100% automated, there is a minor, manual step that I am sure I could resolve in time. Once the grocery list has been generated after inputting the number of meals we’re planning for, I still need to copy and paste the output to the sheet for our order for that week to combine it with the other essentials and extras we plan to order.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;On a weekly basis, with a sheet populated with recipes, the work to generate my grocery list takes 30 seconds. I still spend 10 minutes checking if we already have any of the ingredients on the grocery list before purchasing, but afterwards all that’s left is to place the order.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-03-29-automating-our-weekly-groceries-part-2/grocery-shopping-automation-grocery-ordering-process-after.jpg&quot; alt=&quot;Flow diagram of our grocery ordering process - after working on it&quot; /&gt;
&lt;em&gt;Aspects of the grocery ordering process that I am looking to fix.&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-next&quot;&gt;What next?&lt;/h2&gt;
&lt;p&gt;There are a couple of unknowns and risks with this project still - things that I should address sooner rather than later to ensure it’s possible and viable. These are likely to be the areas of this project that I tackle next. Even if I can get a rough and ready version of this service running from start to finish with only a small amount of input - checking what groceries we have in the house - then I can work on polishing the experience over time.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Placing and paying for the order. How should/could I automate this 100%?
None of the major supermarkets in the UK have APIs for placing orders. Tesco have one for querying products but that’s not very helpful here.  Amazon Fresh might be one option - I’ve never used it - but &lt;a href=&quot;https://forums.developer.amazon.com/questions/60471/amazon-fresh-api.html&quot;&gt;there is a suggestion on their forums that an API might be available&lt;/a&gt;. Other options that come to mind include some kind of webs scraping technology, Amazon’s Mechanical Turk product (again I’ve never used this before so don’t know if it’s suitable at this point) or simply just paying someone to place the order on our behalf. Either way, there are plenty of options to explore here.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-03-29-automating-our-weekly-groceries-part-2/amazon-fresh-api.png&quot; alt=&quot;Amazon Fresh API - possibly?&quot; /&gt;
&lt;em&gt;Amazon Fresh forum&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Unavailable groceries / replacements
It’s quite common in my experience to have at least one replacement item on an online order, if not two or three. What is the best way to manage this, especially if it’s integral to one of our recipes? How important is this?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;what-im-not-focusing-on-right-now&quot;&gt;What I’m not focusing on right now&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Scaling quantities
The current process is only geared towards my family of three; me, my wife and my eight week old daughter - although she doesn’t need too much from the shops these days 👼. Quantities - depending on household size - can be addressed later. This shouldn’t be too tricky now we’ve modelled recipes in our spreadsheet.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Setting a delivery date_time_frequency
We’ve not even considered the ability to stipulate a delivery date, time or frequency. I would like to automate the order part first before thinking about the levers that drive that order.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Cost efficiencies
Without knowing the full cost of automation (depending on the solution I find for placing the order) it’s hard to know what opportunities there will be to reduce costs. They may come from the order process itself or by finding opportunities to save on the actual groceries we are ordering and the recipes as a whole.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;thats-all-for-now-&quot;&gt;That’s all for now ⏱&lt;/h2&gt;
&lt;p&gt;If there’s one thing I know about side-projects (and probably any kind of project), maintaining momentum is key. It’s super easy to get bored of a side-project when you get into the details - the less exciting parts. I don’t feel at present that this little project is getting boring, but I find it helpful to remain conscious of that fact.&lt;/p&gt;

&lt;p&gt;So, with that in mind, I’m aiming to follow up in reasonable time with my progress. In the mean time, if you have any feedback, thoughts or advice, or you would like to test out my system for yourself - don’t hesitate to reach out &lt;a href=&quot;mailto:pete.roome@gmail.com?subject=I%20hate%20grocery%20shopping%20too%E2%80%A6&quot; target=&quot;_blank&quot;&gt;pete.roome@gmail.com&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 29 Mar 2020 00:00:00 +0000</pubDate>
        <link>https://peteroome.com/2020/03/29/automating-our-weekly-groceries-part-2/</link>
        <guid isPermaLink="true">https://peteroome.com/2020/03/29/automating-our-weekly-groceries-part-2/</guid>
      </item>
    
      <item>
        <title>Automating my family's grocery shopping to reduce costs and waste.</title>
        <description>&lt;p&gt;I love food and I love cooking, but I loathe grocery shopping. Deciding what to cook and the time it takes to find the groceries (in-store and online) is painful. Like everyone else I’m kind of busy and would rather spend my spare time with my family and friends. In addition, I casually follow the FIRE (Financial Independence Retire Early) mentality, minimising living costs where possible. I hate waste too - particularly food waste. So I have made it my mission recently to see what I can do to make this weekly chore less expensive, less wasteful and generally simpler.&lt;/p&gt;

&lt;p&gt;It’s 2020 and I can’t believe grocery shopping hasn’t been “solved”. Why is this even still a chore? Is it possible to imagine a scenario where we never have to think about the act of grocery shopping again?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let me know if any of this resonates with you, via the comments section at the bottom or send me an email at &lt;a href=&quot;mailto:pete.roome@gmail.com?subject=I%20hate%20grocery%20shopping%20too%E2%80%A6&quot; target=&quot;_blank&quot;&gt;pete.roome@gmail.com&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;some-context&quot;&gt;Some context…&lt;/h2&gt;
&lt;p&gt;My wife and I, in the grand scheme of things, aren’t fussy eaters. There are a few meals we like fairly frequently (Pizza, Spicy Korean Beef), but overall we like variety. I love cooking and will try my hand at new recipes on a weekly basis. During the week we aim for evening meals that take around 30-45 minutes (tops) to prep due to our schedules, especially now that we have a newborn to juggle too. Neither of us have any dietary requirements although we’re becoming more aware of how much of an impact eating meat has on the planet. &lt;a href=&quot;https://www.imdb.com/title/tt3302820/&quot;&gt;Cowspiracy&lt;/a&gt; and &lt;a href=&quot;https://www.imdb.com/title/tt7455754&quot;&gt;The Game Changers&lt;/a&gt; were both eye opening for us.&lt;/p&gt;

&lt;h2 id=&quot;what-to-eat&quot;&gt;What to eat&lt;/h2&gt;
&lt;p&gt;In the past, my wife and I have had &lt;em&gt;that&lt;/em&gt; daily SMS conversation that I’m sure a lot of couples and housemates have - you know the one…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; What do you fancy for dinner?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Them:&lt;/strong&gt; I don’t mind&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; &lt;a href=&quot;https://www.ft.com/content/c023452a-9c34-11e4-b9f8-00144feabdc0&quot;&gt;Lambs brains on toast?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-02-29-automating-our-weekly-groceries-version-1/brains.jpg&quot; alt=&quot;Lambs brains on toast?&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Them:&lt;/strong&gt; Not that&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; Ok, so anything you’re in the mood for at all? Need inspiration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Them:&lt;/strong&gt; Pizza, takeaway?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; Ugh, it’s expensive and makes me fat&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Them:&lt;/strong&gt; Ok, I don’t mind then&lt;/p&gt;

&lt;p&gt;This conversation is frustrating for whoever initiates it. Worse still for that person, they then need the mental energy to research recipes and check we can get all the ingredients from the overpriced and understocked Sainsbury’s local close to home. The result: we end up visiting Sainsbury’s every day of the week and have the same meals on repeat (depressing).&lt;/p&gt;

&lt;p&gt;Let me go into a bit more detail…&lt;/p&gt;

&lt;h2 id=&quot;time&quot;&gt;Time&lt;/h2&gt;
&lt;p&gt;Shopping in-store is time consuming and inconvenient, which is why online shopping exists - I get it. Sadly, online shopping is time consuming too, unless you repeat order the same basket every time. Reflecting on the last few weeks, I would estimate we spend approximately five hours per week in the supermarket or shopping online - this would equate to nearly 11 days a year 🤯.&lt;/p&gt;

&lt;h2 id=&quot;cost&quot;&gt;Cost&lt;/h2&gt;
&lt;p&gt;Supermarkets are great at helping you to buy more of what you don’t need, spending money you didn’t want to spend. I hate this - this is when my well intentioned budget goes out of the window. Small amounts of money that would work harder for me when invested or used for overpaying the mortgage.&lt;/p&gt;

&lt;h2 id=&quot;my-will-power&quot;&gt;My will power&lt;/h2&gt;
&lt;p&gt;Over the years I have learnt that it is easier to manage my own cravings and bad food habits by simply not buying those things and having them in the house in the first place. Avoiding the supermarket and the temptations it contains at the end of a long day is one of the easiest ways I know to support my own will power.&lt;/p&gt;

&lt;h2 id=&quot;waste&quot;&gt;Waste&lt;/h2&gt;
&lt;p&gt;Yet another gripe related to grocery shopping that my wife and I are conscious of is food and packaging waste. &lt;a href=&quot;https://feedbackglobal.org/knowledge-hub/food-waste-scandal/&quot;&gt;There are nearly one billion hungry people in the world and all of them could be fed on less than a quarter of the food that is wasted in the US, UK and Europe&lt;/a&gt;. Shockingly, &lt;a href=&quot;https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0007940&quot;&gt;25% of the world’s fresh water supply is used to grow food that is never eaten&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Most food waste occurs in the home, but supermarkets make it extremely easy to bulk buy food that will go rotten before you have time to eat it (think bags of potatoes, boxes of tomatoes and bags of satsumas). We tried the alternative; recipe boxes, but after a couple of weeks we could not stomach the volume of packaging involved.&lt;/p&gt;

&lt;h2 id=&quot;summary-of-the-problem&quot;&gt;Summary of the problem&lt;/h2&gt;
&lt;p&gt;I have five problems to solve when it comes to my grocery shopping…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What to eat - remove the effort involved in choosing what to eat and bake in some variety&lt;/li&gt;
  &lt;li&gt;Time - reduce the time spent grocery shopping&lt;/li&gt;
  &lt;li&gt;Cost - avoid spending money on groceries we don’t need&lt;/li&gt;
  &lt;li&gt;Will power support - avoid impulse purchases for a healthy diet&lt;/li&gt;
  &lt;li&gt;Waste - waste nothing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;If you can relate to any of these problems, let me know via the comments section below or send me an email at &lt;a href=&quot;mailto:pete.roome@gmail.com?subject=I%20hate%20grocery%20shopping%20too%E2%80%A6&quot; target=&quot;_blank&quot;&gt;pete.roome@gmail.com&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;just-in-time&quot;&gt;Just in time&lt;/h2&gt;
&lt;p&gt;Having trialled some recipe boxes, what became obvious was that despite the excessive packaging we weren’t wasting any food. Those boxes provide just the right amount of ingredients; no more, no less. This reminded me of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Just-in-time_manufacturing&quot;&gt;Just In Time (JIT)&lt;/a&gt; production methodology made famous by Toyota. Post World War II, Japan was cash strapped and lacked the space to build big factories, so they made their processes more lean. They built smaller factories in which the only materials housed were those on which work was currently being done. To avoid food waste I wanted to do something similar when grocery shopping.&lt;/p&gt;

&lt;h2 id=&quot;building-a-solution&quot;&gt;Building a solution&lt;/h2&gt;
&lt;h3 id=&quot;step-1---just-in-time-our-grocery-shopping&quot;&gt;Step 1 - “Just In Time” our grocery shopping&lt;/h3&gt;

&lt;p&gt;One of the simplest things I thought we could do to get started was to “Just In Time” our grocery shopping. This meant two things to me:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Knowing what we wanted to eat for the week&lt;/li&gt;
  &lt;li&gt;Knowing what we have in stock already - that we don’t need to buy&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I read about a meal prep app on Reddit called &lt;a href=&quot;https://www.mealime.com/&quot;&gt;Mealime&lt;/a&gt;. Mealime provides a bunch of recipes for breakfast, lunch and dinner to create a meal plan from and then provides a grocery list. My wife and I currently use &lt;a href=&quot;https://timetreeapp.com/intl/en/&quot;&gt;Time Tree&lt;/a&gt; as our shared calendar, so counting up the days we were going to be at home, we were able to create a meal plan with Mealime pretty quickly, in under five minutes (after some practice).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2020-02-29-automating-our-weekly-groceries-version-1/mealime-email-draft.png&quot; alt=&quot;Mealime grocery list export in draft email&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With our meal plan, I am able to export the grocery list. I’ve been saving the list as a draft email on my phone that I can open on my laptop. I then copy + paste the grocery list into a &lt;a href=&quot;https://docs.google.com/spreadsheets/d/17DoaxqG8NeV6MfX9X8rCxGQda9LZ8S67oW_rzwjs8Yc/edit?usp=sharing&quot;&gt;spreadsheet&lt;/a&gt;. Here, I can add tick-boxes and check what I already have in the kitchen. I can combine this with a list of essentials that we buy on a weekly basis (e.g. kitchen towel, bottled water) and use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;FILTER&lt;/code&gt; function to build a final shopping list.&lt;/p&gt;

&lt;p&gt;LINK: &lt;a href=&quot;https://docs.google.com/spreadsheets/d/17DoaxqG8NeV6MfX9X8rCxGQda9LZ8S67oW_rzwjs8Yc/edit?usp=sharing&quot;&gt;My grocery list spreadsheet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;BONUS: Documenting our shopping made me more aware of the predictable, frequent purchases we make (e.g. toothpaste and dishwasher tablets). This encouraged me to take a closer look at &lt;a href=&quot;https://www.amazon.co.uk/Subscribe-Save-Health-Beauty-Grocery/b?ie=UTF8&amp;amp;node=423139031&quot;&gt;Amazon Subscribe&lt;/a&gt; and what it could help us with. As a result we have automated some of our shopping. We’re tweaking our delivery schedule of items, such as toilet paper, to ensure we get it “Just In Time”. I am however skeptical of Amazon’s frequently changing prices, so I am checking in regularly. Generally speaking though we will soon be able to forget entirely about several household items. Small steps.&lt;/p&gt;

&lt;h3 id=&quot;outcome&quot;&gt;Outcome&lt;/h3&gt;
&lt;p&gt;We’ve been using this JIT method for six weeks. Here are some results and observations so far…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Our food waste is down. We didn’t measure it in any way, but it feels like it’s been reduced. Buying just the right amount of fresh produce rather than the supermarkets pre-packaged, bumper packs is not only cheaper, but also less wasteful.&lt;/li&gt;
  &lt;li&gt;Our grocery spend is down. Where we previously spent ~£100 per week on groceries, we now spend around £60 (£2k per year saving). We no longer make daily visits to the store after work so we bypass the additional spending on impulse purchases too.&lt;/li&gt;
  &lt;li&gt;Using Mealime and JIT, we have our process and total time spent grocery shopping down from approximately five hours per week to 60 minutes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s not all plain sailing…&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;JIT means we only plan and buy enough food for my me and my wife plus any visitors we have scheduled. Unplanned visits from friends or family mean additional planning time and more than likely a visit to our local store. Unplanned visits like this don’t happen very often so it’s not a major worry.&lt;/li&gt;
  &lt;li&gt;Sometimes after a tough day we can’t be bothered to cook and order takeaway. This not only increases our weekly spend on food but means at the end of the week we have spare food for a meal we’ve planned. In the past, we just carry this over to the next week and buy a little less - not a problem. It’s ok to have a day off every now and then, right?&lt;/li&gt;
  &lt;li&gt;Planning and shopping still takes 60 minutes. I wonder if we can get this to 0 - fully automated 🤔.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;next-steps&quot;&gt;Next steps…&lt;/h2&gt;

&lt;p&gt;In my mind, the simplest next step would be the automation of getting a grocery list into our spreadsheet in the first place. First from Mealime, but in the future we would like to use recipes from other sources too.&lt;/p&gt;

&lt;p&gt;I’ll post again when we’ve made some progress on this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let me know if you have any thoughts on any of this - I would love to speak with you. You can email me at &lt;a href=&quot;mailto:pete.roome@gmail.com?subject=I%20hate%20grocery%20shopping%20too%E2%80%A6&quot; target=&quot;_blank&quot;&gt;pete.roome@gmail.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 29 Feb 2020 00:00:00 +0000</pubDate>
        <link>https://peteroome.com/2020/02/29/automating-our-weekly-groceries-version-1/</link>
        <guid isPermaLink="true">https://peteroome.com/2020/02/29/automating-our-weekly-groceries-version-1/</guid>
      </item>
    
      <item>
        <title>Building a product-led culture by frequently  speaking to your users</title>
        <description>&lt;p&gt;One of the first lessons you learn as a product manager is to build the right solution, you first need to speak to the people who are experiencing the problem you are solving.&lt;/p&gt;

&lt;p&gt;You need to understand your user’s goals, what your product does well to support these and what it doesn’t do so well. Speaking to your users irregularly, or not at all, guarantees your product’s failure - there’s no beating around the bush.&lt;/p&gt;

&lt;p&gt;Product usage data can help us highlight high-level problem areas, for example, a checkout step on our E-commerce store - but it doesn’t tell us that users want more payment methods, that our brand isn’t trustworthy, or that we’re missing common and expected fields such as “delivery notes”. These details and the reasons behind them are only understood by speaking to users.&lt;/p&gt;

&lt;p&gt;Once we’ve identified high-level problem areas of underperformance, how are the tools we have at our disposal to find out the nitty-gritty of what our users want? Thankfully, there are several methods we can use.&lt;/p&gt;

&lt;p&gt;I will outline the tools here that I use daily, but they are not one size fits all. Depending on the problem you’re solving and it’s complexity as well as the time and resource you have available - some methods may be more suitable than others. I will outline below, how and when I use these techniques to enhance my understanding of a problem.&lt;/p&gt;

&lt;p&gt;When kicking off a new quarter, new product or initiative, it can feel like a huge effort to get these tools in place to speak to your users.  That’s why I advocate to get them in place as soon as possible. At the point you need them, these tools will be working and your team will be in regular contact with your users. Regular contact will result in a rich repository of feedback and insights that you can draw upon whenever you need to. That is the moment that these tools feel like a superpower - when at any given moment, you can draw upon all of the knowledge you have about how users feel regarding a specific piece of functionality, without needing 4 weeks to conduct the research up-front. So let’s get started…&lt;/p&gt;

&lt;h2 id=&quot;doughnut-customer-club&quot;&gt;Doughnut customer club&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Effort: low&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the simplest and lowest effort methods to collect feedback is the  “doughnut club”. It’s simple…&lt;/p&gt;

&lt;p&gt;Buy a box of doughnuts, go out into the streets and start offering folks a sweet treat in exchange for a couple of minutes of their time. You’ll be surprised how well this works. I recommend going in the morning before lunch or mid-afternoon for the best results.&lt;/p&gt;

&lt;p&gt;It’s great to do this with two of you - one of you can ask questions while the other takes notes. Be friendly, open and non-confrontational - people will normally have a useful opinion for you: positive or negative. This is also the perfect opportunity to build internal empathy with product problems too - take an engineer or a marketing person to watch their reaction and see their enthusiasm for the problem grow when they’re confronted with live feedback.&lt;/p&gt;

&lt;p&gt;However, be cautious. The people you speak to aren’t necessarily your target audience, so bear this in mind when you report your findings.&lt;/p&gt;

&lt;h2 id=&quot;session-replay-cinema-club&quot;&gt;Session replay cinema club&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Effort: low&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tools like Hotjar enable you to easily record your user’s product sessions to replay back at a later date. This again provides a great opportunity to build a collective empathy internally for the user and the problems they encounter. I have done this by setting up a “Cinema club” - we grab popcorn and drinks to munch on while we watch sessions focused on a specific feature or problem area of our product.&lt;/p&gt;

&lt;p&gt;This session will generate good discussion amongst your team, so it’s useful to assign a note-taker who shares any CTAs at the end of the meeting.&lt;/p&gt;

&lt;p&gt;You will need to focus this session on specific URLs or an area of your product so this method assumes you have an idea of where a problem exists in the first place.  Watching session replays without any initial direction can be a fruitless exercise.&lt;/p&gt;

&lt;h2 id=&quot;user-interviews---phone-calls&quot;&gt;User interviews - phone calls&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Effort: medium&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speaking to genuine users of your product in person generates the most interesting feedback and insights. Getting in a room with users, face to face, allows you to read their body language whilst listening to what they have to say. Geographically it’s not always possible to be in the same place - phone or video calls are the next best thing.&lt;/p&gt;

&lt;p&gt;Off the bat, these would seem more effort than they are to setup. I make use of the footer of the Vinterior newsletter email. I include a message about providing feedback to our product team - with a friendly picture of me and a link to a Calendly schedule.  This is the cheat code. By connecting with Calendly you make it simple for users to book a convenient time for you and them. I would recommend optimising your copy and instructions within Calendly to minimise friction for the user - 15-minute slots are a not-to-scary time slot size. Finally, you will probably need to incentivise users to book a session with you in the first place - coupons normally work fine.&lt;/p&gt;

&lt;p&gt;This approach usually yields a couple of phone calls per week with users that last anywhere from 15-45 minutes. By now, you should be realising just how quickly the touchpoints with your users start to add up - providing continuous feedback for your product team.&lt;/p&gt;

&lt;p&gt;Again, the segment of user this attracts is varied, but at least now they’re users of your product. If you wanted to optimise this further you could use a tool like Intercom to target specific users with a CTA for your Calendly event, dependent on a specific set of actions performed within your product. Your CRM tool should have this ability too.&lt;/p&gt;

&lt;p&gt;I find it useful to maintain a list of “areas of interest” that I use as a prompt for these phone calls. It includes some basic conversation starters and swiftly moves on to questions regarding areas of the product or assumptions I have that I am particularly interested in digging deeper on.&lt;/p&gt;

&lt;h2 id=&quot;user-interviews---face-2-face&quot;&gt;User interviews - face 2 face&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Effort: medium / hard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the same as the previous method, but “in real life”. Where possible I would recommend going to your user and taking the time to speak to them in their environment. This will result in them feeling more comfortable - they’ll, therefore, be more likely to open up to you. As I said previously, being able to witness body language as a user responds to your question is extremely valuable and often more telling than the words they say. When someone is frustrated or has a problem they can’t solve, you can see the tension in their body and expression on their face. Equally, when someone is passionate or enthusiastic about something, they will show it just as much in their smile or when their eyes light up.&lt;/p&gt;

&lt;p&gt;This method is more effort simply due to the organisation surrounding the meet. It just needs more thought, particularly around availability and travel. My approach to starting a conversation or booking wouldn’t vary too much from the phone-call approach mentioned previously.&lt;/p&gt;

&lt;h2 id=&quot;focus-groups&quot;&gt;Focus groups&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Effort: hard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Focus groups are the hardest customer feedback method to organise, requiring the largest amount of effort. Simply coordinating a time, date and place that a group of your users can all meet up and attend is logistically hard in comparison to the other methods. Focus groups are more prone to being organised on an ad-hoc basis - rather than automated - when you have a new area of focus to drill down on.&lt;/p&gt;

&lt;p&gt;The benefit of focus groups is that you can reach a collective consensus on a problem or assumption, which can hold greater weight than one or two individual interviews. However, the thing to be aware of though is heard mentality. One strong voice in the group can easily influence and dictate the feedback from others. It’s therefore really important to have a strong facilitator in place to keep the conversation on track and to give everyone in the group the necessary space to feedback in their own voice.&lt;/p&gt;

&lt;h2 id=&quot;remote-user-testing&quot;&gt;Remote user testing&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Effort: low&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Platforms like usertesting.com are perfect for getting feedback on your product. From very early prototypes to high fidelity designs, or even a coded, working version of your product.&lt;/p&gt;

&lt;p&gt;If you’re not familiar with it, remote user testing involves writing a short script, or one or two questions, for a professional tester to record themselves answering whilst using your prototype or product.&lt;/p&gt;

&lt;p&gt;I use this to get broad feedback about early prototypes or designs. Do we put the navigation horizontally across the top or down the left-hand side of the screen? Is this 2-step process as simple to follow as we think it is?&lt;/p&gt;

&lt;p&gt;Testing can be turned around in a matter of hours - maintaining your momentum as you develop a solution.&lt;/p&gt;

&lt;p&gt;Usertesting.com is one tool, but there are a bunch of them out there. The better tools allow you to self-recruit your audience or to target a specific audience organised by the platform. Expect to pay a premium for these features.&lt;/p&gt;

&lt;h2 id=&quot;surveys&quot;&gt;Surveys&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Effort: low&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Surveys are one of the easiest ways to capture some feedback from your users, but you should use them as a pre-cursor to other methods outlined in this post. Surveys are really useful too for asking a segment of users a specific question (or questions) you’re interested in. The fewer questions you ask the higher the response rate. Besides, questions with discrete answers e.g. multiple choice, are more simple to analyse than continuous ones (e.g. free-text) but are often less rich in terms of the insights and learnings you get.&lt;/p&gt;

&lt;p&gt;Use your knowledge of your product and experience to choose what the right question is to ask. For example, if I can see a steep drop-off rate through a checkout process, I might draw upon the existing knowledge of the team, insights we’ve previously collected and my own experience and intuition to create a short-list of multiple-choice options. The results of this survey would usually garner a prioritised list of where I should start to work with the team to either collect more feedback from users or to start problem-solving.&lt;/p&gt;

&lt;p&gt;I would use an open-ended question when I have an assumption or a hypothesis that I might be trying to support with more evidence. For example, on the product page of an E-commerce site, I might ask: “Is there any information that is missing from this page that you would find useful?”. This would generate a broad range of feedback that a product team could pour-over and start prioritising.&lt;/p&gt;

&lt;p&gt;I use one question surveys where possible. Surveys are distracting enough as it is when you’re trying to do something online. It’s best to be considerate of your users here.&lt;/p&gt;

&lt;h2 id=&quot;customer-service-interactions&quot;&gt;Customer service interactions&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Effort: low&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most organisations will have some sort of customer services team and they’re usually speaking to customers all day every day, weekends too. The trick here is to work with this team to make it as simple as possible for them to surface insights and feedback, all day long.&lt;/p&gt;

&lt;p&gt;Feedback from your CS team will generate a continuous flow of information that you can use to aid product discovery and point you in the right direction of where you might need to do further investigation. The trade-off is that this information isn’t predictable or focused - it could come from any user at any point in their experience and relate to any part of your product. Organise it, store it and monitor it - patterns will start to emerge over time regarding where customers are having problems with your product.&lt;/p&gt;

&lt;p&gt;I used &lt;a href=&quot;https://www.productboard.com&quot;&gt;Product Board&lt;/a&gt; to store this information. Product Board allows me to organise, tag and add notes to feedback. I don’t always need immediate access to it but when called upon, searchable insights that I can draw upon to quickly get up to speed about a feature is invaluable.&lt;/p&gt;

&lt;h2 id=&quot;toolset&quot;&gt;Toolset&lt;/h2&gt;
&lt;p&gt;This post provides a multitude of methods that can be put in place to speak to your product’s users regularly. In this list are some of those, but it doesn’t mean it’s exhaustive. I have highlighted those methods that require more effort to implement than others. Each approach delivers different value too. It’s down to you as the Product Manager for your product to provide your team with this toolset and to ensure both of you are putting these methods into practice.&lt;/p&gt;
</description>
        <pubDate>Sat, 26 Oct 2019 00:00:00 +0000</pubDate>
        <link>https://peteroome.com/2019/10/26/building-a-product-led-culture-by-frequently-speaking-to-your-users/</link>
        <guid isPermaLink="true">https://peteroome.com/2019/10/26/building-a-product-led-culture-by-frequently-speaking-to-your-users/</guid>
      </item>
    
      <item>
        <title>OKRs - a tool for alignment in high performance teams</title>
        <description>&lt;p&gt;Like a lot of startups, the end of one quarter and the start of another means planning - more specifically OKR planning.&lt;/p&gt;

&lt;p&gt;If you’ve never heard of OKRs, here’s a quick history lesson:&lt;/p&gt;

&lt;p&gt;OKR stands for: Objectives and Key Results. They’re a goal setting and alignment tool for teams. OKRs are attributed to Andy Grove who introduced the concept at Intel and documented them in his 1983 book: High Output Management. OKRs have been explained by John Doerr (&lt;a href=&quot;https://www.kleinerperkins.com&quot;&gt;Kleiner Perkins&lt;/a&gt;):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“The key result has to be measurable. But at the end you can look, and without any arguments: Did I do that or did I not do it? Yes? No? Simple. No judgments in it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;learning-from-previous-okr-setting-mistakes&quot;&gt;Learning from previous OKR setting mistakes&lt;/h2&gt;

&lt;p&gt;As with anything, you have to practice OKRs. You probably won’t do them well the first time, or the second time, or maybe even the third time. To complicate things further, you’re doing this while your team is scaling. But, now more than ever, collaboration should be second only to breathing and your team’s alignment must be bulletproof. So, stick with it…&lt;/p&gt;

&lt;p&gt;Sticking with it means, reflecting. What went well? What didn’t go so well?&lt;/p&gt;

&lt;h2 id=&quot;what-did-i-learn-about-our-okr-setting-process-last-quarter&quot;&gt;What did I learn about our OKR setting process last quarter?&lt;/h2&gt;

&lt;p&gt;We succeeded at writing clear, easy to understand company-level objectives. The team knew what they were and could remember them. It sounds simple, but it’s easy to screw this - overcomplicating your OKRs or simply not talking about them frequently enough.&lt;/p&gt;

&lt;p&gt;It wasn’t all plain sailing. We hadn’t properly accounted for and accurately estimated must-do projects - the major one this quarter was &lt;a href=&quot;https://en.wikipedia.org/wiki/Strong_customer_authentication&quot;&gt;Strong Customer Authentication (SCA)&lt;/a&gt; compliance. This project took longer than anticipated and required more resource than originally thought - impacting our OKR results. This was a theme throughout Q3 generally: trying to do too many things, simultaneously. The web of interdependencies of different teams needing different resources at different times throughout the quarter negatively impacted our speed and output.&lt;/p&gt;

&lt;p&gt;Why did this happen? Very simply, a lack of cross-team collaboration and coordination.&lt;/p&gt;

&lt;h2 id=&quot;okrs-as-a-tool-for-alignment&quot;&gt;OKRs as a tool for alignment&lt;/h2&gt;

&lt;p&gt;Startups often latch onto OKRs as a goal-setting tool for their team, but quickly forget their benefits for driving alignment.&lt;/p&gt;

&lt;p&gt;OKRs done well can drive alignment of objectives vertically up and down through an organisation as well as horizontally cutting across departments and functions - they are genuinely 360.&lt;/p&gt;

&lt;h2 id=&quot;what-is-alignment&quot;&gt;What is alignment?&lt;/h2&gt;
&lt;p&gt;Let’s take a step back and answer this important question.&lt;/p&gt;

&lt;p&gt;Google defines alignment as:&lt;/p&gt;

&lt;p&gt;“the position that something is in when it is straight or in the correct place in relation to other things”&lt;/p&gt;

&lt;p&gt;This isn’t very tangible when it comes to high performing teams, so instead let’s turn to YouTube. In my opinion, this is what alignment looks like…&lt;/p&gt;

&lt;div class=&quot;embed-container&quot;&gt;
  &lt;iframe src=&quot;https://www.youtube.com/embed/&quot; width=&quot;700&quot; height=&quot;480&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;Alignment only happens in teams when they have well structured and facilitated conversations to set priorities and to solve interdependencies - the kind of interdependencies that slowed us down last quarter.&lt;/p&gt;

&lt;p&gt;The opposite of this is setting OKRs in isolation - a mistake that can lead to two scenarios:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;setting OKRs that can’t be achieved - OKRs that are not a priority for everyone on the team&lt;/li&gt;
  &lt;li&gt;setting OKRs that are too optimistic - resources required from other teams are not discussed because there was no cross-team collaboration&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;why-do-okrs-get-set-in-isolation&quot;&gt;Why do OKRs get set in isolation?&lt;/h3&gt;

&lt;p&gt;This popular African proverb sums up the anomaly:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“If you want to go fast, go alone. If you want to go far, go together.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let’s face it, it’s faster and easier to set OKRs in isolation. Collaboration takes time and effort. Feedback from other teams with other priorities can feel uncomfortable too. However, alignment won’t be achieved without this part of the process.&lt;/p&gt;

&lt;h2 id=&quot;the-impact-of-well-aligned-high-performance-teams&quot;&gt;The impact of well-aligned high-performance teams&lt;/h2&gt;
&lt;p&gt;We see the impact of alignment across all types of high performing teams, especially in sport.&lt;/p&gt;

&lt;p&gt;The most successful, high performing teams are those with a shared purpose, mission and a set of objectives that each team member is aligned to.&lt;/p&gt;

&lt;p&gt;New Zealand’s rugby team, the All Blacks, are no different. Their record speaks for itself; they have an 87% winning percentage in test rugby - a phenomenal record.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://files.allblacks.com/publications/2018-NZR-Annual-Report.pdf&quot;&gt;The All Blacks produce and publish a yearly report&lt;/a&gt;, called The Scoreboard that documents how tightly aligned their organisation and teams are. In it, the All Blacks speak about their guiding principles and the priorities that their rugby organisation align on and work towards - their OKRs if you will.&lt;/p&gt;

&lt;h2 id=&quot;alignment-at-a-tactical-level&quot;&gt;Alignment at a tactical level&lt;/h2&gt;
&lt;p&gt;Alignment runs deeper though, right down to tactics; especially in rugby.&lt;/p&gt;

&lt;p&gt;In rugby, the strongest defence is a flat line.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2019-10-10-okrs-as-a-tool-for-alignment/defence-1.png&quot; alt=&quot;Flat line defence&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We see this over and over again at every breakdown, phase and play - the organisation of a defensive line speaks volumes for a teams ability to communicate and align themselves.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2019-10-10-okrs-as-a-tool-for-alignment/defence.jpg&quot; alt=&quot;Rugby defence&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2019-10-10-okrs-as-a-tool-for-alignment/Lions-Defensive-Wall.jpg&quot; alt=&quot;Rugby defence&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2019-10-10-okrs-as-a-tool-for-alignment/Maro1.jpg&quot; alt=&quot;Rugby defence&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It sounds easy, but with 15 independent, fatigued and passionate players it takes a serious amount of coaching and communication to achieve that flat defensive line.&lt;/p&gt;

&lt;p&gt;Coaches and staff - let alone teammates - expect those players on the field to perform in unison as if they have a rope tied around them. From experience, this requires non-stop talking: “player left”, “player right”, “my player”, “drift right”, “drift left” - high frequency updates that keep everyone aligned and focused.&lt;/p&gt;

&lt;p&gt;On the rugby pitch, when this is done badly the impact is instant. Gaps appear for attackers to probe, making it much easier to score points.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2019-10-10-okrs-as-a-tool-for-alignment/defence-2.png&quot; alt=&quot;Flat line defence&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So the question is, why would we expect our teams at work and in business to align and perform with anything less? How would we expect to achieve the same results as these high performing teams by setting OKRs in isolation?&lt;/p&gt;

&lt;h2 id=&quot;how-do-okrs-help-to-achieve-team-alignment&quot;&gt;How do OKRs help to achieve team alignment?&lt;/h2&gt;

&lt;p&gt;OKR setting and execution is a cyclical process.&lt;/p&gt;

&lt;p&gt;We start with a business strategy. A strategy sets the boundaries of what we want to achieve and points us in the right direction. A strategy is created from frequent upward communication of the details. This is a process of feedback on where the problems are and what exactly needs solving.&lt;/p&gt;

&lt;p&gt;Then there’s the prioritisation of those problems. This involves working with other teams to debate and then agree on the most important problems to be solved within the time constraint i.e the quarter. The collaboratively prioritised set of problems become the OKRs.&lt;/p&gt;

&lt;p&gt;OKRs inform sprint planning and research to be done. The outcome of the research and each OKR is fed back, directly into the strategy.&lt;/p&gt;

&lt;p&gt;These two steps should never stop; refining the strategy and prioritisation - they should be regularly reviewed.&lt;/p&gt;

&lt;p&gt;In addition, the results of research should guide sprint planning too.&lt;/p&gt;

&lt;p&gt;Sprint planning itself pays back into the OKRs, sets the rhythm for our research but is also responsible for defining the executable plan that will fundamentally deliver the results you are chasing.&lt;/p&gt;

&lt;h2 id=&quot;final-steps&quot;&gt;Final steps…&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;Start with your current strategy and facilitate questions and feedback&lt;/li&gt;
  &lt;li&gt;Task team leads with collaborating on a list of priorities to achieve the strategy&lt;/li&gt;
  &lt;li&gt;Priorities to be presented to the wider team with facilitation for questions and feedback&lt;/li&gt;
  &lt;li&gt;Close the loop - team leads to present team feedback, amendments made and to align with leadership&lt;/li&gt;
  &lt;li&gt;Present again the final strategy, objectives and key results for the quarter&lt;/li&gt;
  &lt;li&gt;Frequent alignment meetings to share progress, insights and to re-prioritise&lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Thu, 10 Oct 2019 00:00:00 +0000</pubDate>
        <link>https://peteroome.com/2019/10/10/okrs-a-tool-for-alignment-in-high-performance-teams/</link>
        <guid isPermaLink="true">https://peteroome.com/2019/10/10/okrs-a-tool-for-alignment-in-high-performance-teams/</guid>
      </item>
    
      <item>
        <title>Moving Rails controller helper_methods to helpers for testing purposes with Rspec</title>
        <description>&lt;p&gt;A Rails architecture thing that I picked up this week…&lt;/p&gt;

&lt;p&gt;It’s easier to test and better practice to define helper methods in a helper file, rather than in a controller by using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;helper_method&lt;/code&gt; method.&lt;/p&gt;

&lt;p&gt;In some controllers I’ve recently been working with there were quite a lot of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;helper_methods&lt;/code&gt; defined like this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;	&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;ApplicationController&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;ActionController&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Base&lt;/span&gt;
		&lt;span class=&quot;n&quot;&gt;helper_method&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:current_cart&lt;/span&gt;

		&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;current_cart&lt;/span&gt;
			&lt;span class=&quot;no&quot;&gt;Cart&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;find&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:cart_id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
		&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
	&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
	&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This works fine. However, when it comes to testing things get complicated. I created a helper method in a helper and it uses the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;current_cart&lt;/code&gt; helper method from the controller, like this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;	&lt;span class=&quot;k&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;CartHelper&lt;/span&gt;
		&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;cart_empty?&lt;/span&gt;
		   &lt;span class=&quot;n&quot;&gt;current_cart&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;current_cart&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;cart_items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;empty?&lt;/span&gt;
		&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
	&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
	&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;In the spec I was writing, I was only interested in testing my new helper method so I tried to stub the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;current_cart&lt;/code&gt; method like this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;	&lt;span class=&quot;n&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:current_cart&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;double&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:cart&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;cart_items: &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[])&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;n&quot;&gt;before&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt;
	    &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;helper&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
	      &lt;span class=&quot;n&quot;&gt;receive&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:current_cart&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;and_return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;current_cart&lt;/span&gt;
	    &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
	&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
	&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This always failed though. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;current_cart&lt;/code&gt; isn’t defined in my helper, it’s defined in the controller, so it can’t be stubbed like this. I was getting the error…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;@view_renderer … does not implement: current_cart&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;(View renderer because that’s what Rspec is using to test the view helper that I’m interested in testing).&lt;/p&gt;

&lt;p&gt;So, I moved the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;current_cart&lt;/code&gt; helper method to our &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CartHelper&lt;/code&gt;, out of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ApplicationController&lt;/code&gt;. I can then add the line &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;include CartHelper&lt;/code&gt; in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ApplicationController&lt;/code&gt;. Like this…&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;	&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;ApplicationController&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;ActionController&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Base&lt;/span&gt;
		&lt;span class=&quot;kp&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;CartHelper&lt;/span&gt;
	&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
	&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This allows me to now stub the helper method in my test and correctly test other helper methods that use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;current_cart&lt;/code&gt; method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Win!&lt;/strong&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 11 Mar 2018 00:00:00 +0000</pubDate>
        <link>https://peteroome.com/2018/03/11/moving-rails-controller-helper-methods-to-helpers-for-testing-purposes-with-rspec/</link>
        <guid isPermaLink="true">https://peteroome.com/2018/03/11/moving-rails-controller-helper-methods-to-helpers-for-testing-purposes-with-rspec/</guid>
      </item>
    
      <item>
        <title>Growth Hacking A Personalised Print Business Using Strava Segments</title>
        <description>&lt;p&gt;I’ve recently &lt;a href=&quot;http://www.peteroome.com/2016/10/01/validating-a-personalised-print-business-aimed-at-cycling-and-running-enthusiasts.html&quot;&gt;started to document my endeavours&lt;/a&gt; in getting &lt;a href=&quot;https://www.madewithsisu.com/&quot;&gt;my personalised print business&lt;/a&gt; off the ground and generating a bit more revenue. This post is my first attempt at documenting and formalising one of the growth hacks I’m experimenting with. I’ll work to a standardised format when I do write them up and I hope the process might spark more ideas for the future, or even for you the reader.&lt;/p&gt;

&lt;p&gt;I’ve already experimented informally with this hack. I’ve previously created two or three segments on Strava that have driven a small amount of traffic to the website. The segments were not on especially busy routes, but they did create mixed reactions. For good or for bad, people publicly tweeted at us…&lt;/p&gt;

&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Loving the way &lt;a href=&quot;https://twitter.com/madewithsisu&quot;&gt;@madewithsisu&lt;/a&gt; is growth hacking using Strava segments. Really caught my eye. &lt;a href=&quot;https://t.co/44Nd4E6OkP&quot;&gt;https://t.co/44Nd4E6OkP&lt;/a&gt;&lt;/p&gt;&amp;mdash; Daniel Bower (@danielbower) &lt;a href=&quot;https://twitter.com/danielbower/status/764410431716876288&quot;&gt;August 13, 2016&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Not appreciative that &lt;a href=&quot;https://twitter.com/madewithsisu&quot;&gt;@madewithsisu&lt;/a&gt; is spamming strava segments as a way of advertising - quite counter-productive.&lt;/p&gt;&amp;mdash; Sefi (@TigaSefi) &lt;a href=&quot;https://twitter.com/TigaSefi/status/735775789652660224&quot;&gt;May 26, 2016&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;h2 id=&quot;whats-the-hack&quot;&gt;What’s the hack?&lt;/h2&gt;
&lt;p&gt;Create segments on Strava that include a URL, linking back to &lt;a href=&quot;https://www.madewithsisu.com/&quot;&gt;Sisu&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A segment is a section of your run or ride that has an associated public (if you choose) leaderboard for competing against others who pass over it.&lt;/p&gt;

&lt;h2 id=&quot;pros-of-the-hack&quot;&gt;Pros of the hack&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;It’s free.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I can create as many segments as I like (for now 😂).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I can name the segment anything I like (perfect for A/B testing).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Strava users are my target audience.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;cons-of-the-hack&quot;&gt;Cons of the hack&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;It looks spammy.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;URL’s in segment names aren’t clickable on the Strava app or website.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;There are 000’s of segments on Strava. Standing out from the crowd will be hard.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Strava users can flag my segments if they don’t like them. This could lead to my account being blocked.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;It might be hard getting enough traffic volume from the experiment to prove that an AB test is statistically significant.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;the-ab-test&quot;&gt;The AB test&lt;/h2&gt;

&lt;p&gt;I will set up segments on two busy routes to start with: London Bridge &amp;amp; Tower Bridge. Each route will have two identical (almost) segments: A &amp;amp; B.&lt;/p&gt;

&lt;p&gt;Variant A will have a title of “Sisu - Your exercise data as art!” followed by the shortened Google URL. Variant B will be titled: “Sisu - Is that all you’ve got?”, again followed by a Google shortened URL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Update&lt;/em&gt;&lt;/strong&gt;: &lt;a href=&quot;https://tfl.gov.uk/status-updates/major-works-and-events/tower-bridge-closure&quot;&gt;A small glitch in the planned experiment as reported by TFL (Transport for London)&lt;/a&gt;…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The City of London Corporation is planning major essential maintenance works to Tower Bridge from Saturday 1 October to Friday 30 December 2016.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As a result of the above, I have chosen another route in addition to London Bridge and Tower Bridge to experiment with. I’ve added two running segments to Victoria park, a popular destination near my office that I run myself.&lt;/p&gt;

&lt;h2 id=&quot;how-will-i-measure-the-hacks-success&quot;&gt;How will I measure the hack’s success?&lt;/h2&gt;

&lt;p&gt;Google URL shortener will provide me with short urls that I can use in segment names, with viewable (and public) analytics for measuring performance too. It’s a free service.&lt;/p&gt;

&lt;h2 id=&quot;caveats&quot;&gt;Caveats&lt;/h2&gt;

&lt;p&gt;In my attempt to be as informative as possible about my experiment, it’s possible to get hold of the Google shortened URL’s that are in in the titles of the segments. This could quite quickly lead to the downfall of the experiment if they end up being abused online. 😬&lt;/p&gt;

&lt;h2 id=&quot;cycling-segments&quot;&gt;Cycling Segments&lt;/h2&gt;

&lt;h3 id=&quot;tower-bridge&quot;&gt;Tower Bridge&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Variant A) “Sisu - Your exercise data as art!”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Segment:&lt;/strong&gt; &lt;a href=&quot;https://www.strava.com/segments/13413887&quot;&gt;https://www.strava.com/segments/13413887&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytics:&lt;/strong&gt; &lt;a href=&quot;https://goo.gl/#analytics/goo.gl/KqQAhm/all_time&quot;&gt;https://goo.gl/#analytics/goo.gl/KqQAhm/all_time&lt;/a&gt;&lt;/p&gt;

&lt;iframe height=&quot;405&quot; width=&quot;590&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; scrolling=&quot;no&quot; src=&quot;https://www.strava.com/segments/13413887/embed&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;Variant B) “Sisu - Is that all you’ve got?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Segment&lt;/strong&gt;: &lt;a href=&quot;https://www.strava.com/segments/13421132&quot;&gt;https://www.strava.com/segments/13421132&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytics:&lt;/strong&gt; &lt;a href=&quot;https://goo.gl/#analytics/goo.gl/BEFjc4/all_time&quot;&gt;https://goo.gl/#analytics/goo.gl/BEFjc4/all_time&lt;/a&gt;&lt;/p&gt;

&lt;iframe height=&quot;405&quot; width=&quot;590&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; scrolling=&quot;no&quot; src=&quot;https://www.strava.com/segments/13421132/embed&quot;&gt;&lt;/iframe&gt;

&lt;h3 id=&quot;london-bridge&quot;&gt;London Bridge&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Variant A) “Sisu - Your exercise data as art!”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Segment:&lt;/strong&gt; &lt;a href=&quot;https://www.strava.com/segments/13413873&quot;&gt;https://www.strava.com/segments/13413873&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytics:&lt;/strong&gt; &lt;a href=&quot;https://goo.gl/#analytics/goo.gl/WL2404/all_time&quot;&gt;https://goo.gl/#analytics/goo.gl/WL2404/all_time&lt;/a&gt;&lt;/p&gt;

&lt;iframe height=&quot;405&quot; width=&quot;590&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; scrolling=&quot;no&quot; src=&quot;https://www.strava.com/segments/13413873/embed&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;Variant B) “Sisu - Is that all you’ve got?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Segment&lt;/strong&gt;: &lt;a href=&quot;https://www.strava.com/segments/13421123&quot;&gt;https://www.strava.com/segments/13421123&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytics:&lt;/strong&gt; &lt;a href=&quot;https://goo.gl/#analytics/goo.gl/M8YQb7/all_time&quot;&gt;https://goo.gl/#analytics/goo.gl/M8YQb7/all_time&lt;/a&gt;&lt;/p&gt;

&lt;iframe height=&quot;405&quot; width=&quot;590&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; scrolling=&quot;no&quot; src=&quot;https://www.strava.com/segments/13421123/embed&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;running-segments&quot;&gt;Running Segments&lt;/h2&gt;

&lt;h3 id=&quot;victoria-park&quot;&gt;Victoria Park&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Variant A) “Sisu - Your exercise data as art!”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Segment:&lt;/strong&gt; &lt;a href=&quot;https://www.strava.com/segments/13421175&quot;&gt;https://www.strava.com/segments/13421175&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytics:&lt;/strong&gt; &lt;a href=&quot;https://goo.gl/#analytics/goo.gl/bsS6Us/all_time&quot;&gt;https://goo.gl/#analytics/goo.gl/bsS6Us/all_time&lt;/a&gt;&lt;/p&gt;

&lt;iframe height=&quot;405&quot; width=&quot;590&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; scrolling=&quot;no&quot; src=&quot;https://www.strava.com/segments/13421175/embed&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;Variant B) “Sisu - Is that all you’ve got?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Segment&lt;/strong&gt;: &lt;a href=&quot;https://www.strava.com/segments/13421200&quot;&gt;https://www.strava.com/segments/13421200&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytics:&lt;/strong&gt; &lt;a href=&quot;https://goo.gl/#analytics/goo.gl/kpZj4E/all_time&quot;&gt;https://goo.gl/#analytics/goo.gl/kpZj4E/all_time&lt;/a&gt;&lt;/p&gt;

&lt;iframe height=&quot;405&quot; width=&quot;590&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; scrolling=&quot;no&quot; src=&quot;https://www.strava.com/segments/13421132/embed&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;…I’ll update this once I’ve collected some data and have some results to share.&lt;/p&gt;

&lt;h2 id=&quot;followup-ideas&quot;&gt;Followup Ideas&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Offer incentives to the segment leaderboard winners at the end of each week, month or year.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Celebrate the winners of the leaderboard on social media every week, month or year.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Tue, 11 Oct 2016 00:00:00 +0000</pubDate>
        <link>https://peteroome.com/2016/10/11/growth-hacking-a-personalised-print-business-using-strava-segments/</link>
        <guid isPermaLink="true">https://peteroome.com/2016/10/11/growth-hacking-a-personalised-print-business-using-strava-segments/</guid>
      </item>
    
  </channel>
</rss>
