<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>Liam Nugent’s website</title>
  <subtitle>A place where Liam Nugent writes about the web, software product management, and other related ideas.</subtitle>
  <link href="https://liamnugent.me/feed.xml" rel="self" />
  <link href="https://liamnugent.me/" />
  <updated>2026-09-21T00:00:00Z</updated>
  <id>https://liamnugent.me/</id>
  <author>
    <name>Liam Nugent</name>
    <email>liam.nugent@hey.com</email>
  </author>
  <entry>
    <title>Keep the show on the road</title>
    <link href="https://liamnugent.me/posts/building-versus-operating/" />
    <updated>2026-09-21T00:00:00Z</updated>
    <id>https://liamnugent.me/posts/building-versus-operating/</id>
    <content type="html">&lt;p&gt;Products and features exist to try to create or influence an &lt;a href=&quot;https://liamnugent.me/posts/product-management-101/&quot;&gt;outcome&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Search: to sell ads. Social media: to sell ads. AI: to take over your life and kill all humanity.&lt;/p&gt;
&lt;p&gt;(When you look at it like that, bring back the bad old days of sponsored links. All is forgiven.)&lt;/p&gt;
&lt;p&gt;But seriously. If we go with the product lifecycle doctrine, build is only the first part. It’s also where most product people live and work and get stuck, sadly.&lt;/p&gt;
&lt;figure style=&quot;margin: 2rem 0; text-align: center;&quot;&gt;
&lt;svg viewBox=&quot;0 0 470 210&quot; role=&quot;img&quot; aria-labelledby=&quot;lifecycle-title lifecycle-desc&quot; style=&quot;width: 100%; height: auto; max-width: 470px;&quot;&gt;
  &lt;title id=&quot;lifecycle-title&quot;&gt;The product lifecycle, honestly proportioned&lt;/title&gt;
  &lt;desc id=&quot;lifecycle-desc&quot;&gt;A timeline. A short box labelled Build leads by an arrow to a much longer box labelled Operate, which leads by an arrow to the word Retired. Above the Operate box a loop arrow is labelled “Persevere or pivot?”, repeating for as long as the product is operated. A note beneath the Build box reads “where most of us live and get stuck”.&lt;/desc&gt;
  &lt;g fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.5&quot;&gt;
    &lt;rect x=&quot;20&quot; y=&quot;105&quot; width=&quot;85&quot; height=&quot;48&quot;&gt;&lt;/rect&gt;
    &lt;rect x=&quot;140&quot; y=&quot;105&quot; width=&quot;215&quot; height=&quot;48&quot;&gt;&lt;/rect&gt;
    &lt;line x1=&quot;105&quot; y1=&quot;129&quot; x2=&quot;133&quot; y2=&quot;129&quot;&gt;&lt;/line&gt;
    &lt;line x1=&quot;355&quot; y1=&quot;129&quot; x2=&quot;383&quot; y2=&quot;129&quot;&gt;&lt;/line&gt;
    &lt;path d=&quot;M330 100 C330 68, 165 68, 165 98&quot;&gt;&lt;/path&gt;
  &lt;/g&gt;
  &lt;g fill=&quot;currentColor&quot; stroke=&quot;none&quot;&gt;
    &lt;polygon points=&quot;133,129 125,125 125,133&quot;&gt;&lt;/polygon&gt;
    &lt;polygon points=&quot;383,129 375,125 375,133&quot;&gt;&lt;/polygon&gt;
    &lt;polygon points=&quot;165,102 161,92 169,92&quot;&gt;&lt;/polygon&gt;
  &lt;/g&gt;
  &lt;g fill=&quot;currentColor&quot; font-family=&quot;Georgia, serif&quot; font-size=&quot;15&quot; text-anchor=&quot;middle&quot;&gt;
    &lt;text x=&quot;62&quot; y=&quot;134&quot;&gt;Build&lt;/text&gt;
    &lt;text x=&quot;247&quot; y=&quot;134&quot;&gt;Operate&lt;/text&gt;
    &lt;text x=&quot;420&quot; y=&quot;134&quot; font-style=&quot;italic&quot;&gt;Retired&lt;/text&gt;
    &lt;text x=&quot;247&quot; y=&quot;58&quot; font-style=&quot;italic&quot;&gt;Persevere or pivot?&lt;/text&gt;
  &lt;/g&gt;
  &lt;g fill=&quot;currentColor&quot; font-family=&quot;Georgia, serif&quot; font-size=&quot;12&quot; text-anchor=&quot;middle&quot; opacity=&quot;0.75&quot;&gt;
    &lt;text x=&quot;62&quot; y=&quot;176&quot;&gt;where most of us&lt;/text&gt;
    &lt;text x=&quot;62&quot; y=&quot;191&quot;&gt;live and get stuck&lt;/text&gt;
  &lt;/g&gt;
