← BlogAv1

What Actually Happens in the First Week of a Software Project

The first week of a software project is the highest-leverage week of the entire engagement. What happens in those first five days determines whether the next four weeks are productive or full of rework. Most teams waste it.

Here's what we do instead — and why each step matters.

Day One: Alignment Before Anything Else

Before we write a single line of code, we get everyone in the same room (or on the same call) to answer three questions: What problem are we actually solving? Who is the user? What does success look like at the end of this engagement?

These sound obvious. They're not. We've seen projects where the founder had one answer, the stakeholder had another, and the person writing the brief had a third. The code becomes a artifact of that confusion.

Day one is a 90-minute working session. We come out of it with a written one-pager: the problem statement, the primary user, the success criteria, and the explicit non-goals — the things we are choosing not to build. Non-goals are as important as goals. They prevent scope creep before it starts.

Day Two: Stack and Structure

Once we know what we're building, we decide how. This is usually a half-day conversation, not a long one. We've shipped enough projects to have strong defaults, and we reach for those unless there's a specific reason not to.

For most web-based products, that means Next.js on the front end, a managed Postgres database, and a hosting provider with zero-config deployments. We don't spend time debating this. The decision is made, documented, and we move on.

We also set up the project structure, the repository, the CI/CD pipeline, and the deployment environment on day two. By end of day, there is a live URL. It doesn't do anything useful yet, but it deploys automatically when we push code. That feedback loop is essential.

Day Three: First Working Feature

This is the day most teams underestimate. We pick the smallest possible feature that is still genuinely useful — not a button, but not the whole product either. Something a real user could touch.

We ship it. To the live URL. On day three.

This does several things. It proves the stack works end to end. It gives the client something real to react to rather than a mockup or a spec document. And it builds momentum — for us and for the people we're building for.

Feedback from a working feature is worth ten feedback sessions on a wireframe.

Day Four: Expand on the Signal

Whatever we learned from day three shapes day four. Maybe the feature worked exactly as expected and we move to the next one. Maybe the client used it and realized the interaction was wrong. Either outcome is valuable — and day four is when we respond to that signal.

This is the iteration loop at its smallest. It's also why we ship something on day three rather than day five. You need time to react to what you learn.

Day Five: Review and Prioritize the Next Week

Friday is a review session. We look at what shipped, what we learned, and what the next week should focus on. We update the non-goals list if anything shifted. We close any open questions that emerged during the week.

The output is a short list of the three to five things we're building next week, in priority order. Not a full backlog. Not a Gantt chart. A short list.

What to Actually Build First

Once the foundation is solid, picking the right first feature matters as much as how fast you build it. We wrote more about this in What to Build in Week One.

What Most Teams Get Wrong

The most common mistake is spending the first week on planning documents instead of working software. Specs, wireframes, and architecture diagrams feel like progress. They're not. They're deferring the moment when you find out whether your idea actually works.

The second most common mistake is not having a live environment until week two or three. If you can't deploy on day two, you've already lost a week.

The first week is about building the foundation for fast iteration, not about building the product. The product comes from the iteration.

Have an idea you want to ship?

Start a project →