Packaged software covers the processes every company shares. The work that makes your company different is usually the work that never fitted, and it survives in spreadsheets, WhatsApp groups and a filing cabinet. Knowing when to build rather than configure is the difference between a useful application and an expensive habit.
The signals that a spreadsheet has become a system
It has a version number in the filename. More than one person edits it and they argue about which copy is current. Someone rebuilds it every month from exports. A new employee needs a person, not a document, to learn it. When a spreadsheet reaches that state it is already a business system, just one with no permissions, no audit trail and a single point of failure who takes annual leave.
Configure first, build second
Most requests for a custom application can be met by the ERP already paid for, and a good implementer will say so before quoting development. Building is right when the process is genuinely specific to how you compete, when it involves people who will never log into an ERP, or when the interface has to work offline, in a vehicle, or in a warehouse aisle on a phone.
Design it with the people who will use it
Applications built from a manager's description of a process are usually a description of how the process is supposed to work. The site supervisor, the storekeeper and the driver know how it actually works, including the shortcuts that exist for good reasons. Half a day with them before the first screen is drawn saves a rebuild.
Integrate properly or do not bother
An application that produces a file somebody imports into the ERP once a week has not removed the manual work, it has moved it. Proper integration through APIs means the record exists once, updates flow both ways, and no one is reconciling two systems that should agree by design.
Plan for the second year
Custom software is owned, not bought. Someone has to hold the code, apply security updates, and change it when the process changes. Agree who that is before you build, because an unmaintained internal application becomes the next spreadsheet, only harder to replace.
