Why I Ship to Production in Week One
- •
- 9 min
Forward Deployed Engineer · Dubai
The first version of RealEstateCRM was a simple apartments database. Not a CRM. Not a full product. An apartments database — delivered in 2 weeks and immediately put into production.
The first real usage produced the first real feedback: they needed a customers database too, so it could work as an actual CRM. Nobody had mentioned this upfront. It became obvious the first time someone tried to track a deal and had nowhere to put the buyer's details. That took another 2 weeks. From there, months of near-daily changes driven by people using a real system: document management, a WordPress listing site, deal tracking insights. Every feature came from use, not from planning. The product went live in week two and was never "finished" — it grew in response to real use.
It's been running since 2021.
What "production in week one" actually means
It means: real infrastructure, real data, at least one person using it and giving feedback from actual use — not from a prototype, not from a demo, not from a conversation about what they'd do if the product existed.
What it explicitly doesn't mean: a polished UI. A complete feature set. Something that handles every edge case. It means the smallest thing that puts real data in front of real people and lets them do the thing they actually need to do. Not a simulation of it.
This distinction matters because staging environments teach you about bugs. They don't teach you whether the product solves the problem.
Two kinds of building in silence
There are two contexts where people build in silence for months, and the cost in each is different.
Client work. You're building something for a real organisation with real operations. The silence usually comes from a misguided instinct toward professional completion — the belief that you shouldn't put the client in front of something unfinished. What actually happens is you spend 2–3 months building based on what someone described in a discovery call, then discover in week 13 that their actual workflow doesn't match the description. Not because they lied. Because nobody describes their real workflow accurately when they're imagining a future tool. They describe the ideal version. Production shows you the real one.
Your own product. Nobody is waiting. No deadline, no client, no external pressure. This is a different trap — and a more dangerous one, because the delay is always self-justified. "It needs one more feature before I can show anyone." "I just want to fix this before I share it." "It's not ready." There's always a reason, and the reason always sounds reasonable.
You can sit building in silence for 3–6 months and it will never feel wrong in the moment. That's what makes it so expensive.
For client work: the staging trap
A staging environment is optimised for one thing: no surprises when you deploy. It doesn't tell you what people will actually do once they're using the product for real. It doesn't show you what the data looks like once it's coming from the real world. It doesn't surface the edge cases that exist in a real operation but never came up in a planning session.
I've watched products pass every test and fail at the first real user interaction. No bug. The product assumed something about how work gets done that turned out to be wrong. You can't catch that in staging. You can only catch it when someone who does that work every day tries to use the system and hits a wall.
Automator started with a 2-day conversation about the actual problem. The surface request was "publish music." The real problem was organising audio content and images by release, managing file consistency across multiple WordPress sites, tracking performance across publications. Working prototype in 3 weeks. Two weeks of adjustments from real use. Then 2 years of autonomous operation without needing involvement. Recently rewritten in Go — one week, doubled processing speed, significantly lower error rate. It's published 200,000+ releases over its lifetime.
That track record doesn't happen if the first 3 weeks are spent building a staging environment.
For your own product: nobody is waiting
When you're building for a client, there's an external forcing function. The client exists. At some point, someone is going to use this thing, and both of you know it.
When you're building your own product, you're the only one who knows it exists. Nobody is pushing. Nobody is waiting. The only pressure is the one you create for yourself — and it's easy to talk yourself out of it. "I'll show people when the onboarding is better." "I'll share it once I've fixed the dashboard." The horizon keeps moving.
I built CheckMVP — an AI tool for startup idea analysis — and shipped it early. It was used on 500+ ideas. That real usage is what let me identify the actual failure: early GPT models were too agreeable, producing reports that validated founders rather than challenging them. No real signal, just structured noise. I discontinued it and moved toward a completely different approach — which became a new framework and eventually a new product entirely.
500 real data points made that call. Not imagination.
The products I built that stayed in silence too long — a task management app, a project management tool — both failed in the same direction. Overbuilt before anyone touched them. By the time real users arrived, the product had already made hundreds of decisions for them. Most of those decisions were wrong.
The compounding cost of wrong assumptions
This is the part that doesn't get said clearly enough.
Week one without production feedback: you make one wrong assumption about how the product will be used.
Week four: that assumption has shaped three other decisions — a data model, a navigation structure, a feature that exists because the wrong assumption made it seem necessary.
Week twelve: those three decisions have shaped twelve more. The wrong assumption from week one is now load-bearing. Removing it means rebuilding things that have been built on top of it.
The longer you build without feedback, the more expensive the first correction becomes.
By month three, you're not one fix away from a good product. You're unwinding months of compounded decisions — each feeling correct at the time, none made with a real-world signal to test against.
The first MVP I ever shipped had 47 features. Users cared about 3. I know exactly which 3 they cared about, because they used them. The other 44 represent months of work built on assumptions that never got tested. I saw it clearly enough the first time. I haven't made it the same way twice.
What "production-ready" means for your own product
People blur this constantly, and the blurring is convenient — it gives you permission to keep building.
A landing page is not production. A waitlist is not production. A Figma prototype, a demo video, a feature list in a Notion doc — none of these are production.
Production means:
- A real URL that anyone can reach
- Real user accounts with real data that persists between sessions
- At least one person using it for something they actually need to get done — not as a favour, not as a test, not because you asked them to "try it out"
That last point is the critical one. "Trying it out" is not production. A person using your tool because it genuinely helps them do a real task — and coming back because it keeps helping — that's production. That's when you start learning anything useful.
For client work, this definition is usually met automatically. There's a real client with real operations. For your own product, you have to be honest about whether you've actually reached it, or just convinced yourself you have.
The fantasy problem
There's a reason people build in silence, and it isn't laziness or procrastination.
The idea in your head is always better than the thing you've built. In your head it works perfectly, solves the problem cleanly, and users understand it immediately. The real product has rough edges, confusing flows, and features that made sense in theory but feel wrong in practice.
Production kills that fantasy early. That's why it feels uncomfortable to go there.
The longer you wait, the more the fantasy has time to solidify. You become attached to decisions made without evidence. Changing them starts to feel like loss.
Ship early and the fantasy dies cheap. The product was 2 weeks old. You lost 2 weeks of wrong assumptions. You adjust and move forward.
Ship after 4 months and the fantasy dies expensive. You've built an identity around what you're making. Every piece of feedback that contradicts the vision feels like a verdict on the months you spent. Some people don't adjust at all — they look for users who fit the product rather than adjusting the product to fit real users. That's how you end up with something technically correct that nobody uses.
What shipping early forces you to decide
Going to production in week one forces decisions you'd otherwise defer.
Auth. Error states. What happens when the data is malformed. Monitoring. Backups. These aren't interesting problems. They're the ones you push to "later" when you're absorbed in feature work.
Each one surfaces an assumption you didn't know you had. Auth forces the question of who actually needs access and under what conditions — something that sounds obvious upfront and almost never is in practice. Error states show you what the system does when reality doesn't match the spec. Monitoring tells you whether anyone is actually using the thing, when, and how often.
Deferring these to "later" means making them under the worst possible conditions: scope has grown, pressure is high, the cost of getting them wrong has compounded. Making them early, when the product is still small and changeable, is cheap.
The pressure of week-one production is a feature of the process, not a cost.
What you learn that you can't learn any other way
The gap between what a client describes and what their operations actually look like only becomes visible once real data is moving through a real system.
The customers database on RealEstateCRM was never in the brief. It appeared in week three because someone tried to track a deal and had nowhere to put the buyer's contact details. The WordPress integration came months later because the agency realised they were maintaining two separate systems manually. Neither of these features would have appeared in a requirements document. Both came from people using the real thing under real conditions.
The features you planned in advance are your best guess at what users need. The features that actually matter emerge from watching real people use a real product for a real purpose.
Conversations and mockups tell you what people think they need. Production tells you what the work actually requires.
The first version needs to be live quickly. Production is what tells you what it needs to become — there's no other way to find out. You can talk to users for months, run surveys, build prototypes, watch session recordings. All of it is useful context. None of it replaces the signal you get from a real person hitting a real wall in a real product they're actually trying to use.
Ship early. Adjust from evidence. That's the whole method.
If your organisation has a problem that software should be handling and the scope isn't clear yet, the Forward Deployed Engineer engagement starts by getting something real into production and learning from there. Book a call if that's where you are.