Problems & solutions · Custom Software

Bare Metal Provisioning Platform Problems: The 5 That Cost Real Money, and How to Avoid Them

Bare Metal Hosting Provisioning Platform software overview illustration showing common problems and fixes.
The short answer

The most expensive failure in this category is a project scoped to provisioning and stopped there. Reclaim has more steps than provisioning and no customer waiting on any of them, so it stays a technician ticket that always loses to work with a deadline. The result is machines that stopped billing on the last day of the month and are still powered, still occupying a rack unit, still holding an address allocation and still on the previous tenant's management credentials. Those servers are already bought, already racked and already drawing power, so every one of them is pure cost against zero revenue, and in most providers we have looked at the count is larger than anyone in the building expects.

Why does the scope stop at provisioning and never reach reclaim?

Because provisioning is the part with a customer shouting at the end of it. Lead time is visible, it appears in sales conversations, and it is easy to write a business case around. Reclaim is invisible. Nobody complains, no ticket ages in a queue anyone reviews, and the cost shows up on a power bill as a number without a name attached.

So the automation gets built for the happy path outward and the return journey stays manual: wipe the drives, reset the RAID configuration, rotate the management controller credentials, restore the firmware baseline, tear down the network configuration, return the addresses, clean up DNS, validate and restock. Nine steps, no deadline, competing against work that has one.

The fix is to scope the machine lifecycle as one object rather than two workflows. A physical server has states: purchased, stock, allocated, live, reclaiming, retired. The system owns every transition, and reclaim is triggered by the billing event rather than by a human noticing. That single change is usually the fastest payback in the whole build, because it converts inventory you have already paid for back into sellable stock without a technician touching it. Before anyone writes a proposal, count how many machines are currently powered and unallocated. That number is the business case, and you can gather it this week.

What goes wrong with hardware inventory data?

Automation starts with knowing what you have, and almost every provider's inventory is hand assembled during racking, which means it decays from the day it is written. A machine needs a chassis serial, a service tag, the exact hardware configuration, the media access control address of every network interface, the management controller address and credentials, and the switch and port each interface is physically connected to. That last field is the one that is quietly wrong most often, because somebody guessed which port they landed on at the end of a long shift.

Importing that spreadsheet into a new platform does not clean it. It launders it. A wrong port mapping in a spreadsheet is a mistake a technician catches when the machine does not come up. The same wrong mapping inside an automation system applies a correct configuration to the wrong switch port, which is a different and worse failure because the configuration succeeded.

The fix is discovery rather than migration. A machine that boots into a discovery image over the network reports its own hardware inventory back, and neighbour discovery on the switch side establishes which port it is on without anyone writing it down. Canonical MAAS does this part genuinely well and its enlistment and commissioning model is worth studying even if you do not adopt it. Treat your existing records as a hint used to reconcile against discovery, never as truth, and make the reconciliation report visible so the gap between what you believed and what is actually racked stops being a surprise.

Why do the switch and management controller integrations break after launch?

Because both are vendor specific in ways that only appear at scale, and because writes are assumed to have worked.

Management controllers differ. Dell iDRAC, HPE iLO and Supermicro behave differently, and Redfish implementations vary by vendor and by firmware generation in ways that need real handling rather than one client library and optimism. A platform tested against your newest generation will meet older machines in production, fall back to IPMI and vendor tooling, and start producing failures that look random until someone correlates them against firmware versions. Handle the variation explicitly, keep a per model capability matrix in the system, and make the platform refuse to guess.

Switch configuration breaks differently. A provider running Arista in one hall, Juniper in another and something older at the edge needs an abstraction that speaks all three, and the failure mode is not an error, it is silence. The write returns success, the configuration did not take or took partially, and the machine works fine until traffic patterns reveal it is on the wrong virtual local area network. Read back verification is mandatory here rather than a refinement. Apply the configuration, read it back, compare it against intent, and fail the provisioning run if they disagree.

