Skip to content
process · assess / shape / build / refine

A practical way to reduce the risk of building the wrong thing.

Before the work becomes design, code, or integrations, I try to understand the business direction, the operating reality, and the tradeoffs that will shape the system.

The sequence is simple: assess what matters, shape the system, build the smallest serious version, then refine it with what real use reveals.

the working path /

Assess the situation.

Shape the system.

Build the first serious version.

Refine it with reality.

Simple enough to remember. Structured enough to keep the work honest.

Why the process matters

the goal is to reduce the risk of building the wrong thing.

Many software projects drift before the first line of code. Not because the team cannot build, but because the problem, sequence, tradeoffs, or operating reality were not clear enough.

This process keeps the work grounded. It creates enough clarity to move, enough structure to build, and enough room for the people involved to understand why the system is being built this way.

influenced by /

The structure is partly influenced by Hasard Lee’s ACE framework: assess, choose, execute. I adapted that idea into a practical way of working for software: assess, shape, build, refine.

How the work moves

each stage creates the clarity needed for the next one.

step 01 /

Assess

Understand the business direction, the current reality, and the constraints that cannot be ignored.

  • Where the business is trying to go and why it matters now.
  • What is currently manual, scattered, unclear, or holding the work back.
  • Who the system needs to support: customers, operators, partners, or internal teams.
  • What should be solved first, and what should not be built yet.
step 02 /

Shape

Turn the opportunity into a clear system direction before design and code make it expensive to change.

  • Clarify the first serious version of the system.
  • Map the main flows, roles, data, decisions, and operational edge cases.
  • Separate what is essential now from what can wait.
  • Make the tradeoffs visible before they become hidden costs.
step 03 /

Build

Create the smallest serious version that can be used, tested, and improved.

  • Build the core system with enough quality to be used in the real business.
  • Keep the scope focused without treating the work like a throwaway prototype.
  • Connect design, software, data, integrations, and operations into one usable flow.
  • Ship in a way that gives the business something concrete to learn from.
step 04 /

Refine

Use what happens after launch to improve the system with reality, not just assumptions. For most of my engagements, this stage does not end. I stay involved as the business grows, because the system has to keep fitting it.

  • Watch what happens when real people use the system.
  • Improve the parts that create friction, confusion, or operational drag.
  • Adjust the system as the business model, team, users, or constraints change.
  • Decide what is worth strengthening, automating, or scaling next.

What happens when the work drifts

the process is there because software work can go wrong quietly before anything obvious breaks.

without assess /

Assumption-led build

The team starts from what people think is needed, while the real constraint stays hidden.

without shape /

Scope that keeps spreading

The idea gets bigger before it gets clearer, and every decision becomes harder to make.

without build /

Something real never ships

The work stays in planning too long, or ships as something too rough for the business to trust.

without refine /

Launch becomes the finish line

The system goes live, but the team does not learn from how people actually use it.

The principles behind the work

Start with the business gap

The work should connect to a real business need or change, not just a feature list.

Choose the smallest serious version

Small enough to move, serious enough to matter, and clear enough to learn from.

Make tradeoffs explicit

Budget, time, quality, risk, and operational fit should be discussed before they become hidden costs.

Work with context, not just tasks

Good technical work needs to understand the business, the user, the constraints, and the people who will live with the system.

Treat launch as a beginning

The first release reveals what the business, users, and system actually need next.

When this way of working helps

not every engagement needs the same depth, but the logic stays the same.

A first serious build

For a business that already knows the direction and needs the first usable version built properly.

A system that needs shaping

For a broad opportunity, messy workflow, or early idea that needs clearer structure before the build begins.

A longer build partnership

For work where the system is closely tied to the business outcome, and the useful work continues after the first release.

If this feels like the way you want your next system to be shaped and built, let's talk.