
Software Engineering
What Should You Prepare Before Estimating a Custom Software Project?
What to prepare before a custom software project estimate: the problem, users, workflows, integrations, data, constraints, priorities and success criteria.
How duplicate work, broken handoffs, inconsistent records and slow reporting can signal disconnected business systems, and what to map before changing them.

Disconnected systems rarely announce themselves as an architecture problem. Nobody receives an alert saying that the sales platform and the finance system disagree about the same customer. Instead, the problem shows up as friction in ordinary work: someone enters the same information twice, two teams compare screens to decide which record is right, an approval travels by email because the systems involved do not talk to each other, a monthly report takes days of copying and checking, and people keep their own spreadsheets because no official system gives them the view they need.
Each of these feels like a small inefficiency. Together, they often point to the same underlying cause: the systems the business runs on are not connected in the way the work requires. This article describes the most common symptoms, explains what they usually mean, and sets out what to understand before deciding whether to integrate, modernize or replace anything.
The most visible symptom is the same information being handled more than once. An order is entered in one system and typed again into another. A customer’s details are updated in the sales tool and then corrected separately in billing. Someone reconciles two lists at the end of each week to make sure they still match, and someone else checks the same figures again before they are approved.
It is tempting to read this as a people or discipline problem. Usually it is not. When systems cannot exchange information reliably, the organization quietly asks its people to do that job instead: reading from one screen and typing into another, checking that both still agree, and noticing when they do not. In effect, staff become the integration layer. They often do it well, but the cost is time, errors that surface later, and capable people spending their judgment on transcription.
A second signal is disagreement about facts that should not be in dispute. The customer address differs between two systems. A project shows as active in one tool and closed in another. An order status in the operations platform does not match what finance can see. Before anyone can act, someone has to check which version is current.
A useful idea here is the system of record: for each kind of information, one system is the authority, and every other system either reads from it or is updated from it. Customer master data might belong to the CRM, financial transactions to the accounting system, stock levels to the inventory platform. When nobody has decided which system owns which records, or when the decision exists only on paper, copies drift apart and people fall back on manual cross-checking. Clear data ownership is not a technical nicety; it is what allows people to trust a record without verifying it first.
Most important processes cross departmental lines, and each crossing is a handoff. Sales passes a confirmed deal to operations. Operations passes completed work to finance for invoicing. Finance passes figures to management. A service team passes a case to support. When different systems own different parts of that journey, every handoff becomes a point where information can be delayed, reshaped or lost.
As an illustration, consider a deal confirmed in a sales tool with specific delivery terms. If the operations system receives only the order lines, the terms travel separately by email or are reconstructed from memory. If invoicing depends on operations confirming completion, and that confirmation is a message rather than a status change, finance waits for someone to remember to send it. None of these steps is dramatic, but each adds delay and uncertainty, and nobody sees the whole chain at once.
Where systems do not connect, people build bridges: a shared spreadsheet that tracks what the systems cannot, a weekly export from one tool imported into another, a messaging thread where updates are posted for the next team, a document that holds the real status of each item.
Spreadsheets and shared documents are not the problem in themselves. They are valuable for analysis, planning and short-term needs. The warning sign is when they become the permanent connection between systems that should exchange information reliably. At that point, a critical part of the operation depends on files with no access control, no history of who changed what, and no guarantee that everyone is looking at the latest version.
Ask how a routine management report is produced. If the answer involves exporting data from several tools, merging it in a spreadsheet, resolving figures that do not agree and waiting for one person to finish the preparation, the report is not really a report. It is a manual integration exercise performed on a schedule.
The consequences reach beyond the time spent. Reports produced this way are only as current as the last time someone prepared them, they are hard to question or drill into, and discussions can turn into debates about whose numbers are right. If leaders cannot get a reliable view of operations without manual consolidation, the underlying issue may be architectural rather than a matter of reporting tools.
There is a difference between knowing the current state of operations, reading yesterday’s exported report, and receiving a management view that someone assembled by hand. Disconnected systems tend to push organizations toward the last two.
The practical test is whether leaders and teams can answer everyday questions without asking several people: what is happening now, what is blocked, who owns the next step, what has changed since yesterday, and where work is waiting. Not every organization needs live dashboards, and for many decisions a daily view is entirely adequate. The concern is when even basic status questions require someone to gather information from several places before anyone can act.
Many workflows run smoothly for normal cases and break down when something unusual happens: information arrives incomplete, an approval falls outside the standard rules, a customer changes requirements part-way through, an order deviates from the usual path, or an integration between two systems fails.
In fragmented environments, these exceptions tend to move into email and chat, because the systems involved have no shared way to represent them. The case gets resolved, but the record of how and why it was resolved lives in someone’s inbox. Over time, the systems describe how work is supposed to happen, while the real handling of difficult cases is invisible and impossible to trace or learn from.
Another sign is reliance on particular individuals. One person knows where to find the information that matters. A manager reconciles two systems every week because nobody else knows how. One colleague prepares the report everyone trusts. Handoffs work because people remember to follow up.
These people are usually among the most valuable in the organization, and the arrangement often works for years. It is still a resilience risk. When that knowledge sits with individuals rather than in systems and documented processes, absence, workload or departure can stall parts of the operation. This is an architecture and process question, not a criticism of the people who have been holding things together.
Disconnected systems also make automation harder. Automating a step, whether with conventional rules or with AI agents and automation, depends on clear data ownership, stable integrations, consistent workflow states and records that can be trusted. An automated process needs to know which system holds the truth and what state a piece of work is in.
When the answer is “it depends which spreadsheet you check”, automation becomes brittle. It either replicates the same manual reconciliation in code or acts on information that may already be out of date. Organizations hoping to automate often discover that connecting their systems properly is the necessary first step.
When friction becomes painful, a common response is to introduce a new system that promises to solve it. Sometimes that is the right decision. Often, though, a new tool adds another database, another login, another workflow to learn, another export to reconcile and another integration to build and maintain. Without a clear view of how information should flow, the new system becomes one more island.
Before adding technology, it pays to understand the existing architecture: which systems hold which information, how work moves between them, and where it breaks. That understanding often reveals that the most valuable change is a connection or a clarified ownership rule rather than a new platform. The broader point, explained in why integration decisions are architecture decisions, applies here too: the value of any system depends heavily on how it connects to the rest of the environment.
Once the symptoms are understood, there are three broad directions. None is always superior.
Keep the existing systems and connect them better: defined interfaces, agreed ownership of each type of record, and reliable exchange of information so people no longer carry it by hand. This suits environments where the systems themselves are sound but isolated.
Improve or rebuild parts of the environment: replacing a fragile point-to-point connection, restructuring a database, or building custom software to cover a process that no existing product handles well. This suits environments where specific components hold everything else back.
Retire a system when it fundamentally cannot support current needs: it cannot be integrated, it cannot be maintained, or it constrains the business in ways that workarounds cannot solve. Replacement carries the most change and risk, so it deserves the clearest justification.
The right choice depends on the condition of each system, its importance to the business, how well it can be integrated, the quality of its data, who owns it, the risk of changing it and how much of the operation depends on it. Often the answer is a combination: integrate most systems, modernize one or two, and plan a replacement only where it is genuinely needed.
The following questions can help a leadership team judge how much disconnected systems are affecting operations. Honest answers are more useful than precise ones.
Before buying, rebuilding or replacing anything, it helps to map the current environment. The map does not need to be elaborate, but it should cover:
This map becomes the basis for architecture decisions. It shows where a connection would remove the most manual work, where ownership needs to be clarified, and where a system is genuinely holding the operation back. The same discipline applies to new software: a clear picture of users, workflows, integrations and data is also what makes any later estimate reliable, as discussed in what to prepare before estimating a custom software project.
Disconnected systems are not only a technology problem. They shape how much manual coordination people need to keep operations moving, how quickly problems become visible, and how confidently leaders can rely on the information in front of them. The first step is not necessarily a replacement. It is understanding where data, workflows and ownership break between systems, and then choosing the smallest set of changes that removes the most friction.
If your teams are bridging systems manually, our enterprise systems work starts by mapping the current environment and identifying where integration, modernization or replacement makes sense. We would be glad to discuss your current systems and where they break.
If this article touches something you are working on, we would be glad to talk it through.
Chat with AITECHIS. Replies may come from an AI assistant. Please don’t share passwords, credentials, or confidential information.