01Read and inventory
The application, the engine, the hosting, the integrations and the scheduled tasks. Anything urgent is raised the day we find it.
You get, an inventory and a risk list, both yoursNot every ColdFusion application needs migrating. A great many of them need one thing: a maintainer who is not a single point of failure, and who will still be there next year.
Defects, incidents and the things that break at month end. An agreed response time, and an engineer who does not need to be told what the application does before starting.
Incidents · defects · month-endThe tax-rate change, the new report column, the field the regulator now wants. Work that is too small to be a project but blocks somebody's week.
Change requests · reports · formsEngine updates, dependency remediation and the exposure review that most CFML installations have never had. The single highest-value item on this list.
Engine · dependencies · exposureBehaviour documentation produced as a by-product of the work, so the knowledge accumulates outside one person's head. This is what you are really buying.
Behaviour · integrations · runbooksAn annual view on engine support, hosting and where the risks are moving, so the migration conversation happens on your schedule, not after an incident.
Risk review · options · costsThe reason many teams call us in the first place. We can hold the system while you hire, or permanently if you would rather not.
Handover · continuity · on-callThis is the most common first call, and the window is usually being wasted while the call is happening. If the person is still in the building, even part time, that access is the most valuable asset in the situation and it has a hard expiry date.
What does not work is asking them to write documentation. They will produce a description of the system as they understand it, which omits precisely the things that are only visible to somebody encountering it for the first time.
What works is structured sessions while we read the code, because the questions worth asking only surface once you are inside it. Then we watch a real release, and then we take the pager while they are still reachable.
Where the person has already gone, we reconstruct from the code, the database and the people who use the application daily. It costs more and takes longer, but it is a well-worn path and the output is the same: documentation you own.
The application, the engine, the hosting, the integrations and the scheduled tasks. Anything urgent is raised the day we find it.
You get, an inventory and a risk list, both yoursExposed surfaces and unpatched components dealt with before anything else, because those risks do not wait for a contract to be signed.
You get, the immediate exposures closedOr, if they have gone, work with the people who use the system daily to reconstruct what it is supposed to do.
You get, behaviour documentation startedOne person who knows your system, with a named second who also does. Monthly reporting on what changed and what we would fix next.
You get; continuity, and a monthly viewWe would rather answer these before you ask than have you find out afterwards. If you are comparing providers, these are the questions worth putting to all of them.
The three that decide whether a retainer is the right shape.
Yes, and that describes most of what comes to us. An application that has been running untouched is usually in better shape than its owners fear: the code is stable precisely because nobody has been changing it, and the business has adapted around whatever it does badly. What we find instead is accumulated exposure, an engine several versions behind, dependencies with published advisories, an administrator interface that should never have been reachable, and no tested restore. Those are all closable, usually within the first few weeks, and they are cheap relative to the risk they represent. The first month of any takeover is deliberately weighted towards finding and closing them rather than towards new work.
It is, and small retainers are a large part of what we do on CFML. The economics work because the expensive part is comprehension, and that is paid once. After an engineer has read your system, a handful of hours a month is enough to keep it patched, handle the occasional change and stay familiar enough to respond usefully when something does break. What does not work is calling somebody cold once a year: you pay for the comprehension again every time, and you get it at the worst possible moment, which is during an incident.
That is often the best arrangement of the three. A single in-house developer on a CFML system carries a burden that is not really about workload, they cannot take leave comfortably, they have nobody to check their thinking against, and the organisation has no answer if they are ill. We can be the named second: reviewing changes, covering absence, taking the work they would rather not do and, importantly, being the person they can talk to about a platform almost nobody else in their network still uses. It is usually cheaper than a second hire and it removes the single point of failure, which is the actual thing you are worried about.