Billing is the third and it fails at the boundary. When the platform and the billing system each believe they own service state, a cancellation stops the invoice without stopping the machine. Pick one authority for commercial state and make the other subscribe to it.

What happens when tenancy isolation and sanitisation are not covered?

Isolation on shared physical infrastructure is enforced in the switching layer, not in application code. Each customer needs their own virtual local area network or set of them, a private subnet if they run more than one machine, public addressing from your pools with reverse DNS delegated, matching link aggregation on the switch side for bonded interfaces, and increasingly the ability to announce their own address space over BGP. Getting any of that wrong does not produce a small error. It produces one customer able to see another customer's traffic, which is the single incident a hosting business cannot absorb.

Sanitisation is the other half and it is a contract question before it is a technical one. NIST Special Publication 800-88 gives the accepted vocabulary of clear, purge and destroy, and which level you owe depends on what you told the customer and what their own compliance regime requires. Teams that never decide this default to whatever the script does, which is usually an overwrite pass chosen by an engineer rather than by the contract.

Two fixes worth building deliberately. Encrypt at rest with per tenant keys so a cryptographic erase is fast and defensible, because multi hour overwrite passes on large NVMe drives keep a machine out of revenue for no additional assurance. And rotate management controller credentials on every reclaim without exception, because leaving them is handing the previous tenant a route back into hardware that now belongs to someone else. Then be ready to evidence both, since your customers' security reviewers will ask how isolation is enforced and how you prove it.

Should you build custom or configure what you already own?

Under roughly 150 servers with a fairly uniform hardware mix and provisioning volume one technician handles comfortably, do not build. WHMCS or HostBill will run ordering and billing, their provisioning modules cover the common cases, and the manual residue is genuinely cheaper than an engineering programme. Ubersmith is the stronger option once billing complexity grows, because it carries more infrastructure awareness than the others.

When you do build, do not build all of it. Writing your own boot and imaging engine is a solved problem you would be resolving badly. OpenStack Ironic is powerful and proven, though it carries operational weight and expects an OpenStack shaped context around it. Tinkerbell is lighter and workflow oriented, which makes it a component rather than a product. MAAS has the best enlistment model and no concept of a customer, an order or an invoice. Use one of them as the engine and build the layer above: catalog, tenancy, order lifecycle, reclaim policy and billing. That layer is your business model, and no product will encode your business model for you.

Build when provisioning lead time has become a competitive problem, when unreclaimed inventory is visible on a power bill, when customers are asking for an application programming interface because they want to script their own capacity, or when your existing automation is a pile of scripts maintained by one engineer. That last trigger is the most common and the most urgent, because those scripts encode your operational knowledge and are undocumented by definition.

How do hidden costs get into the quote?

Hardware and network diversity, ahead of everything else. Every management controller generation is handling work, every additional switch vendor is a driver plus its own validation path, and machines too old for usable Redfish support mean IPMI fallbacks that add weeks. A proposal priced without an inventory of your actual models and firmware generations is a guess. Provide that inventory before anyone quotes.

Second, a second facility, which turns address pools, boot services, image distribution and cross site provisioning into configuration decisions. Third, customer facing out of band console access, which is a security design as much as a feature. Fourth, selling BGP sessions and address space. Fifth, burn in and hardware validation, which sounds like a script and is a test harness with agreed pass criteria.

Insist that read back verification of switch configuration and the reclaim workflow are line items rather than assumed. Both are frequently absorbed into a headline provisioning figure and both are where the money and the risk sit.

What separates a build that works from one that fails here?

Idempotency, first. A provisioning run touches the switch, the management controller, a boot service, an image store, an address management record, a DNS zone and the billing system, and any of those can time out or half succeed. A script that runs steps in order will eventually configure a network and fail at imaging, leaving a machine in a state nobody can name. The design that survives a real data centre is a state machine where every step is safe to run twice, every failure leaves a named state, and every machine has a visible timeline. Ask a prospective developer what happens when provisioning fails at step six of nine, then ask what makes step three safe to run again. The second answer tells you whether they have done this.

