Book a free consultation (opens in a new tab)

ERP Customization

ERP Customization Services

You borrow capability today and pay interest on it for the life of the system. Good customisation is not a question of what can be built, because nearly anything can.

  • 4Rungs before anyone writes code
  • DaysFor a small, specified change
  • AnnualCost of any core modification

Why It Matters

The build cost is the deposit, not the price

You borrow capability now and repay it every release

A customisation is not a purchase that ends when the invoice is paid. It is a liability that sits on your system and asks for money again at every upgrade, every integration change and every time a new person has to understand it.

  • Every request is priced with its recurring cost, not only its build cost
  • We name which rung of the ladder the request actually belongs on
  • Requests that fail the business test are written down and declined, with the reason

Supported extension points survive. Core changes do not

The difference between a cheap system and an expensive one is rarely how much was customised. It is where the customisation was put. Work built on published APIs, documented hooks and app level extensions usually comes through an upgrade with a short regression run.

  • Extension points first, core modification only as a last resort
  • A register of every customisation, so nothing is a surprise at upgrade time
  • Regression tests written with the change, not after the upgrade breaks

How a request becomes a change, or does not

  1. Hear the problem

    We ask what outcome you want, not what screen you want. Requests arrive as solutions and have to be turned back into problems first.

  2. Work the ladder

    Process change, then configuration, then a supported extension. We stop at the first rung that solves the problem and say so.

  3. Specify and price

    A written specification with acceptance criteria, a build estimate and, where the core is touched, the recurring annual cost.

  4. Build and test

    Developed in a separate environment under version control, with regression tests, then signed off by the person who raised it.

  5. Document and register

    Released to production with documentation and an entry in your customisation register, so the next upgrade knows it exists.

What good delivery actually looks like

  • Written specification

    What the change does, what it does not do, and acceptance criteria your team can test against rather than argue about.

  • Version controlled code

    Every change in a repository with a history, so you can see who changed what, when, and roll back if you need to.

  • Separate dev and test

    Nothing is written in a live system. Build in development, prove it in test on a copy of your data, then release.

  • Documentation

    Setup notes, the reason the change exists and how it works, so it is maintainable by someone other than whoever built it.

  • Regression tests

    Automated or scripted checks that run before each upgrade, so you find out in test rather than on Monday morning.

  • Periodic debt review

    An annual pass over the register to retire custom code nobody uses, because unused code still costs you at every upgrade.

Why teams bring customisation work to TCB Infotech

  • We argue you down the ladder

    Most requests are settled by a setting or a report. We will show you which rung yours belongs on before quoting a build.

  • Recurring cost quoted up front

    Anything touching the core is priced with its annual retest and rework cost, not only the one-off build figure.

  • Extension points first

    Published APIs, documented hooks and custom apps, so your upgrades stay a regression run rather than a project.

  • Nothing built in a live system

    Separate development and test environments, version control and a release path. Undocumented live edits are how systems rot.

  • Maintainable by someone else

    Specification, documentation and tests ship with the change, so you are not tied to the person who wrote it.

ERP customisation questions

When is a customisation actually justified?

When the process is one you genuinely win business on, and no supported setting covers it. A distribution rule that gets you a contract your competitors cannot service is worth building. A three-signature approval that exists because a manager in 2009 wanted it is not. The test we apply is simple: if this step disappeared tomorrow, would a customer notice, would a regulator notice, or would only habit notice. If the honest answer is habit, we will say so before we quote.

Will our customisations break when we upgrade?

It depends entirely on how they were built. Work done through supported extension points, custom fields, app-level modules, published APIs and documented hooks, usually survives an upgrade with a short regression test. Modifications to core files do not. They have to be reapplied, retested and often rewritten every release, because the vendor changed the code underneath them. A core modification made once becomes a cost line in every upgrade budget for the life of the system.

What does a typical customisation cost?

A small change such as a field, a print layout or a validation rule usually runs a few days including testing and documentation. A substantial custom module with its own data, screens, permissions and reports runs several weeks. A core modification carries the build cost plus a recurring retest and rework cost at every upgrade, which is why we quote those with the annual figure attached rather than the one-off figure alone.

Why do you push back on customisation requests?

Because most of them are cheaper to solve another way, and because we are the ones who will be maintaining the result. A large share of requests turn out to be report or dashboard requests, which cost a fraction of custom code. Others are resolved by a setting nobody had found. We work through the ladder with you first. A good customisation service will talk you out of most of what you ask for, and that is what you are paying for.

Will you maintain customisations somebody else wrote?

Usually yes, after a review. We read the code, check whether it sits on supported extension points or reaches into the core, and note what is undocumented or untested. Then we give you a written assessment with the annual cost of keeping each item. Sometimes the recommendation is to retire a customisation rather than adopt it, because nobody has used the feature in two years and it is still costing you money at every upgrade.

How do we tell a configuration from a customisation?

Configuration is anything you can change through supported settings in the application, by a person with the right permissions and no code. It is covered by the vendor, it is documented and it survives upgrades. Customisation is code, whether it sits in a custom app, a script or a core file. The practical difference is who carries the maintenance risk. Configuration leaves it with the vendor. Customisation moves it to you, permanently.

Related

The other services in this section, and related pages from TCB Infotech.

Bring Us Your Customisation List

No commitment. Expect us to talk you out of some of it.