writing
When Taking on a Project, the First Thing I Confirm Is Not the Technical Solution, but the Requirement Boundaries
When taking on a project, confirm the requirement boundaries before the technical solution. The boundaries determine what the project does, what it doesn't do, who has the final say, how changes are handled, and what delivery is based on. Unclear boundaries can cause the project to be dragged down by scattered requirements, losing control of profit and pace. Confirming the core goal, defining the scope, specifying the decision-maker, agreeing on change rules, and delivery standards are prerequisites for pro
In the past, when I took on a project, the state I most easily entered first was thinking about how to do it.
How to set up the frontend, how to break down the backend, how to design the database, how to define the interfaces, how to deploy. Especially after my technical background leaned more toward the backend, this reaction became more natural: first look at implementation, first think about solutions, first judge whether it's technically troublesome.
Later, I gradually discovered that many projects end up tiring, earning little, and prone to disputes. The problem is not in the technical solution, but in an earlier layer:
The requirement boundaries were not clearly confirmed.
Now when I take on a project, the first thing I confirm is usually not the technical solution, but the requirement boundaries.
Because the technical solution determines "how to do it,"
but the requirement boundaries determine:
- What this project actually does
- What it doesn't do
- Who has the final say
- How changes are counted
- What delivery is based on
Whether the project results are good, profits are stable, and pace is orderly ultimately depends not on technical difficulty, but on whether the boundaries are clear.
Technical issues are often later issues; boundary issues are the earlier ones
I feel this more and more strongly now.
Because although technical issues are complex, most of the time they are at least "visible."
Where the difficulties lie, how many solution options there are, and whether the cost is high—these can gradually converge through discussion.
But boundary issues are different.
When boundaries are unclear, the project can also start on the surface, and even progress smoothly at first.
Write a bit of the requirements document, look at a bit of the prototype, do a bit of the features first, and the client also feels you're making progress, and you yourself feel the project has started.
But the real problems will gradually emerge later:
- Should this also be done together?
- Should that process be tweaked along the way?
- Should a few more fields be added here?
- Should the backend also be supplemented?
- Should role permissions be more detailed?
- Should this report also be added?
Each item individually seems small.
But once the boundaries aren't established, the project will slowly shift from "doing this" to "also doing those along the way."
Many projects don't collapse all at once; they get dragged apart bit by bit.
I later found that project loss of control usually doesn't start from the technical side
Many people think projects are tiring because the technology is too complex.
But I increasingly feel that many projects lose control not from the technical side, but from the boundaries.
For example, the following situations are typical in my view now.
1. The goal is stated broadly, but the scope is vague
Clients might say they want to build a backend, a management system, a business platform.
These words sound right, but they are actually too broad.
If you don't continue to break them down:
- What problem is this phase solving first?
- Which features are essential for the first phase?
- Which ones are only possible later?
- Which ones are completely out of scope this time?
Then the project is already mined from the start.
Because "building a system" is not a requirement; at most, it's a direction.
What truly determines whether the project can be stable is the boundary.
2. The default of "we'll discuss later" eventually becomes "do it now"
I used to have a mindset: start doing it first, and fill in the details as we go.
Later, I found this phrase very dangerous.
Because when boundaries are vague, "we'll discuss later" usually doesn't really stay for later,
but keeps flowing back into the current during development.
In the end, a familiar situation appears:
Even though the project has already started, the requirements continue to grow.
While developing, you also receive new requirements, and you have to judge which ones count as additions and which ones were originally supposed to be there.
At this point, pace, profit, and mindset all start to have problems.
3. Delivery standards are unclear, and in the end, everyone thinks they are right
This is also very common.
You think completing these pages, these interfaces, and these processes counts as delivery.
The client thinks "usable" is just the minimum standard, and "adding a few optimizations along the way" should also be included.
The most likely outcome is not that someone is obviously unreasonable,
but that both sides feel their understanding is correct.
This kind of thing is the most draining.
Because it's not purely a technical disagreement; it's that the boundaries weren't clarified in advance.
So now when I take on a project, the first thing I confirm is not the solution, but the boundaries
What I care about more now is to clarify the boundaries first.
It's not that the technical solution is unimportant,
but that the technical solution only makes sense after the boundaries are set.
Because if the boundaries aren't defined, no matter how good the solution is, it's just designing for an unstable target.
If the target keeps moving, the solution will also keep changing.
I generally confirm the following things first now.
1. What is the core goal of this project?
Don't rush to discuss implementation; first confirm what problem this project is meant to solve.
For example, is it to:
- Improve internal management efficiency
- Standardize business processes
- Reduce manual operation costs
- Provide a usable backend for the client
- Quickly launch an MVP for validation
This must be clear first.
Because different goals lead to completely different priorities.
If the goal isn't converged, later discussions about features often just pile things up.
2. What is clearly in scope and what is out of scope this time?
This is crucial.
Many people discuss "what to do,"
but "what not to do" is often not mentioned at the start of many projects.
Now I more deliberately confirm:
- What are the core modules in this scope?
- Which features belong to the next phase?
- Which requirements are explicitly not done now?
- Which optimizations are not included in the current quote?
Many projects become chaotic not because there's too much content, but because "what not to do" was never clearly stated.
3. Who decides the final priority?
In projects, it's often not that no one raises requirements, but that too many people raise them.
The boss has one idea, the user has another, operations has another, and the technical side has its own implementation constraints.
If there's no clear priority decision-maker, it ends up with everyone being able to interfere.
I increasingly care about this question:
Who has the final say?
Not out of control, but out of delivery needs.
Because if no one makes the call, the project will definitely waver.
4. How are changes counted?
I've suffered losses here before.
Many new requirements seem "small" at the moment they are raised.
But the real difficulty of a project is not how big a single requirement is, but whether it disrupts the original structure, schedule, and expectations.
So now I prefer to clarify in advance:
- What counts as an adjustment within the original scope?
- What counts as a new requirement?
- How are new requirements handled after they are added?
- Is it to postpone the schedule, charge separately, or put it into the next phase?
This step is not to be tough, but to avoid discomfort for both sides later.
5. What is the basis for delivery?
The earlier this question is addressed, the better.
For example:
- Based on the requirements list
- Based on the confirmed prototype
- Based on phase acceptance
- Based on the successful running of certain core processes
If this step is not clear, it's easy to fall into the state of "you think it's done, but the other side thinks there's still a lot missing."
The worst thing for a project is not rework itself,
but that you think you're almost at the end, and the other side just starts saying, "I thought these would also be included."
Clear boundaries are not to appear tough, but to make the project sustainable
Many people, when they hear "boundaries," think it might be too aggressive or inflexible.
But I increasingly feel that boundaries are not to appear tough,
but to truly make the project sustainable.
Flexibility without boundaries usually doesn't result in good service,
but in chaotic pace, out-of-control expectations, and exhaustion for both sides.
A truly good collaboration is not about "accepting everything,"
but about clearly stating the reality from the start, dividing the phases, and keeping priorities in check.
This actually makes long-term cooperation easier.
Because the other side will know:
- You're not just someone who takes orders
- You know where the real risks of the project are
- You can get things done, not just keep going
My understanding of a project is now simpler
I increasingly feel that whether a project is worth taking and whether it goes smoothly often depends not first on technical complexity, but on whether the boundaries can be clearly stated.
When boundaries are clear, many technical problems become easier to solve.
When boundaries are unclear, even a simple project can become increasingly chaotic.
So now when I take on a project, I no longer rush to think:
"How should this technology be set up?"
I more often think first:
"What exactly is being done this time, what is not being done, where does a change count as a change, and what is the basis for delivery?"
These questions may not seem very "technical,"
but in the end, they are often what truly determine the project's outcome.