Enzo Fernandez

Operations System

Scheduling & Tracking
B2B·Industrial Operations·System Behavior Design·2024
Senior Product Designer
+65% Planning Efficiency−25% Coordination TimeFull Adoption <3 Months
01 — The Problem

Natural stone manufacturing. Factories producing marble and granite surfaces for residential and commercial projects. Complex multi-stage work involving planners, supervisors, operators, machines, and clients with real economic consequences when things go wrong.

Before this system, operations ran on email, WhatsApp, and phone calls. No traceability, no real-time state visibility, no structured recovery when physical failures occurred. The planner was the single source of operational truth. When they weren't available, the factory ran blind.

The brief was to redesign the scheduling and tracking system. Not visually. Behaviorally. Rebuild states, transitions, rules, failure modes, and governance from scratch.

02 — Why This Was a System Problem, Not a UI Problem

The instinct after two days in the field was to design a better interface. A cleaner dashboard for the planner. A more usable mobile view for the operator.

That would have been wrong. The problem wasn't the interface. It was that the system had no faithful representation of operational reality. No model of what entities existed, what states they could be in, what transitions were valid, and what happened when things failed. Without that model, any interface would be decoration over chaos.

You can make a prettier dashboard on top of a spreadsheet. It's still a spreadsheet.

03 — Core Decisions
Decision 1

Model before interface

What I Decided

Design the complete behavioral model: entities, states, transitions, integrity rules, before opening any design tool.

What I Rejected

Starting with wireframes in week one, as the PM requested.

The Pressure Against It

Wireframes give the sense of progress. The PM needed something to show. Saying “I don’t have screens yet” in week two is uncomfortable for everyone.

Why I Held the Position

A system with the wrong model produces unexpected behavior that no interface can fix. If the model has gaps, wireframes hide them instead of resolving them. The cost of fixing model gaps after wireframes are approved is three times higher. Two weeks of modeling saved months of redesign.

Task Entity State Machine

waitassignstartcompletesubmitblockrestartcancelcancelcancelPENDINGWAITINGASSIGNEDIN_PROGRESSCOMPLETEDPENDING_REVIEWBLOCKEDRESTARTEDCANCELLED
Decision 2

One system, two surfaces

What I Decided

The operator experience is a separate mobile layout of the same system. Not a separate app, not a responsive version of the desktop.

What I Rejected

Building a separate mobile app for operators, which was the initial assumption.

The Pressure Against It

A separate app feels cleaner. Operators have different needs, different context, different devices. Factory floor work with gloves and time pressure is nothing like planning at a desk. The argument for separation was legitimate.

Why I Held the Position

Two separate systems means two sources of truth, two codebases to maintain, two places where state can drift. The operator and the planner work on the same jobs, the same tasks, the same reality. If the state lives in one system, both surfaces always see the same truth. The mobile layout is radically different from desktop. But it is the same system underneath.

04 — The System
Planning calendar desktop view showing task blocks, schedule_health indicators, and conflict detection panel
1 / 8
05 — What Changed
BEFOREAFTER
Email, WhatsApp, calls for coordinationSingle system with real-time state visibility for all roles
Planner as single point of failureSupervisor fallback rule. No job ever without a responsible party.
Manual recovery after every failure: 30 min to 2 hrsStructured recovery pipeline with preview and confirmation
No record of who actually executedFull assignment traceability. Assigned vs actually executed.
DELAYED as a lifecycle state causing semantic confusionschedule_health as separate temporal signal. Clean state model.
No audit trailEvery critical action generates an immutable AuditEvent

Governance Matrix

ACTIONOperatorPlannerSupervisorView job scheduleCanCanCanCreate jobCannotCanCanAssign task to operatorCannotCanWith conditionsStart taskCanCannotCannotMark task completeCanCannotCannotBlock taskCanCanCanUnblock taskCannotCanCanSubmit task for reviewCanCannotCannotApprove / reject reviewCannotCanCanCancel taskCannotCanCanTrigger recovery pipelineCannotCanWith conditionsOverride schedule_healthCannotWith conditionsCan
06 — What I'd Do Differently

Involve a senior engineer earlier in the state modeling phase. When I presented the model, several questions revealed gaps I hadn't seen. Earlier collaboration would have caught them sooner. Not because engineering validates design, but because the back-and-forth surfaces edge cases faster than solo modeling.

Operator Experience
Mobile operator view
Mobile operator view
Mobile operator view
Mobile operator view
Mobile operator view
1 / 4
07 — Key Learning

The most important design work doesn't happen in Figma. It happens in the model. You can have the cleanest interface in the world and fail in production if the states, transitions, and failure modes are wrong. The invisible architecture defines the visible UX.

← Back to work