Before Writing Code: The 5 Questions We Always Ask Our Clients
In many projects, the first conversation starts with a solution:
“We need a system.”
“We want a dashboard.”
“Can you integrate this software with our machines?”
At Simplico, we deliberately slow this moment down.
Not because we don’t like building software — we do — but because writing code too early is one of the most expensive mistakes in system development.
Before any architecture diagram, database schema, or hardware discussion, we always begin with five questions.
These questions are not technical. They are clarity questions.
They exist to protect our clients from building the wrong system very efficiently.
Question 1: What decision or action should this system make easier?
Most requests describe features.
We focus on decisions.
A dashboard is not a goal.
An API is not a goal.
Even automation is not a goal.
The real question is:
- What decision is currently slow, risky, or unclear?
- Who makes that decision?
- What happens when the decision is delayed or wrong?
When a system improves decisions, value becomes obvious.
When it only adds screens, complexity quietly grows.
Question 2: What problem exists even if software didn’t exist?
This question often feels uncomfortable — and that’s a good sign.
If software disappeared tomorrow:
- Would the problem still exist?
- Is this a process issue, a communication issue, or a responsibility issue?
We ask this because software amplifies reality:
- A clear process becomes faster
- A broken process becomes chaos at scale
By understanding the problem without software, we design systems that stabilize, not magnify pain.
Question 3: Where does information start, and where does it end?
In system integration projects — especially those involving machines, sensors, or multiple departments — problems rarely come from code.
They come from unclear boundaries.
We map:
- Where data is created (human, machine, external partner)
- How it changes
- Where it becomes a decision, report, or action
This helps us decide:
- What should be automated
- What should stay manual
- Where software should integrate with hardware — and where it shouldn’t
Good systems respect boundaries.
Bad systems blur everything together.
Question 4: What must remain flexible in the next 2–3 years?
Most systems don’t fail immediately.
They fail quietly, when the business changes.
We ask:
- Which parts of your operation are stable?
- Which parts are likely to change (volume, regulation, partners, machines, markets)?
This guides critical design decisions:
- Where we avoid hard-coding logic
- Where configuration matters more than features
- How to design software that survives hardware replacement
Flexibility is not about future-proofing everything —
it’s about choosing where to be flexible.
Question 5: How will you know this system is working?
Not in theory.
Not in KPIs written for a proposal.
But in daily reality:
- What feels easier?
- What disappears from your daily frustration?
- What no longer needs explanation?
If success cannot be described simply, the system is probably too complex.
This question keeps us honest — and keeps the project grounded in real outcomes.
Why These Questions Matter
These five questions often change the project direction.
Sometimes the result is:
- Less software than originally planned
- No hardware integration at all
- A phased approach instead of a “big system”
And sometimes the result is a much stronger system — because it is built on clarity, not assumptions.
This is why we position ourselves not just as developers, but as consulting partners in system design and integration.
A Simple Decision Diagram We Use
The purpose of these questions is not discussion for discussion’s sake. They lead to clear decisions about what to build, what not to build, and what to postpone.
Below is a simplified version of the decision flow we often sketch together with clients:
flowchart TD
A["Business Pain or Goal"] --> B{"Is this a decision problem?"}
B -- "Yes" --> C["Who makes the decision?"]
B -- "No" --> D["Fix process, clarify roles"]
C --> E["What information is missing?"]
E --> F{"Can this be solved without software?"}
F -- "Yes" --> G["Process / policy fix"]
F -- "No" --> H["Design system boundary"]
H --> I["Software-first design"]
I --> J["Integrate hardware only if it adds value"]
This diagram helps everyone align early:
- We avoid building systems that automate confusion
- We separate process problems from system problems
- We introduce hardware only when the software design is already clear
When Should You Talk to Us?
If you are thinking:
- “We know something is wrong, but we can’t define it clearly yet”
- “We’ve been quoted a system, but it feels too heavy”
- “We want to integrate software and hardware, but don’t want a fragile setup”
That is usually the right moment to talk.
You don’t need a specification.
You don’t need final requirements.
Sometimes, you just need the right questions.
Get in Touch with us
Related Posts
- 在开始写代码之前:我们一定会先问客户的 5 个问题
- 为什么“能赚钱的系统”未必拥有真正的价值
- Why Profitable Systems Can Still Have No Real Value
- 她的世界
- Her World
- Temporal × 本地大模型 × Robot Framework 面向中国企业的可靠业务自动化架构实践
- Building Reliable Office Automation with Temporal, Local LLMs, and Robot Framework
- RPA + AI: 为什么没有“智能”的自动化一定失败, 而没有“治理”的智能同样不可落地
- RPA + AI: Why Automation Fails Without Intelligence — and Intelligence Fails Without Control
- Simulating Border Conflict and Proxy War
- 先解决“检索与访问”问题 重塑高校图书馆战略价值的最快路径
- Fix Discovery & Access First: The Fastest Way to Restore the University Library’s Strategic Value
- 我们正在开发一个连接工厂与再生资源企业的废料交易平台
- We’re Building a Better Way for Factories and Recyclers to Trade Scrap
- 如何使用 Python 开发 MES(制造执行系统) —— 面向中国制造企业的实用指南
- How to Develop a Manufacturing Execution System (MES) with Python
- MES、ERP 与 SCADA 的区别与边界 —— 制造业系统角色与连接关系详解
- MES vs ERP vs SCADA: Roles and Boundaries Explained
- 为什么学习软件开发如此“痛苦” ——以及真正有效的解决方法
- Why Learning Software Development Feels So Painful — and How to Fix It