Second, build the internal lifecycle before the public interface. Exposing an application programming interface on top of a workflow that still needs occasional manual repair produces support tickets faster than revenue. Run it against real orders for a few weeks, then open it up.

Finally, settle ownership before kickoff: the repository, the infrastructure accounts and the unrestricted right to bring in another firm. At Digital Heroes the client owns the code from the first commit. This platform encodes how your data centre operations actually work, so a vendor dependency here is a dependency on your ability to turn inventory into revenue.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. The average developer spends more than 17 hours a week dealing with maintenance issues such as debugging and refactoring, and about four of those hours on 'bad code' - waste that equates to nearly $85 billion annually worldwide in opportunity cost. Source: Stripe (2018) →
  2. 48% of private companies cite integration with legacy systems or technical debt as a top obstacle to realizing the full value of their digital and AI investments (behind data quality/availability at 72% and gaps in AI fluency or technology talent/leadership at 53%). Source: Deloitte (2026) →
  3. A study (led by Prof. Pak-Lok Poon, published in Frontiers of Computer Science, 2024) reviewing decades of spreadsheet-quality research found that about 94% of spreadsheets used in business decision-making contain errors, illustrating the hidden risk of manual spreadsheet workarounds that custom software is built to replace. Source: Central Queensland University / phys.org (Prof. Pak-Lok Poon et al.) (2024) →
  4. Digital Champions expect to achieve about 16% in cost savings and around 15% in revenue gains from digital operations over five years; the study surveyed 1,155 manufacturing executives across 26 countries. Source: PwC / Strategy& (2018) →
Shreyansh S. · Managing Director · Lucknow