&lt;/svg&gt;
&lt;figcaption&gt;&lt;em&gt;Build should be the short bit.&lt;/em&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Once it’s built, and once your features are starting to be used, there’s a question you should strive to ask as quickly as possible.&lt;/p&gt;
&lt;p&gt;Persevere or pivot?&lt;/p&gt;
&lt;p&gt;Then you keep asking it, until the product is retired. It’s a close relative of the question &lt;a href=&quot;https://liamnugent.me/posts/would-i-do-it-again/&quot;&gt;Jason Fried asks about anything he’s finished&lt;/a&gt; — would I do it again? Same instinct. You’re just asking it about something that’s still running.&lt;/p&gt;
&lt;p&gt;(Interesting side-bar. We say a product “is retired” rather than a product retires. It’s something that happens &lt;em&gt;to&lt;/em&gt; it. It doesn’t just happen.)&lt;/p&gt;
&lt;h2 id=&quot;but-entropy&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/building-versus-operating/#but-entropy&quot; aria-label=&quot;Link to this section: But… entropy&quot;&gt;#&lt;/a&gt;But… entropy&lt;/h2&gt;
&lt;p&gt;After you build, after you finish creating the software and it’s doing what you want it to do, does the job stop?&lt;/p&gt;
&lt;p&gt;Of course not.&lt;/p&gt;
&lt;p&gt;Because… entropy. &lt;a href=&quot;https://liamnugent.me/posts/the-auditors-are-in/&quot;&gt;I’ve been here before on this very site&lt;/a&gt; — 100/100 across the board when I launched it, and then the scores quietly dropped without anything being consciously changed by me.&lt;/p&gt;
&lt;p&gt;Even if it’s the most perfectly written piece of software, unless you maintain it, it will degrade over time. OS updates will come around. Security vulnerabilities will appear as the libraries you depend on are exploited. Life happens.&lt;/p&gt;
&lt;p&gt;And neglect sends you a bill eventually. It once took me &lt;a href=&quot;https://liamnugent.me/posts/upgrading-to-eleventy-v1-on-netlify/&quot;&gt;four hours to get back to the position where I could write a post&lt;/a&gt;. That’s on a personal site with one user and nothing at stake.&lt;/p&gt;
&lt;p&gt;The main point I want to make is that the vast majority of features and products either don’t make it to the operating phase. Or, if they do, they are often neglected.&lt;/p&gt;
&lt;p&gt;So who is thinking, talking and writing about how you keep the show on the road?&lt;/p&gt;
&lt;p&gt;If you are, or if you follow anyone who is, &lt;a href=&quot;mailto:liam.nugent@hey.com&quot;&gt;please email me a link&lt;/a&gt;. I’d love to hear about it.&lt;/p&gt;
&lt;h2 id=&quot;managed-decline&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/building-versus-operating/#managed-decline&quot; aria-label=&quot;Link to this section: Managed decline&quot;&gt;#&lt;/a&gt;Managed decline&lt;/h2&gt;
&lt;p&gt;On the other side of the fence are the people who are essentially doing ‘product’ work, but it’s hidden underneath the guise of customer service or ops management.&lt;/p&gt;
&lt;p&gt;The catch with that organisational model is that they have no access to get changes made.&lt;/p&gt;
&lt;p&gt;So they essentially preside over managed decline, as the shiny thing they were haughtily given by the &lt;em&gt;real&lt;/em&gt; product people either naturally degrades, or what customers really need shifts over time.&lt;/p&gt;
&lt;p&gt;So what’s a guy to do with that situation?&lt;/p&gt;
&lt;p&gt;Chances are that you’re not going to manage to rebuild the whole organisation in one quick move. So you need to do it brick by brick.&lt;/p&gt;
&lt;p&gt;The secret is that the customer service people, the ops teams, need to become your best friends.&lt;/p&gt;
&lt;p&gt;They know what’s needed. They know where the really obvious wins are. They also want the moon on a stick, so you need to exercise judgement. So talk to them all the time. Listen to them. Help them understand that the thing they told you about six months ago is getting sorted, but that seemingly obvious changes in big, highly regulated industries are slow!&lt;/p&gt;
&lt;p&gt;Build up those relationships. Then, the next time you are hiring for a new product person, encourage the superstars in those teams to apply.&lt;/p&gt;
&lt;p&gt;It’s often a brilliant chess move.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;generally younger, enthusiastic and driven people inject great energy into your teams&lt;/li&gt;
&lt;li&gt;they bring mountains of front line experience, so they won’t fall into the trap of making things that &lt;em&gt;might&lt;/em&gt; solve the problem&lt;/li&gt;
&lt;li&gt;the business maximises the value it generates from the same people (a weasel-worded way of saying they cost less!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A win for everyone.&lt;/p&gt;
&lt;p&gt;This isn’t just theory. I’ve done it. Several times.&lt;/p&gt;
&lt;p&gt;It works.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The most important product decision is what you don’t build</title>
    <link href="https://liamnugent.me/posts/what-you-dont-build/" />
    <updated>2026-09-14T00:00:00Z</updated>
    <id>https://liamnugent.me/posts/what-you-dont-build/</id>
    <content type="html">&lt;p&gt;There are two things I’ve tried to take a hard pass on when working on consumer-facing financial services apps.&lt;/p&gt;
&lt;p&gt;A “document hub”.&lt;/p&gt;
&lt;p&gt;And a “notifications centre”.&lt;/p&gt;
&lt;p&gt;You can picture both without any help from me. To my mind they’re both examples of letting the organisation off the hook at the expense of the user. Although it’s fair to say that plenty of users have now been trained to expect these things, and to know roughly how they work — even though they’re crap.&lt;/p&gt;
&lt;p&gt;The problem underneath is real enough. The business has legacy systems that produce PDFs — letters, statements, that sort of thing — because originally they’d have been sent out in the post. Compliance experts will also talk to you about “persistent communications channels”. So you need somewhere in the app to put all of that.&lt;/p&gt;
&lt;p&gt;The lazy solution is a document hub. A list of files you can select and open.&lt;/p&gt;
&lt;p&gt;Seems simple.&lt;/p&gt;
&lt;p&gt;Except every stakeholder involved wants to do a Columbo and add just one more thing. By the end you’ve essentially rebuilt Google Drive, with tagging, archiving, printing and sharing across several channels, each with its own quirks. Not to mention clearing the security and authentication hurdles so the right person sees only the right documents. And so on, and so on.&lt;/p&gt;
&lt;p&gt;And that is &lt;em&gt;just to build the thing&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Never mind the overhead you’ve created to maintain it, month after month, year after year, as each iOS release cycle comes round and some foible you were relying on to prop up a piece of functionality gets removed unilaterally by Apple. Or Google, or Microsoft, or Amazon.&lt;/p&gt;
&lt;p&gt;The notifications centre is the same story with a different opening line. A stakeholder asks whether we could just have a bell icon with a little red dot in the top right corner of the screen. Give it a few months and you’re building a bad Gmail clone.&lt;/p&gt;
&lt;h2 id=&quot;showing-people-the-bill&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/what-you-dont-build/#showing-people-the-bill&quot; aria-label=&quot;Link to this section: Showing people the bill&quot;&gt;#&lt;/a&gt;Showing people the bill&lt;/h2&gt;
&lt;p&gt;I’ve come up against both of these several times now. It is not easy to get people to let go of a mental model they’re holding in their head, particularly when a customer focus group goes some way to validating it. The cliched old Henry Ford line comes to mind — if you’d asked people what they wanted, they’d have said faster horses, not a motor car.&lt;/p&gt;
&lt;p&gt;What I’ve found actually works is illustrating the running costs. Not the build cost. The running costs, laid out over years. That tends to bring people back from the brink.&lt;/p&gt;
&lt;p&gt;But killing the platform doesn’t make the original problem go away. How do we communicate with our customers in a way that suits them and meets the legal obligations on our side?&lt;/p&gt;
&lt;p&gt;The answer I’ve come back to every time is to take each use case on its own merits. Be rigorous about what actually needs to be said, and when. Then be ruthless about whether it needs a whole platform built first. It’s the same test I keep applying when &lt;a href=&quot;https://liamnugent.me/posts/picking-the-right-problems/&quot;&gt;picking the right problems to solve&lt;/a&gt; — does it make the boat go faster?&lt;/p&gt;
&lt;p&gt;Most of the time — not always, to be fair — the answer is to use something simple, or something that already exists, even if it isn’t perfect.&lt;/p&gt;
&lt;p&gt;Resist, resist, resist the temptation to build a one-size-fits-all.&lt;/p&gt;
&lt;p&gt;I’ve even seen the notifications centre idea get built, and then the intent of the original message couldn’t be met by the thing that had been built to carry it.&lt;/p&gt;
&lt;p&gt;So my advice comes in two parts. Be extremely choosy about what you let be added to your system. And be militant about taking things out.&lt;/p&gt;
&lt;h2 id=&quot;nobody-gets-promoted-for-deleting-things&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/what-you-dont-build/#nobody-gets-promoted-for-deleting-things&quot; aria-label=&quot;Link to this section: Nobody gets promoted for deleting things&quot;&gt;#&lt;/a&gt;Nobody gets promoted for deleting things&lt;/h2&gt;
&lt;p&gt;The second part is much harder than the first, and it isn’t simply cowardice. &lt;a href=&quot;https://gerrymcgovern.com/what-are-you-going-to-remove-today/&quot;&gt;Gerry McGovern&lt;/a&gt; has been saying this for a long time:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Those who create and launch are the people who are rewarded and looked up to because we still have a culture that rewards the production of things over everything else. To review, to maintain, to remove—this is all seen as lesser work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His Top Tasks work found that stripping roughly 80 to 90 per cent of a site’s content made companies sell more, cut their support calls and helped people find what they were after faster. Removal as the improvement itself, not the tidying up afterwards. I’ve made the small-scale version of this argument before, about &lt;a href=&quot;https://liamnugent.me/posts/the-question-about-frequently-asked-questions/&quot;&gt;deleting the FAQ page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And it runs deeper than the org chart. &lt;a href=&quot;https://www.nature.com/articles/s41586-021-03380-y&quot;&gt;Klotz and colleagues, writing in Nature&lt;/a&gt;, ran eight experiments and found that people systematically overlook subtractive changes, even when removing was obviously the better move. Additive ideas arrive quickly and cheaply. Subtractive ones cost real cognitive effort. So we are hard wired for this.&lt;/p&gt;
&lt;p&gt;Which means spending the brain power to work out what success genuinely is. And success is usually something out there in the world of the customer, rather than something in here, in the world of the organisation.&lt;/p&gt;
&lt;h2 id=&quot;but-building-is-nearly-free-now-isnt-it&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/what-you-dont-build/#but-building-is-nearly-free-now-isnt-it&quot; aria-label=&quot;Link to this section: But building is nearly free now, isn’t it?&quot;&gt;#&lt;/a&gt;But building is nearly free now, isn’t it?&lt;/h2&gt;
&lt;p&gt;DHH is &lt;a href=&quot;https://world.hey.com/dhh/endless-execution-4157e065&quot;&gt;thoroughly delighted&lt;/a&gt; about endless execution — in the age of agents, every idea, every hunch and every experiment is within immediate reach.&lt;/p&gt;
&lt;p&gt;I think it’s easy to misunderstand that as an argument for making more stuff all the time.&lt;/p&gt;
&lt;p&gt;Using agents to do the pruning seems like the smarter move to me. To do the maintenance. To remove things judiciously, and more carefully than anyone is going to manage by hand.&lt;/p&gt;
&lt;p&gt;Stewart Brand’s &lt;a href=&quot;https://press.stripe.com/maintenance-part-one&quot;&gt;Maintenance of Everything&lt;/a&gt; sits on the paradox that maintenance is absolutely necessary and also entirely optional.&lt;/p&gt;
&lt;p&gt;Optional until it’s essential, more like.&lt;/p&gt;
&lt;h2 id=&quot;the-elephant-in-the-rollneck&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/what-you-dont-build/#the-elephant-in-the-rollneck&quot; aria-label=&quot;Link to this section: The elephant in the rollneck&quot;&gt;#&lt;/a&gt;The elephant in the rollneck&lt;/h2&gt;
&lt;p&gt;The elephant in the room, wearing a custom-made Issey Miyake black rollneck, is of course Steve Jobs’ 1997 matrix. Two consumer products, two pro products, and one stellar product in each box.&lt;/p&gt;
&lt;figure style=&quot;margin: 2rem 0; text-align: center;&quot;&gt;
&lt;svg viewBox=&quot;0 0 400 300&quot; role=&quot;img&quot; aria-labelledby=&quot;matrix-title matrix-desc&quot; style=&quot;width: 100%; height: auto; max-width: 400px;&quot;&gt;
  &lt;title id=&quot;matrix-title&quot;&gt;Steve Jobs’ 1997 product matrix&lt;/title&gt;
  &lt;desc id=&quot;matrix-desc&quot;&gt;A two-by-two grid. The columns are Consumer and Pro, the rows are Desktop and Portable. Consumer Desktop is the iMac, Pro Desktop is the Power Macintosh, Consumer Portable is the iBook, and Pro Portable is the PowerBook.&lt;/desc&gt;
  &lt;g fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.5&quot;&gt;
    &lt;rect x=&quot;70&quot; y=&quot;40&quot; width=&quot;310&quot; height=&quot;230&quot;&gt;&lt;/rect&gt;
    &lt;line x1=&quot;225&quot; y1=&quot;40&quot; x2=&quot;225&quot; y2=&quot;270&quot;&gt;&lt;/line&gt;
    &lt;line x1=&quot;70&quot; y1=&quot;155&quot; x2=&quot;380&quot; y2=&quot;155&quot;&gt;&lt;/line&gt;
  &lt;/g&gt;
  &lt;g fill=&quot;currentColor&quot; font-family=&quot;Georgia, serif&quot; font-size=&quot;15&quot; text-anchor=&quot;middle&quot;&gt;
    &lt;text x=&quot;147&quot; y=&quot;29&quot; font-style=&quot;italic&quot;&gt;Consumer&lt;/text&gt;
    &lt;text x=&quot;302&quot; y=&quot;29&quot; font-style=&quot;italic&quot;&gt;Pro&lt;/text&gt;
    &lt;text x=&quot;147&quot; y=&quot;103&quot;&gt;iMac&lt;/text&gt;
    &lt;text x=&quot;302&quot; y=&quot;94&quot;&gt;Power&lt;/text&gt;
    &lt;text x=&quot;302&quot; y=&quot;113&quot;&gt;Macintosh&lt;/text&gt;
    &lt;text x=&quot;147&quot; y=&quot;218&quot;&gt;iBook&lt;/text&gt;
    &lt;text x=&quot;302&quot; y=&quot;218&quot;&gt;PowerBook&lt;/text&gt;
    &lt;text transform=&quot;translate(52 97) rotate(-90)&quot; font-style=&quot;italic&quot;&gt;Desktop&lt;/text&gt;
    &lt;text transform=&quot;translate(52 212) rotate(-90)&quot; font-style=&quot;italic&quot;&gt;Portable&lt;/text&gt;
  &lt;/g&gt;
&lt;/svg&gt;
&lt;figcaption&gt;&lt;em&gt;Four boxes. One product in each. Everything else cancelled.&lt;/em&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;He then shut down all the other product lines people were working on. That pooled the engineering talent instead of spreading it thin. It was a brave move, and it did the trick.&lt;/p&gt;
&lt;p&gt;Apple are up to something like 52 different products and services at the last count, so the end game was never to only sell four things. The point was to focus the organisation on the most important ones, so they didn’t misspend the opportunity cost that allowed them to become one of the biggest corporations in the world.&lt;/p&gt;
&lt;p&gt;One thing at a time. &lt;em&gt;Une chose à la fois.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;(I’d have written a shorter post, but I couldn’t work out what to take out.)&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The product strategy isn’t the roadmap</title>
    <link href="https://liamnugent.me/posts/product-strategy-isnt-the-roadmap/" />
    <updated>2026-09-13T00:00:00Z</updated>
    <id>https://liamnugent.me/posts/product-strategy-isnt-the-roadmap/</id>
    <content type="html">&lt;p&gt;Leading product decisions inside a large organisation is really, really hard. In a regulated industry, harder still.&lt;/p&gt;
&lt;p&gt;But not for the reasons you might expect.&lt;/p&gt;
&lt;p&gt;Here’s the part that took me a while to see. The people at the top want simplicity. They genuinely do. They preach it, and they push hundreds — sometimes thousands — of people to chase it. Remove the things we don’t need. Declutter. Think about only what’s absolutely necessary.&lt;/p&gt;
&lt;p&gt;All laudable stuff.&lt;/p&gt;
&lt;p&gt;And the people on the front line want precisely the same thing. The engineers, the customer service teams, the designers, the operational folk. They understand the essence of what’s required. They’ve understood it for ages.&lt;/p&gt;
&lt;p&gt;So if the top wants simplicity and the front line wants simplicity, why is it so hard to come by?&lt;/p&gt;
&lt;p&gt;The middle bit.&lt;/p&gt;
&lt;p&gt;Between a leader setting a direction and something actually happening in the real world, there are layers of people whose whole job is to process that direction. There is a class of smart people working in that space whose currency is the roadmap.&lt;/p&gt;
&lt;p&gt;I’m one of them.&lt;/p&gt;
&lt;h2 id=&quot;first-you-need-a-vision&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/product-strategy-isnt-the-roadmap/#first-you-need-a-vision&quot; aria-label=&quot;Link to this section: First you need a vision&quot;&gt;#&lt;/a&gt;First you need a vision&lt;/h2&gt;
&lt;p&gt;To get to a roadmap, you need a vision. And the vision is the hard bit.&lt;/p&gt;
&lt;p&gt;That’s the part where you have to be bold enough to propose something the business will actually get behind. But not so outlandish that you end up on the rocks. There’s a narrow channel between those two and most of the skill is in finding it.&lt;/p&gt;
&lt;p&gt;Roadmaps are also a dangerous thing to own.&lt;/p&gt;
&lt;p&gt;Once you publish one, people quite reasonably want dates against it. And that &lt;em&gt;is&lt;/em&gt; reasonable. Building and keeping teams burns through serious £££s, so the people paying want to know what they’re getting and when they can cash the cheque.&lt;/p&gt;
&lt;p&gt;The trouble is that putting dates against things involves predicting the future. Which, however much we all agree to pretend otherwise, is impossible. (&lt;a href=&quot;https://basecamp.com/shapeup/2.1-chapter-07&quot;&gt;Basecamp&lt;/a&gt; are blunter about this than most.)&lt;/p&gt;
&lt;h2 id=&quot;a-strategy-is-a-response-to-a-challenge&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/product-strategy-isnt-the-roadmap/#a-strategy-is-a-response-to-a-challenge&quot; aria-label=&quot;Link to this section: A strategy is a response to a challenge&quot;&gt;#&lt;/a&gt;A strategy is a response to a challenge&lt;/h2&gt;
&lt;p&gt;Here’s what I think gets missed.&lt;/p&gt;
&lt;p&gt;A strategy doesn’t appear out of thin air. At its core, it is a response to a challenge.&lt;/p&gt;
&lt;p&gt;The challenge might be, “we’ve got decent market share but we’re not profitable enough”. Or it might be, “we’ve got a product people love but not enough of them use it often enough”. Those are completely different problems, and the strategy in response to each will be completely different too.&lt;/p&gt;
&lt;p&gt;But whatever strategy you set, &lt;em&gt;that&lt;/em&gt; is the thing that shakes out the roadmap. Not the other way round.&lt;/p&gt;
&lt;p&gt;I’ve written before about &lt;a href=&quot;https://liamnugent.me/posts/picking-the-right-problems/&quot;&gt;picking the right problems to solve&lt;/a&gt;, and about checking each one against the strategy before you go anywhere near it. What that post quietly assumed was that a strategy existed to be checked against.&lt;/p&gt;
&lt;p&gt;Take the first one. Not profitable enough. We can’t move on price, so we need to be more cost efficient. Which means we need to simplify, and prune the waste out of how we work.&lt;/p&gt;
&lt;p&gt;Fine. Now go and get a few thousand people to rally round that idea as it lands on their particular team, in their particular department, with their particular targets.&lt;/p&gt;
&lt;p&gt;A tough call.&lt;/p&gt;
&lt;h2 id=&quot;then-theres-the-lag&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/product-strategy-isnt-the-roadmap/#then-theres-the-lag&quot; aria-label=&quot;Link to this section: Then there’s the lag&quot;&gt;#&lt;/a&gt;Then there’s the lag&lt;/h2&gt;
&lt;p&gt;The other dimension in a large organisation is the lag between strategy and execution.&lt;/p&gt;
&lt;p&gt;You see it most clearly in the teams out on the outer reaches of the business. By the time an idea makes its way out to the provinces, the central direction has changed, or evolved, or been watered down enough that those teams can’t see any benefit in it. So they let the wave wash over them and carry on doing what they’ve always done.&lt;/p&gt;
&lt;p&gt;And honestly? Who could blame them.&lt;/p&gt;
&lt;p&gt;Because the question they’re asking is a fair one: how many strategic pillars, pivots, refreshes, business themes and key mandates have come and gone, and been abandoned&lt;br&gt;
to short-sightedly hit the scorecard, as the organisation watches Q4 hove into view?&lt;/p&gt;
&lt;p&gt;Quite a few, is the answer.&lt;/p&gt;
&lt;h2 id=&quot;make-your-vision-easy-to-use&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/product-strategy-isnt-the-roadmap/#make-your-vision-easy-to-use&quot; aria-label=&quot;Link to this section: Make your vision easy to use&quot;&gt;#&lt;/a&gt;Make your vision easy to use&lt;/h2&gt;
&lt;p&gt;So the real question for product leadership isn’t “what’s the strategy?”. It’s this:&lt;/p&gt;
&lt;p&gt;How do I make my vision &lt;em&gt;easy to use&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;That’s an idea I’ve nicked from &lt;a href=&quot;https://lukew.com/ff/entry.asp?854=&quot;&gt;Luke Wroblewski&lt;/a&gt;, who writes about design principles needing to be specific enough that people can actually choose between options with them. “Make it easy to use” is a uselessly broad design principle. It is a surprisingly good test for a strategy.&lt;/p&gt;
&lt;p&gt;Because humans go for the path of least resistance. All of them.&lt;/p&gt;
&lt;p&gt;That goes for the teams producing the work. It goes for your peers, who have their own ideas that happen to depend on yours. And it goes for the leaders who need confidence that the business knows where it’s going.&lt;/p&gt;
&lt;p&gt;So the roadmap needs to be easy to find. Easy to read. Easy to understand. And it needs to give whoever reads it some benefit that’s relevant to them, rather than to you.&lt;/p&gt;
&lt;p&gt;Better still is a roadmap that draws automatically from the tools the business already uses, so it acts as a mirror — showing back what teams are &lt;em&gt;really&lt;/em&gt; planning to do, rather than what everyone agreed to say they’d do.&lt;/p&gt;
&lt;p&gt;And if you don’t like what you see in the mirror, well. At least now you can do something about it.&lt;/p&gt;
&lt;p&gt;None of this is an argument for abolishing the roadmap. I’d be out of a job. It’s an argument for remembering which one is the tail and which one is the dog.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>A List Apart Again</title>
    <link href="https://liamnugent.me/posts/a-list-apart-again/" />
    <updated>2025-04-27T00:00:00Z</updated>
    <id>https://liamnugent.me/posts/a-list-apart-again/</id>
    <content type="html">&lt;p&gt;I’ve had another article published on A List Apart. This time, I am writing about &lt;a href=&quot;https://alistapart.com/article/from-beta-to-bedrock-build-products-that-stick/&quot;&gt;how to build products that stick&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A List Apart is the OG webzine from the people who literally wrote the book on &lt;a href=&quot;https://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0735712018/ref=sr_1_3&quot;&gt;Designing with Web Standards&lt;/a&gt;, &lt;a href=&quot;https://abookapart.com/products/responsive-web-design&quot;&gt;Responsive Web Design&lt;/a&gt;, &lt;a href=&quot;https://abookapart.com/products/mobile-first&quot;&gt;Mobile First Design&lt;/a&gt;, and many, many more.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Midnight Train to Georgia</title>
    <link href="https://liamnugent.me/posts/single-feature-apps/" />
    <updated>2025-03-08T00:00:00Z</updated>
    <id>https://liamnugent.me/posts/single-feature-apps/</id>
    <content type="html">&lt;p&gt;Inspired by &lt;a href=&quot;https://zachwaugh.com&quot;&gt;Zach Waugh&lt;/a&gt; and his simple sketching app, &lt;a href=&quot;https://zachwaugh.com/whirl/&quot;&gt;Whirl&lt;/a&gt;, I’ve released an iOS app today that does one thing, and hopefully does it well.&lt;/p&gt;
&lt;p&gt;It is called &lt;a href=&quot;https://apps.apple.com/gb/app/milngavie-train/id6529520293&quot;&gt;Milngavie Train&lt;/a&gt; and it shows live departure information for the next train to leave Milngavie Station in Scotland.&lt;/p&gt;
&lt;p&gt;Why bother, you may ask! The answer is simple: when I am taking a train into town soon, the time when the next train will leave is all I need to know. I don’t need access to the entire timetabling information for the whole Scotrail network. I don’t need to use Google Maps or Apple Maps to summon the culmination of all of humanity’s geographical knowledge. But most of all, I am usually slightly late and am walking briskly down the street towards the station and I just want confirmation of two things: the train is on time AND which platform I need to aim for. (I may or may not have ended up jumping on the wrong train in the past when under time pressure. I couldn&#39;t possibly comment!)&lt;/p&gt;
&lt;p&gt;Having to open Apple Maps, enter my starting point, my target destination and choose my mode of transport is, for me, not possible to do with my fat thumbs while walking along the street as fast as I can, and trying to cross safely through traffic. I just need one button to mash to see my answer.&lt;/p&gt;
&lt;p&gt;So this works for me and it solves my problem. Since putting it together and testing it myself, I’ve used it loads of times.&lt;/p&gt;
&lt;p&gt;The original target market is 1 person (me!) but when I had a look at the published &lt;a href=&quot;https://dataportal.orr.gov.uk/statistics/usage/estimates-of-station-usage&quot;&gt;passenger numbers&lt;/a&gt; for Milngavie Station, there are 736,148 entries and exits each year. Let’s assume that half of those people are entering the station to catch a train, so there are potentially 368,074 other people who might find it helpful. That seems like enough people for me to stick in on the iOS app store and see if anyone else thinks so.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Picking the right problems to solve</title>
    <link href="https://liamnugent.me/posts/picking-the-right-problems/" />
    <updated>2025-03-05T00:00:00Z</updated>
    <id>https://liamnugent.me/posts/picking-the-right-problems/</id>
    <content type="html">&lt;p&gt;You have backlog full of ideas. You probably have some work that is half-done but always seems to get stuck. There&#39;s maybe a fresh incident that&#39;s emerging. And there&#39;s a key metric that looks like it is going South but you&#39;re not even able to make time to think about it.&lt;/p&gt;
&lt;p&gt;Sound familiar?&lt;/p&gt;
&lt;p&gt;So how to do you get your head up and decide where to focus your attention and your team&#39;s energy?&lt;/p&gt;
&lt;p&gt;Get methodical.&lt;/p&gt;
&lt;p&gt;Plot these things on the urgent v important axes—the &lt;a href=&quot;https://en.wikipedia.org/wiki/Time_management#Eisenhower_method&quot;&gt;Eisenhower matrix&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then take each one in turn and try to capture the problem statement as a simple sentence. The shorter the better.&lt;/p&gt;
&lt;p&gt;Pick the most important+urgent problem from your matrix and compare it against your company/team/personal strategy. Is this even something that you want to solve? If it doesn&#39;t align to your strategy — i.e. it doesn&#39;t “&lt;a href=&quot;https://www.youtube.com/watch?v=VlTfbGemGcM&quot;&gt;make the boat go faster&lt;/a&gt;” — then stop there and ignore it.&lt;/p&gt;
&lt;p&gt;If it does feel like the right thing to do, then you need to somehow get a sense of the benefits of solving that problem and understand the scale of the issue.&lt;/p&gt;
&lt;p&gt;Write a list of the important questions you want to solve BEFORE looking at your data. &lt;em&gt;Then&lt;/em&gt; go looking for the answers. Rough figures are okay. Assumptions are okay to fill in the gaps. You&#39;re just trying to understand the order of magnitude of the problem. Remember data can only tell you what&#39;s happened in the past. You’re not looking for data on its own. You are looking for signals in the data that tell you if something in the real world is happening, or not happening.&lt;/p&gt;
&lt;p&gt;If you&#39;ve come this far, you are in a good place. You have a snappy problem statement, you have a sense of the scale of the problem, and that should point to what the benefits of solving that problem might be.&lt;/p&gt;
&lt;p&gt;Refer back to your urgent vs important matrix but this time shuffle the order of importance based on the benefits you’ve sketched. And if you have any real-world deadlines or dates that you need to consider, shuffle the urgency based on those dates.&lt;/p&gt;
&lt;p&gt;What is sitting on the top right? It’s your #1 priority, that’s what!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Product Management 101</title>
    <link href="https://liamnugent.me/posts/product-management-101/" />
    <updated>2024-03-05T00:00:00Z</updated>
    <id>https://liamnugent.me/posts/product-management-101/</id>
    <content type="html">&lt;h2 id=&quot;outcomes-not-outputs&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/product-management-101/#outcomes-not-outputs&quot; aria-label=&quot;Link to this section: Outcomes not outputs&quot;&gt;#&lt;/a&gt;Outcomes not outputs&lt;/h2&gt;
&lt;p&gt;Focus on the benefits for the users and customers. It should be about outcomes not outputs.&lt;/p&gt;
&lt;p&gt;That’s easy to say, but what does it mean?&lt;/p&gt;
&lt;h3&gt;It means...&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;no one cares how many meetings you went to&lt;/li&gt;
&lt;li&gt;no one cares how many defects the regression testing pack found&lt;/li&gt;
&lt;li&gt;no one cares how many questions your drafted for customer research sessions&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;It means...&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;be clear on &lt;em&gt;why&lt;/em&gt; this is important for you and more importantly why it is important for the customer&lt;/li&gt;
&lt;li&gt;look at the current situation and work out &lt;em&gt;what&lt;/em&gt; needs to be better, more, worse, or less&lt;/li&gt;
&lt;li&gt;think about &lt;em&gt;how&lt;/em&gt; you could change it. What’s your theory??&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;It means...&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;work out how you would know if your theory is right?&lt;/li&gt;
&lt;li&gt;don&#39;t “obsess about data”, obsess about the signals that tell you if your theory is good or bad&lt;/li&gt;
&lt;li&gt;learn what you can and then apply your new knowledge to the problem. If you suspect there is more juice in the lemon, keep squeezing. Or if there isn’t, look for another one.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(Another problem, that is, not another lemon.)&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The Auditors Are In</title>
    <link href="https://liamnugent.me/posts/the-auditors-are-in/" />
    <updated>2023-02-17T00:00:00Z</updated>
    <id>https://liamnugent.me/posts/the-auditors-are-in/</id>
    <content type="html">&lt;p&gt;Recently, I have been considering moving to a new role at work that is 100% focussed on accessibility. This led me to having a look at my own site and running the Google Lighthouse audit to check I was practising what I preach.&lt;/p&gt;
&lt;p&gt;When I first published this website, I was very pleased that I was clocking 100/100 &lt;a href=&quot;https://twitter.com/liamjnugent/status/1246061994169466881&quot;&gt;across the board&lt;/a&gt;. But... entropy. Which meant that without anything consciously being changed by me, the scores for this site had dropped.&lt;/p&gt;
&lt;p&gt;Performance had dropped due to my use of another font for headings which was blocking the first contentful paint. I was pleased to sort that by using the preload tips in this article: https://simonhearne.com/2021/layout-shifts-webfonts/&lt;/p&gt;
&lt;p&gt;And my introduction of a search form was a bit slapdash. I forgot to use a label on the search input which is a basic accessibility mistake. Somewhere on the way, I had used some text that wasn’t high enough contrast with the background too. Both of which were simple fixes.&lt;/p&gt;
&lt;p&gt;Pleased to report that the scores are back up to 100! https://twitter.com/liamjnugent/status/1626636214139748366&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Happy birthday, Jeffrey</title>
    <link href="https://liamnugent.me/posts/happy-birthday-jeffrey/" />
    <updated>2023-01-12T00:00:00Z</updated>
    <id>https://liamnugent.me/posts/happy-birthday-jeffrey/</id>
    <content type="html">&lt;p&gt;This might be rich coming from a person you’ve never met in person. Or, more accurately, I should say &lt;em&gt;nearly&lt;/em&gt; met in person.&lt;/p&gt;
&lt;p&gt;In the autumn of 2018, I travelled all the way from Scotland to Chicago to hear you talk at An Event Apart. I made the journey with my former colleague, Laurence “&lt;a href=&quot;https://fuzzylogic.me/&quot;&gt;Fuzzy Logic&lt;/a&gt;” Hughes. He tuned me into web standards and the whole “A ~thing~ Apart” universe. He was the one who said we should do it. I’m very glad that we did.&lt;/p&gt;
&lt;p&gt;Looking back today, I suppose that none of us realised that we were in the &lt;a href=&quot;https://aneventapart.com/&quot;&gt;autumn of An Event Apart&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We arrived in the windy city a couple of days early so we could see the place. We trawled record store bins. We set sail on the boat tour. We had dinner in the Chicago Athletic Association and imagined meeting characters from a John Hughes movie.&lt;/p&gt;
&lt;img src=&quot;https://liamnugent.me/posts/happy-birthday-jeffrey/img/ferris.jpg&quot; loading=&quot;lazy&quot; alt=&quot;Photograph of Laurence standing in front of a painting called &#39;A Sunday Afternoon on the Island of La Grande Jatte&#39;. It was made famous by a scene in the movie, Ferris Bueller&#39;s Day Off.&quot;&gt;
&lt;p&gt;I even took myself off to watch a random high school football game (Go UCW Warriors!) and found myself sitting next to the school principal who sent me a package of team T-shirts when I got home. I’m wearing one of them today.&lt;/p&gt;
&lt;p&gt;We spent the night before the conference in a dive bar out towards Wicker Park. We drank too much beer and danced like no–one was watching. Because no–one was watching. It was empty apart from us, the barman and a handful of regulars who gave the guys with the funny accents a wide berth. “So you guys are Irish, right?”&lt;/p&gt;
&lt;p&gt;We made our way back to the hotel, probably later than we should, and got ready for the main event. We woke up on the Monday morning and made our way to the conference venue and couldn’t wait to drink it all in.&lt;/p&gt;
&lt;p&gt;First up: the Great Jeffrey Zeldman talking about the The Content Performance Quotient. Or so I’m told. I spent most of the talk nipping outside to take the riverside air.&lt;/p&gt;
&lt;p&gt;Having pulled myself together, I saw you milling around in the lobby between talks. I thought that this is my chance to say hello. But I bottled it.&lt;/p&gt;
&lt;p&gt;I wish I had had the courage.&lt;/p&gt;
&lt;p&gt;I guess I assumed that there would be another An Event Apart in the future. By which time I would be a bit cooler, a bit more credible and perhaps there was a chance I could be a speaker myself. So you’d maybe know a bit about me and it would be easier to break the ice.&lt;/p&gt;
&lt;p&gt;It is sad, for me, that that chance is gone. The whole scene around the An Event Part events was, or I should say is, more than the sum of its parts. I feel like it will live on through the young(er) team like &lt;a href=&quot;https://jensimmons.com/&quot;&gt;Jen Simmons&lt;/a&gt;, &lt;a href=&quot;https://bradfrost.com/&quot;&gt;Brad Frost&lt;/a&gt;, &lt;a href=&quot;https://daverupert.com/&quot;&gt;Dave Rupert&lt;/a&gt;, &lt;a href=&quot;http://mina.codes/#%F0%9F%92%8B&quot;&gt;Mina Markham&lt;/a&gt; and the others, but maybe I’m too romantic about it.&lt;/p&gt;
&lt;p&gt;Jumping back to Chicago 2018, the event itself was amazing. I learned loads. I found my tribe. Heck, this was a conference that played songs from &lt;a href=&quot;https://open.spotify.com/playlist/2IZT1o9xYFquH1xiJ38HVi?si=2702f65713424c8f&quot;&gt;Weasels Ripped My Flesh&lt;/a&gt; between talks!&lt;/p&gt;
&lt;p&gt;So thank you, Jeffrey, for the part you played in putting it all together. And Happy Birthday from a guy you’ve nearly met.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Search done simply</title>
    <link href="https://liamnugent.me/posts/search-done-simply/" />
    <updated>2022-10-23T00:00:00Z</updated>
    <id>https://liamnugent.me/posts/search-done-simply/</id>
    <content type="html">&lt;h2 id=&quot;the-goal&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/search-done-simply/#the-goal&quot; aria-label=&quot;Link to this section: The goal&quot;&gt;#&lt;/a&gt;The goal&lt;/h2&gt;
&lt;p&gt;To add a search function to this website as simply as possible. And to keep it in line with &lt;a href=&quot;https://liamnugent.me/posts/how-this-site-is-coded/&quot;&gt;my ascetic ideals&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;research-and-execution&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/search-done-simply/#research-and-execution&quot; aria-label=&quot;Link to this section: Research and execution!&quot;&gt;#&lt;/a&gt;Research and execution!&lt;/h2&gt;
&lt;p&gt;After a bit of judicious Googling on the subject of how to build a search function on a static site, I found an article by Raymond Camden called &lt;a href=&quot;https://www.raymondcamden.com/2019/10/20/adding-search-to-your-eleventy-static-site-with-lunr&quot;&gt;Adding Search to your Eleventy Static Site with Lunr&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;His post talks about the wider discussion on how to create ‘dynamic’ features in a ‘static’ world. Remember, this website isn’t connected to a database. I can’t dynmically query the content within a database and return a set of results. In very broad strokes, I would have to create an index of all the posts at build time and then run a search query against that index.&lt;/p&gt;
&lt;p&gt;That opens the question of forcing the user to download the entire index in order to run the query. It seems wasteful to force every user of every page to download an index of all the content in the background just in case they need it for a search query.&lt;/p&gt;
&lt;p&gt;All of this would, of course, require some interactivity on the screen and therefore some JavaScript. For regualar readers, you will know that I have a bigger plan to avoid client-side JavaScript for as long as possible.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;As I get older, I’m less militant about this idea and I am warming to the possibilty of using some as a progressive enhancement. Perhaps search is the prime candidate to be enhanced.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This was all starting to feel like a bit of a dead end.&lt;/p&gt;
&lt;p&gt;However, one sentence jumped out at me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For my blog here, I make use of Google’s Custom Search Engine feature. This basically lets me offload search to Google, who I hear knows a few things about search.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The germ of an idea formed whereby I could maybe capture a search query on my site but use Google to get the results for me. The trade-off would be sending a user to a Google search results screen. Given that most of the searches will probably be done by me looking for my own content, I could live with that!&lt;/p&gt;
&lt;h3&gt;Sending a search query to Google&lt;/h3&gt;
&lt;p&gt;It was back to basics here. I know from observing the URL when I do a Google search that the URL follows the pattern &lt;code&gt;https://www.google.com/search?q=query+goes+here&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If I want to limit the scope of a search to a particular website, I can use a &lt;a href=&quot;https://support.google.com/websearch/answer/2466433&quot;&gt;search operator&lt;/a&gt; to do that. I can punch in &lt;code&gt;site:liamnugent.me&lt;/code&gt; in the search box and then add my query after that and hit submit. Google will return matching search results only from within the website https://liamnugent.me.&lt;/p&gt;
&lt;p&gt;Looking up at the URL will show me something in the pattern &lt;code&gt;https://www.google.co.uk/search?q=site%3Aliamnugent.me&amp;amp;q=query+goes+here&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I can use an HTML form to capture form data to fashion a URL in my desired pattern and submit that URL to Google.&lt;/p&gt;
&lt;h3&gt;Building the form&lt;/h3&gt;
&lt;p&gt;The root of the URL is: &lt;code&gt;https://www.google.co.uk/search&lt;/code&gt; which will be the &lt;code&gt;action&lt;/code&gt; attribute of the form.&lt;/p&gt;
&lt;p&gt;I can use the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-method&quot;&gt;GET method&lt;/a&gt; to append the form data with a &lt;code&gt;?&lt;/code&gt; separator.&lt;/p&gt;
&lt;p&gt;The data I want to append is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;q=site:liamnugent.me&lt;/code&gt; &amp;lt;&amp;lt; this will be fixed and the user doesn’t need to see this so I’ll use a hidden form input&lt;/li&gt;
&lt;li&gt;&lt;code&gt;q=query+goes+here&lt;/code&gt; &amp;lt;&amp;lt; this will be whatever query the user submits&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here’s my code for the form:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  &amp;lt;form action=&amp;quot;https://www.google.co.uk/search&amp;quot; method=&amp;quot;get&amp;quot;&amp;gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;q&amp;quot; value=&amp;quot;site:liamnugent.me&amp;quot;&amp;gt; 
      &amp;lt;fieldset&amp;gt;      
        &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot;&amp;gt;
        &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Search this site&amp;quot;&amp;gt;
      &amp;lt;/fieldset&amp;gt;
  &amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Bear in mind that the form will &lt;a href=&quot;https://developers.google.com/maps/url-encoding&quot;&gt;build a valid URL&lt;/a&gt; before submitting it to Google.&lt;/p&gt;
&lt;h2 id=&quot;summing-up&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/search-done-simply/#summing-up&quot; aria-label=&quot;Link to this section: Summing up&quot;&gt;#&lt;/a&gt;Summing up&lt;/h2&gt;
&lt;p&gt;This works well for me just now. As I mentioned above, this is a candidate that is ripe for progressive enhancement. Although, I’m going to wait to see how often I use the search before I make any moves.&lt;/p&gt;
&lt;h2 id=&quot;references&quot;&gt;&lt;a class=&quot;direct-link&quot; href=&quot;https://liamnugent.me/posts/search-done-simply/#references&quot; aria-label=&quot;Link to this section: References&quot;&gt;#&lt;/a&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://developer.mozilla.org/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data&lt;/li&gt;
&lt;li&gt;https://ethanmarcotte.com/ – uses something similar but uses DuckDuckGo search engine rather than Google.&lt;/li&gt;
&lt;li&gt;https://fuzzylogic.me/ – my brilliant old pal, who does something similar as the foundation for a progressively enhanced experience, but he layers on a super-nice automatic search after you type 3 characters... I may well be tapping him up for some knowledge if I decide I need to improve my search.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
</feed>