Designing internal engineering utilities that stay beside the work
An internal engineering utility is a small program with a job an engineer already understands: place a tagged symbol from a house library, convert a photometric file into a drawing workflow, extract a schedule, check a naming rule. It should be boring to explain. When the utility grows a user directory, a theme, and a homepage, it has started competing with the CAD session for attention. Engineering utilities at Synergion are designed to stay next to the work.
How the investigation is actually run
Watch one complete use: from the moment the engineer needs a tag to the moment the drawing is saved. Time the extra clicks. If the utility requires a homepage, a login, or a second copy of the equipment list, it has left the “beside the work” rule. Put the mapping on screen. Make failure loud. The operator is not a clerk of wizards.
Decide whether this should exist at all. A one-off drawing does not deserve a tool. A bridge between two heavy applications is integration, not a palette button. A true system of record is a product with storage and review — different shape, different maintenance. Do not grow a utility into that product by accident.
Ship something an engineer will use without a launch meeting. If you need a launch meeting, you built the wrong thing. The utility should disappear into muscle memory and never claim to replace judgement on the sheet.
Design rules
- One authoritative store — the drawing, the model, or a named file — not a shadow database unless that is the whole product (see EE-Platform).
- Visible mapping. Hidden magic is un-reviewable.
- Failure must be loud. Silent wrong tags are worse than a refused run.
- The operator is an engineer. Do not invent a second career in clicking wizards.
Decide first whether the utility should exist at all: when automation is worth building. If the job is really a bridge between two heavy applications, treat it as integration: connecting applications.
Outcome
A good utility disappears into muscle memory. It does not need a launch event. It does not claim to replace judgement on the sheet. Version the mapping file.