<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jan Hares</title>
    <description>The latest articles on DEV Community by Jan Hares (@decivo).</description>
    <link>https://dev.to/decivo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3877373%2Fef4b615b-8f21-4429-855c-5517f7e4bebc.png</url>
      <title>DEV Community: Jan Hares</title>
      <link>https://dev.to/decivo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/decivo"/>
    <language>en</language>
    <item>
      <title>We Stopped Writing Code First. Here's Why Our Projects Got Better.</title>
      <dc:creator>Jan Hares</dc:creator>
      <pubDate>Mon, 13 Apr 2026 20:44:12 +0000</pubDate>
      <link>https://dev.to/decivo/we-stopped-writing-code-first-heres-why-our-projects-got-better-4871</link>
      <guid>https://dev.to/decivo/we-stopped-writing-code-first-heres-why-our-projects-got-better-4871</guid>
      <description>&lt;p&gt;There's a moment in every project where you realize you've been building the wrong thing.&lt;/p&gt;

&lt;p&gt;For us, it happened on a client project last year. Three weeks of clean code. Solid architecture. Tests passing. Then we showed it to actual users and watched them struggle with the core flow we thought was intuitive.&lt;/p&gt;

&lt;p&gt;We didn't have a code problem. We had a clarity problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The pattern we kept seeing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We're a lean software studio. We build prototypes and MVPs for startups and companies. And the pattern was always the same:&lt;br&gt;
Client comes in with an idea. Idea sounds great in a meeting. Everyone's excited. We start coding. Weeks later, something feels off. Users don't behave the way we expected. Features that seemed essential get ignored. The thing nobody asked for turns out to be the thing everyone actually needs.&lt;/p&gt;

&lt;p&gt;Sound familiar?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we changed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We stopped starting with code.&lt;br&gt;
Not permanently. We still write code every day. But we stopped making it the first thing we do.&lt;/p&gt;

&lt;p&gt;Now, before we open an editor, we do three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A clickable prototype that feels real
Not wireframes. Not sketches on a napkin. A Figma prototype that looks and feels like a real product. No backend, no database – but real enough that when you put it in front of someone, they try to use it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This takes us 2-3 days. It used to take weeks. AI tools like Figma Make help, but the key insight isn't the tooling – it's that a prototype answers questions a meeting never will.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Five conversations we don't want to have
We put the prototype in front of 5-8 people from the target audience. Not friends. Not the client's team. Actual potential users.
And we don't ask "do you like it?" – that's a useless question. Everyone says yes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We ask: "Show me how you'd do X." Then we shut up and watch.&lt;br&gt;
Where do they hesitate? Where do they tap the wrong thing? Where do they say "wait, what does this do?"&lt;br&gt;
Every moment of confusion is a feature we would have built wrong.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Actively looking for reasons it won't work
This is the counterintuitive one. We go into user conversations looking for the "no."
"I would never use this because..."
"This doesn't solve my actual problem because..."
"I already handle this with a spreadsheet and it's fine."
One honest "no" is worth more than ten polite "sounds interesting."
What happens after&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Only after these three steps do we write code. And by then, something has shifted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The feature list is shorter (usually 40-50% shorter than the original spec)&lt;/li&gt;
&lt;li&gt;The core flow is different from what everyone assumed in the kickoff&lt;/li&gt;
&lt;li&gt;The client has seen real user reactions, not just our opinion&lt;/li&gt;
&lt;li&gt;We know why we're building each feature, not just what&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The numbers behind this&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This isn't just our experience. CB Insights analyzed hundreds of startup post-mortems and found that 42% failed because there was no market need. Not bad code. Not running out of money. Building something nobody wanted.&lt;/p&gt;

&lt;p&gt;The Startup Genome Project found that premature scaling – building too much before validating – kills 70% of startups. Teams that scale prematurely have 20x lower growth rates.&lt;/p&gt;

&lt;p&gt;Think about that: &lt;strong&gt;the biggest risk isn't writing bad code. It's writing good code for the wrong thing.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"But we don't have time for validation"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is the objection we hear most. And it's backwards.&lt;/p&gt;

&lt;p&gt;You don't have time to not validate.&lt;/p&gt;

&lt;p&gt;Two weeks of prototyping and user testing costs a fraction of what six months of building the wrong product costs. We've seen this play out multiple times: a client comes in wanting to build Feature X, we prototype it, test it, and discover that users actually need Feature Y. The prototype cost days. Building the wrong feature would have cost months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How AI changes this (and how it doesn't)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We use AI heavily. Claude Code writes our implementations. Figma Make generates design drafts. Gemini handles competitive research. AI is involved in 6 of our 12 workflow phases.&lt;/p&gt;

&lt;p&gt;But here's what AI doesn't do: it doesn't tell you whether you're solving the right problem.&lt;/p&gt;

&lt;p&gt;AI makes building faster. That's genuinely useful. But if your direction is wrong, AI just gets you to the wrong destination more efficiently. The code will be clean. The architecture will be solid. And the product will still miss.&lt;/p&gt;

&lt;p&gt;That's why every AI step in our workflow has a human gate after it. AI proposes, humans decide. Not because AI is bad – because speed without direction is waste.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The uncomfortable truth&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most of the value we deliver to clients isn't code. It's the moment in a user test when someone says "I don't need this" and saves the client from building it.&lt;/p&gt;

&lt;p&gt;That moment is uncomfortable. Nobody wants to hear that their idea needs changing. But it's infinitely cheaper to hear it from a prototype test than from an empty dashboard after launch.&lt;br&gt;
If you're about to start building something – a side project, a client project, a startup – try this before you write your first line of code:&lt;/p&gt;

&lt;p&gt;Build a clickable prototype (Figma, even just screenshots stitched together)&lt;br&gt;
Put it in front of 5 people who have the problem you're solving&lt;br&gt;
Ask them to use it, not whether they like it&lt;br&gt;
Listen for the "no"&lt;/p&gt;

&lt;p&gt;It might save you months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We're the team of &lt;a href="https://www.decivo.de" rel="noopener noreferrer"&gt;decivo&lt;/a&gt;. We build prototypes and MVPs for startups – with an AI-powered validated workflow&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>mvp</category>
      <category>webdev</category>
      <category>startup</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
