ITF Digital

Internal tools for work that outgrew spreadsheets

Web applications for the work a company actually repeats, built around a data model you own and can walk away with.

Specification
One week of mapping, then a written scope
First usable increment
Two to five weeks after the specification
Data export
Exists from the first release, not on request
Languages
Arabic and English, right-to-left designed in

An operations build starts by naming one record and deciding who may change it, not by drawing screens. Inspections, work orders, registers, approvals, portals. What you keep is a documented data model and a tested export, in your own repository.

A work order drawn as a record card with its fields, a photograph slot, a sign-off block and a revision line. Below it the states the work order moves through, raised, assigned, in progress, done and verified, each arrow labelled with the role allowed to make the move. A waiting state branches off in progress and is drawn live, with a reason required before it can be saved.ONE RECORD: THE WORK ORDERLOCATIONSITE, ROOM, ASSET TAGDESCRIPTIONFROM WHOEVER RAISED ITTECHNICIANA NAMED PERSONDUESET BY THE SUPERVISORSTATEWAITINGREASONPARTSPHOTOGRAPHREQUIRED AT DONESIGN-OFFREQUIRED AT VERIFIEDREVISION LINE: EVERY CHANGE LOGGED, WITH WHO AND WHENSUPERVISORTECHNICIANTECHNICIANSUPERVISOR OR CLIENTRAISEDLOCATION + NOTEASSIGNEDNAME + DUE DATEIN PROGRESSNOTHING YETDONEPHOTO + NOTEVERIFIEDSIGN-OFFTECHNICIANBACK WHEN CLEAREDWAITINGREASON REQUIREDSAVED ONLY WITH A REASONPARTS, ACCESS OR A CLIENT DECISIONWITHOUT THIS STATE, A JOB WAITINGTHREE WEEKS FOR A CLIENT LOOKSLIKE A JOB NOBODY STARTEDDECIDED BEFORE ANY SCREEN EXISTSTHE DATA MODEL DOCUMENT WRITES OUT EVERY FIELD, STATE AND PERMISSION
One record and its statesPermissions and states are designed before any screenSwipe to pan
  1. 01 Enquiry
  2. 02 Systems audit
  3. 03 Specification
  4. 04 Build
  5. 05 Pilot
  6. 06 Deploy
  7. 07 Handover
  8. 08 Support

Internal tools for work that outgrew spreadsheets sits at step 4 of the build cycle. You receive a working increment you can use.

01

The spreadsheet is rarely the problem

Most operations that ask for an app are not slowed down by the spreadsheet. They are slowed down by the copy of it.

One person keeps the master. Three people keep working copies. A supervisor emails a version to a client, and from that moment there are two truths and nobody can say which is current. Building an application does not fix that on its own. Deciding which record is the single one, and who is allowed to change it, is what fixes it. The software just makes the decision enforceable.

So the first thing we do is name the record. A work order, an inspection, an obligation, a document. One object, one owner, one set of states it can move through. Almost every failed operations build we have seen started with screens instead of that.

Then we write down its states and who may move it into each one. For a work order that is raised, assigned, in progress, waiting, done and verified. The waiting state, with a reason that has to be given, is the one most systems leave out. Without it, a job waiting three weeks for a client decision looks identical to a job nobody started, and every overdue report is wrong.

02

Inside a build

LayerWhat we buildWhat decides the size
The recordThe core object, its fields, its states and the rules for moving between them.How many object types the process really has
CaptureThe screens the person on site actually uses, designed for one hand and poor signal where that is the reality.Number of distinct roles capturing data
WorkflowAssignment, due dates, escalation and approval, with the state changes logged. Each approval names a role, a person holds it, and the log records who approved and when.How many approvals the process carries
OutputReports, exports and the client-facing document the work is ultimately for.Whether the output format is fixed or negotiable
AccessWho can see and change what, including client users where they need a view.Whether external users are in scope
IntegrationConnections to the systems the data has to reach, specified in writing first.The quality of the other system's interface
03

Yours at handover

Four of these are documents. That is deliberate: software without them is a dependency.

