When my team resisted O9X, I did not assume the system was wrong. I had to identify what I was actually facing: a flaw in the workflow or a refusal to change. Which it is determines the response.

I knew this before O9X went live. I had seen the same pattern across three earlier digitisation efforts: payroll, invoicing, and accounting. [link] Each time: initial consultation, surface compliance, quiet reversion. Blaming a person is the easy instinct. I had learned it does not hold. Replace the person and the new one does the same thing, because the underlying system is unchanged.

What I did not know was how it would scale with 30 field staff instead of 5 office staff.


What Beta Forced Into the Open

During development, I shared the system with my team regularly. My team said almost nothing. I read it as quiet approval or low engagement. Neither required action yet.

Beta changed that. Once the team had to migrate data and use the system daily, three categories of complaints surfaced immediately.

The first was usage confusion. Some people genuinely found the interface difficult. In my read, most used complexity as cover to avoid adopting the new process.

The second was missing data fields. A real category. I missed some fields that matter in operations in the first build. I fixed them. But supervisors also used this complaint to delay enforcement on unrelated fronts.

The third was workflow compliance. O9X codifies what people claimed they were already doing. When the system enforces it, the gap between claim and reality becomes visible. Every supervisor who had been filing late did not want that gap visible.


The ESIC Case

Indian labour law requires employee registration on the ESIC (Employees’ State Insurance Corporation) portal within 10 days of joining. Miss this window and you risk a gap in the employee’s coverage, recoverable only through a formal show-cause process with ESIC. With 75 to 80 people joining each month, this is not a theoretical risk.

I ran the old process on Google Forms. A field officer submitted joining details. My HR person reviewed and entered the record into payroll.

The 10-day mandate existed. Enforcement did not.

In the past year, 15 employees had joining dates recorded late. Some by 3 days. Some by 4. No audit triggered consequences. But I knew what this was: a compliance liability that would not stay quiet at scale.

The field officer was not careless. He was rational inside the system I had built. Late submissions cleared without consequence. The HR person absorbed the pressure quietly rather than escalate. The system had no penalty for lateness, so lateness became normal. The system trained the behaviour I was trying to fix.

O9X changed the rule. The form does not accept a joining date more than 5 days from submission. Any exception requires my approval before I release the record.

The 5-day window was already a concession to operational reality. I knew field staff need time to collect documents from new employees. Day one submission is genuinely difficult. Five days is not. Any objection beyond that window had no operational basis, and I knew it.

Two weeks since enforcement began. My team has completed 99% of enrollments within the window. No genuine edge case has surfaced yet. If one does, it will get manual review and a system fix. The rule was designed with the real constraint already absorbed. So far, reality has not broken it.

The supervisors who objected kept objecting. I held the rule and explained the rationale. I explained the ESIC consequence. I explained what one audit would cost. After one week of holding the rule, the supervisors filed within the window.


The Diagnostic

People do not fail. Systems do.

Behaviour follows consequence. The old system set the consequences. It told the field officer, through every cleared lapse, that the cadence did not matter. He believed what the system demonstrated, not what the policy document stated.

O9X enforces what the old system recorded and ignored. The resistance it generates is not a signal that the system is wrong. It is a signal that the system is working.

When someone pushed back, I asked them to show me the flaw. If they could, I fixed it immediately. If they could not, I held the rule and explained the rationale.

The ones who kept resisting after a full explanation were the ones who had been operating outside the cadence for years. The old system never enforced it. They had learned to treat silence as permission.

That is the system doing what I built it to do.