Shreyansh runs the Lucknow operation, sitting between clients who need software built and the teams who build it. Most of his week goes on scoping work honestly, deciding what a project should and should not include, and keeping delivery promises realistic. He writes for readers weighing up whether to commission custom software at all.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How do we find out how many servers are sitting unreclaimed right now?
Cross reference the billing system's cancelled and suspended services against machines currently drawing power, then walk the difference. Most providers do this once and are surprised by the result, because nothing in the normal workflow surfaces it. Pair that count with the median hours between order and credentials over the last quarter. Those two numbers are the entire business case for automating the lifecycle, and both can be gathered in a week without any new software.
Should we import our existing hardware spreadsheet into the new platform?
Use it as a reconciliation hint, never as the source of truth. Hand assembled inventory decays, and the field that is wrong most often is which switch port an interface is actually connected to. In a spreadsheet that error is caught when a machine fails to come up. Inside an automation system it applies a correct configuration to the wrong port, which succeeds and stays wrong. Discover the fleet by booting machines into a discovery image and reconcile the differences openly.
How do we stop switch configuration errors from reaching production?
Read the configuration back after applying it and compare against intent, and fail the provisioning run when they disagree. Treat that as mandatory rather than as hardening. A write returning success is not evidence the configuration took, and a partially applied virtual local area network assignment does not announce itself, it waits until traffic patterns reveal a machine on the wrong network. Also keep a per vendor abstraction, since Arista, Juniper and older edge equipment do not behave identically.
What sanitisation level do we actually owe a departing customer?
Whatever your contract says, which is why the decision belongs to the commercial team before it belongs to engineering. NIST Special Publication 800-88 provides the vocabulary of clear, purge and destroy, and your customer's own compliance regime may set the floor. Encrypting at rest with per tenant keys makes cryptographic erase fast and defensible, which matters because long overwrite passes on large drives keep a machine out of revenue. Rotating management controller credentials is non negotiable in every case.
Is it worth using Ironic or Tinkerbell rather than writing our own imaging?
Yes, and writing your own is one of the clearest ways to waste budget here. Ironic is proven but carries operational weight and expects an OpenStack shaped environment. Tinkerbell is lighter and workflow oriented, which makes it a component rather than a finished system. Either one handles boot and imaging better than a bespoke effort will, and the work worth paying for is the layer above: catalog, tenancy, order lifecycle, reclaim policy and billing.
Why does provisioning keep leaving machines in states nobody can describe?
Because the automation is a sequential script rather than a state machine. A run touches the switch, the management controller, a boot service, an image store, address management, DNS and billing, and any of those can half succeed. Without idempotent steps and named states, a failure at step six leaves a machine that is partly configured and unresumable, so a technician fixes it by hand and the automation loses credibility one incident at a time.
When are WHMCS or HostBill genuinely enough?
Under roughly 150 servers with a uniform hardware mix and provisioning volume that one technician handles without strain. Their provisioning modules cover common cases, and the manual residue costs less than an engineering programme at that size. Ubersmith becomes the better option as billing complexity grows. The trigger to move past all three is usually not server count but the discovery that the scripts written around them have become the least documented and most load bearing code you own.
Can we give customers an API to provision and destroy servers themselves?
Yes, and it is often the commercial reason for the project rather than a bonus, but sequence it correctly. An application programming interface exposes every failure mode directly to the customer, so provisioning and reclaim need to be reliable state machines first. Build the internal lifecycle, run it against real orders for a few weeks, then expose it. Publishing an interface over a workflow that still needs occasional manual repair generates support tickets faster than revenue.
How long does it take from first call to software my team can actually use?
Plan for four to six months: two to three weeks of discovery, two to four weeks of design, then a 10 to 16 week build with testing. In Digital Heroes delivery experience the schedule killer is not engineering speed but decision lag; a client who takes two weeks to approve wireframes adds two weeks to launch. Book a weekly 30-minute decision slot before kickoff and most of that risk disappears.
What happens if I stop paying for maintenance after launch?
Nothing breaks on day one, which is what makes it dangerous. Within 6 to 18 months, unpatched dependencies accumulate known vulnerabilities, an integrated API like Stripe ships a breaking change, and the first fix requires a developer to relearn a stale codebase at full price. Budget 15 to 20% of the build cost per year for upkeep; it is the difference between a $500 patch and a $15,000 emergency.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
What are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
How small can the first version of my software be and still be worth building?
One workflow, end to end, for one type of user: the single process that currently burns the most hours or loses the most money. In Digital Heroes delivery experience, first versions scoped to 6 to 10 weeks of build time ship, get used, and generate the feedback that makes version two obviously right, while 9-month first versions routinely launch with features nobody touches. Everything you cut from v1 gets cheaper to build later, because real usage reorders the roadmap for you.
Is a solo freelancer enough for my project, or do I really need an agency?
A solo freelancer is a fine choice for a well-defined build under roughly $15,000 to $20,000 with a limited lifespan: an internal calculator, a scripted integration, a prototype. Above $50,000, or for any system your business will depend on for years, you are buying continuity as much as code: enforced code review, cover when someone is ill, and support that outlasts one person's career plans. Price the risk of a single point of failure, not just the hourly rate.
What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
What happens to my software if the agency shuts down or we stop working together?
Nothing dramatic, if the engagement was set up correctly: the code sits in your repository, hosting runs on your cloud account, and a handover document explains how to deploy and operate the system. Any competent replacement team can then take over in days rather than months. If the agency controls the repo, the servers, or the domain, fix that now, because renegotiating access during a dispute is the most expensive place to discover the problem.
How do we get years of data out of our old system and into the new one?
Treat migration as a planned sub-project: a field-mapping document, at least one dry run on a copy of your data, then a cutover with the old system kept read-only for 30 days as a safety net. On Digital Heroes projects it consumes 10 to 15% of the budget when the old system has an export, and more when data must be pulled out screen by screen. Ask any vendor to walk you through their last migration before you sign.
Who can build a custom software system?

Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?