Skip to content

Modernizing a nationwide document-flow system for public administration

TL;DR

Diagnosis

Two tensions drove the whole project. First: modernize legacy without losing what worked — power users (civil servants) loved the old desktop for its speed and for having everything at hand at once. Second, and more important: design for experts, not for beginners. The conventional UX instinct — whitespace, wizards, step-by-step — would have slowed these people down dramatically. The whole project rested on one rule: don’t “dumb down” the system.

What I did

flowchart LR
    A["Document arrives at the office"] --> B["Web registration<br/>~6 key fields"]
    B --> C["Categorization / routing to module"]
    C --> D["Widget-dashboard<br/>info from multiple modules"]
    D --> E["Clerk / manager"]

    classDef neutral fill:#f0f0f1,stroke:none,color:#3f3f46,rx:14,ry:14
    classDef good    fill:#e6f2ea,stroke:none,color:#1f4d33,rx:14,ry:14
    class A,B,C neutral
    class D,E good
    linkStyle default stroke:#a8a8b3,stroke-width:1.5px

Results

MetricValue
System scale~210+ institutions across Poland
Document-management adoption (2015)~32% of offices
Project team~8–9 people (3 BAs, 3–4 devs, 1 UX)
Duration~13 months
Readiness at handoff~95%

The problem

What was the old system like?

A desktop application from 2003. Power users — clerks registering hundreds of documents a day — genuinely valued it, because the correspondence-entry screen had every function visible at once. Some they used on every entry, others rarely. It was a dense, expert interface built for speed. But it was hard to maintain, inflexible, and desktop-only — while directors needed access to correspondence from mobile devices.

Why was it hard?

This was the crux. The standard, “modern” web UX — lots of whitespace, wizards, one step at a time — would have looked great in screenshots but slowed clerks processing a heavy volume of records each day down to a crawl. The instinct said “simplify and declutter”; the real needs said the opposite: keep the density, because density is speed. On top of that, a heavily regulated domain — the first days of the project were reading the chancellery instruction that dictated what was even possible.

My role / scope

Process

flowchart LR
    A["Ethnography + shadowing<br/>~10 sessions"] --> B["Axure prototypes"]
    B --> C["Round 1 testing<br/>feedback on fields"]
    C --> D["Round 2 testing<br/>speed parity confirmed"]
    D --> E["~95% completion"]
    E --> F["Handoff<br/>reorganization"]

    classDef neutral fill:#f0f0f1,stroke:none,color:#3f3f46,rx:14,ry:14
    classDef good    fill:#e6f2ea,stroke:none,color:#1f4d33,rx:14,ry:14
    classDef accent  fill:#27272a,stroke:#3f3f46,stroke-width:1px,color:#fafafa,rx:14,ry:14
    class A,B,C,D neutral
    class F good
    class E accent
    linkStyle default stroke:#a8a8b3,stroke-width:1.5px

Key decisions & trade-offs

How it turned out

The project reached ~95% completion, and was then handed to another government unit as part of a reorganization and government decision. Unfortunate for the project, but that’s the reality of public-sector work — political and organizational decisions overrule any single project. The value I built (the research, the density insight, fast-entry, the widget-dashboard) was developed and finished outside my hands.

What I took away