01

The source code

In your repository, with the commit history intact. Not a compiled artifact and not a licence to use our copy.

02

The data model document

Every object, every field, every state and every relationship, written out. This is what a future platform migration is built from.

03

A working export

Full data out in an open format, tested as part of the first release rather than written the week you ask to leave.

04

The operations manual

How to add a user, change a checklist, fix the common mistakes. Written for your administrator, in their language of the job.

05

Admin training

A working session with the people who will run it, recorded so the next administrator can watch it.

04

How the increments get cut

The point of an increment is that it can be wrong cheaply. Each one is something a real person can do a real task with.

  1. 01

    One record, all the way through

    Create it, fill it, submit it, approve it, see it in a list. Ugly, narrow, and enough to prove the model is right.

    Increment 1
  2. 02

    The hard capture case

    Whatever is genuinely difficult about your data entry gets built second, not last. Photographs, offline, bulk, awkward units.

    Increment 2
  3. 03

    The output the work exists for

    The report or export a client or an auditor sees. Built early, because it usually changes what the record needs to hold.

    Increment 3
  4. 04

    Everything around the edge

    Admin, permissions, bulk actions, the second and third role. This is the longest stretch and the least interesting.

    Increments 4 onward
05

A contractor's shared work order sheet

A maintenance contractor with its office in Khobar runs three client contracts from one shared spreadsheet of work orders, and each client receives a filtered copy by email every week.

The systems audit finds four live copies and two different meanings of "closed". The specification names one record, the work order, with six states from raised to verified, and one output, a weekly client view.

Increment one lets a supervisor raise, assign and close a work order in the browser. Increment two adds the closing photograph, taken on a phone with no signal. Increment three replaces the emailed copy with a client login that shows only that client's sites.

The pilot runs two weeks on one contract. The cutover record sets the spreadsheet to read-only on a named date. The contractor holds the repository, the data model document, a tested export, a two-page operations manual and a recording of the admin training.

06

The shapes a build usually takes

Work that happens on site and reports from an office

Inspections, maintenance, deliveries, handovers. The hard constraint is the person in the field, not the manager in the dashboard, and the build succeeds or fails on whether capture takes under a minute.

  • Offline tolerant capture with a sync queue you can see
  • Photographs attached to the record at the point of work, with the timestamp the device recorded
  • Supervisor review before anything reaches a client
07

Fair questions about a custom build

Q01

Should we buy something off the shelf instead?

Often, yes, and we will say so. If a product covers eighty per cent of what you need and your process can bend to the rest, buying it is cheaper than anything we can build. We will name the product. Where a build genuinely wins is when the process is your actual differentiator, when the products in the category all assume a workflow you do not run, or when the licence cost per user stops making sense at your headcount.

Q02

How long before we see something real?

One week to map the workflow and write the specification. Two to five weeks to the first increment you can use on real work. A pilot with one team after that, usually two weeks, before anybody else touches it. If a supplier promises a finished system in that window, they are describing a demo.

Q03

Who owns the code?

You do, and it sits in your repository from the first commit rather than being transferred at the end.

Q04

What drives the cost?

The number of distinct record types, the number of roles that touch them, how many approvals the workflow carries, whether external users are in scope, and the state of any system we have to integrate with. A single-record internal tool with two roles is the cheap end. We quote after the systems audit.

Q05

Does it work in Arabic?

Yes, and right-to-left is designed in rather than retrofitted. Say so at specification, because bilingual interfaces change some layout decisions and almost no data decisions. Retrofitting Arabic into a finished English interface is the expensive order to do it in.

Q06

What happens if we outgrow it?

That is the intended ending. The data model is documented and the export is tested, so the next platform inherits clean records instead of a reverse-engineering project. Building something you will replace in five years is a normal, sensible outcome, and it is a better outcome than a platform you cannot leave.

Start with the map, not the mockup

Bring the spreadsheet everybody argues about. The first hour usually goes on deciding which copy is the real one, and that is a conversation worth having whoever ends up building it.

Book a systems audit