When do I need custom production management software and what does it cost?

The owner of a plastic moulding company near Brescia shows me his "production system": a 42-sheet Excel workbook, updated by hand by three people and printed every morning at seven. The ERP they have used for eleven years handles invoicing and stock well, but it does not know that an order crosses three machines, that a mould breaks, or that a lot of granulate must be recalled. When a customer asks "which lot does this part come from?", the answer takes two hours and a phone.
Custom production management software makes sense when how you produce is what sets you apart and no package models it without bending it: a small core built around the bill of materials, work orders and lot traceability ships in about ten weeks for 25,000-45,000 euro. If you are still choosing between a package and custom development in general, start from business management software: package or custom.
When does custom production software make sense?
It makes sense when the production process is a competitive edge and packages force you to change it; it does not when your production is standard, because an ERP module or MES costs less and maintains itself. Three signs the package is not enough: a parallel Excel workbook in the shop, a list of exceptions that became the rule, and traceability done by hand. Three signs custom is the wrong spend: classic cut-assemble-test cycles, fewer than ten people on the floor, and nobody in the company who knows the process well enough to work with the developer.
My test is simple: describe a special order hour by hour. If it fits a standard module with two adaptations, buy the module. If the story keeps containing "but here we do it differently", custom is justified. Cost details are in what custom software costs.
The minimum scope
A minimal production system manages six things: item master, bill of materials, routing, work orders with progress, inventory movements tied to orders and lot traceability. Everything else (advanced planning, maintenance, actual costing, statistical quality) comes later. The Monday-morning test decides: if the shop supervisor would not use a feature at seven on Monday, it waits.
On the technical side, the layers below are covered in industrial automation with PLCs and SCADA, MES and OPC UA: the production system sits on top and reads them.
Modelling the bill of materials
A bill of materials is a tree: each product contains components, each possibly with its own bill; model it with revisions and validity dates, quantities with expected scrap and a check against cycles. Each work order keeps the revision it was launched with, so today's change does not alter orders already released. The explosion walks the tree, multiplies quantities by scrap and rejects circular bills:
public sealed record Component(string ItemCode, decimal Quantity, decimal ScrapPercent);
public sealed record Bom(string ItemCode, int Revision, IReadOnlyList<Component> Components);
public static class BomExplosion
{
public static IReadOnlyDictionary<string, decimal> Requirements(
string code, decimal quantity, Func<string, Bom?> findBom)
{
var totals = new Dictionary<string, decimal>();
Explode(code, quantity, findBom, totals, new HashSet<string>());
return totals;
}
private static void Explode(string code, decimal quantity, Func<string, Bom?> find,
Dictionary<string, decimal> totals, HashSet<string> path)
{
if (!path.Add(code))
throw new InvalidOperationException($"Circular bill of materials on {code}");
var bom = find(code);
if (bom is null)
totals[code] = totals.GetValueOrDefault(code) + quantity;
else
foreach (var c in bom.Components)
Explode(c.ItemCode, quantity * c.Quantity * (1 + c.ScrapPercent / 100m), find, totals, path);
path.Remove(code);
}
}The algorithm is short on purpose. The difficulty is the data: scrap declared by eye, mixed units, duplicate item codes. The first month often goes into cleaning the item master, a job no quote declares.
Work orders, planning and traceability
A work order goes through few states (planned, released, in progress, suspended, completed, cancelled) and the software must allow only permitted transitions, recording who did them and when. A free-text status field ends up with "done", "DONE", "closed" and "ok" in the same column. Progress is recorded per routing step, with quantity, scrap, time and operator, and the operator terminal must need at most three gestures: scan the order, press start or stop, enter the quantity.
Useful planning for an SME starts from the delivery date and works backwards, adding step times and department queues; a full finite-capacity solver is rarely needed. The most important number is the average wait between steps, almost never measured: a part may be worked for two hours and wait two days.
Lot traceability records, at each material consumption, which incoming lot went into which production lot; with that link a supplier recall is solved with a single query, in minutes instead of two days. Three tables and a consumption link are enough: incoming lots, production lots and the link between them. Reading the lot barcode at picking time, not typing it at the end of the shift, keeps the chain intact. Decide at the start whether a product needs lots, serial numbers or both.
Shop floor, existing ERP and architecture
The cheapest and most reliable way to bring shop data into the software is a simple terminal with barcode reading; connect machines through OPC UA or PLCs only where it automates data operators currently type and get wrong. Starting from the machines is the most expensive mistake in the sector. Check the plant wifi before buying tablets, and let the terminal app work offline.
The production system does not replace the administrative ERP: it reads item data and orders from it and returns consumption, receipts and shipments, through clear exchange contracts and not a shared database. The same idea as the Strangler Fig pattern: replace one boundary at a time. If the starting point is Excel or Access, see from Excel to a real management system and from Access to custom software.
For an SME I recommend a modular monolith on .NET 10 with a relational database, a web interface for the office and a light app for shop terminals. Microservices add complexity a forty-person company cannot maintain. The structure follows Clean Architecture in .NET, and history-heavy parts (inventory movements, state changes, lot consumption) fit an append-only log as in Event Sourcing in .NET.
Cost, time and mistakes
A core with item master, bills of materials, orders, linked inventory, traceability and shop terminals takes about 40-75 working days, that is 25,000-45,000 euro at 600 euro a day, delivered in ten to fourteen weeks with a pilot department live from week six. Add 6,000-12,000 euro for ERP exchange, 3,000-9,000 euro per machine connection and 15,000-30,000 euro for finite-capacity planning. Budget 12-18% of the initial cost per year afterwards. Full lifecycle thinking is in what legacy software costs.
The recurring mistakes are seven: starting from the machines, inflating the scope, not cleaning data, ignoring operators, having no internal owner, postponing traceability and not deciding who owns each piece of data. If a project has started badly, rewrite or refactor explains how to decide, and how to choose a software house lists the questions to ask a vendor.
Artificial intelligence helps with three bounded tasks (reading transport documents and certificates, estimating cycle times from history, answering questions on data through read-only tools) and must not decide state changes or edit bills of materials. See MCP agents for manufacturing.
Take a recent special order and write down, step by step, everything that happened. Count how many times the sheet says "then somebody called". That number measures what your software does not know today. The Brescia owner counted twelve; ten weeks later the pilot department logged progress from a tablet and a simulated recall was closed in nine minutes.
If you have a production like this and want to know whether custom software or a package fits, see the custom software path for companies: we look at your real process, estimate the cost and timeline of the core and choose together the department to start from.
Does your company need custom software or AI in the team?
We design and build custom software, modernize legacy systems and train your developers to work with AI. Tell us the problem: you get a concrete answer within one working day.
Frequently asked questions
A core with item master, bills of materials, work orders, linked inventory and lot traceability costs about 25,000-45,000 euro at 600 euro per day, in 40-75 days of work. Machine connections and advanced scheduling are extra.
Ten to fourteen weeks, with a pilot department running from week six. Data cleanup and an internal owner are the two items that move the schedule most.
A MES or ERP module fits standard production. Custom software makes sense when your process is a competitive edge and a package forces costly changes to it.
Yes. The production software reads item data and customer orders from the ERP and sends back consumption, receipts and shipments, through a clear exchange layer with one owner per piece of data.
Every material consumption records which incoming lot went into which production lot. With that link a supplier recall is solved with a single query, in minutes.
You should, by contract, in a repository owned by your company, with documentation and access from day one. If the vendor disappears, another professional can pick up the work within a week.
No. Start with shop-floor terminals and barcode reading. Add OPC UA or PLC links where they automate data operators currently type by hand and get wrong.
