Case · Lockstep

A platform built for the people doing the audit work, not the people buying the software

A three developer startup team was building an audit engagement platform for small and medium consulting firms. Their first client, IS Partners, was spending over $300,000 a year on an incumbent platform whose cost climbed with every seat the firm added. Over fifteen months I led product design as a side engagement: stakeholder research, the role model that became the product's structure, workflow architecture, accessible UI direction, and the research and design principles the team carried forward on its own.

Role
Lead Product Designer
Timeline
Jan 2024 – Mar 2025
Product
Lockstep, live at getlockstep.io
Focus
Research, IA, accessibility, interaction
~$300K
Estimated annual savings, first client
Live
In production, running IS Partners engagements
4 roles
Firm and client sides, one interface
15 months
Four person team, design direction from the side
01

Outcomes

What the work produced, before how it was done.

~$300K estimated annual savings

Replaced an incumbent platform costing the first client over $300,000 per year.

Live in production

Lockstep runs IS Partners' audit engagements today, and the team is taking it to other consulting firms on the strength of its usability against larger competitors.

Four roles, one product

Firm admin, firm member, client admin and client member work in the same platform with scoped views, across two separate organizations.

Personas from interviews, not assumption

Research covered roles inside the firm and outside it, including the HR and operations staff who supply documentation but do not live in compliance software.

Principles the team kept using

Direction was handed over as research and design principles, which is what let three developers and a project manager ship this much surface area in fifteen months.

02

The work

Shipped product first, then the concept and architecture it came from, then the system that made it repeatable.

Lockstep request detail screen with status, target date, assigned users, framework and control mapping, a threaded comment stream and a document dropzone.
Lockstep, final design. The atomic unit of the product. Status, target date, assigned users, the mapped framework and control, the comment thread with @mention, and the dropzone. A contributor who receives a link lands on a screen stating what is wanted, when it is due, and where to drop the file. There is no navigation to learn.
Product walkthrough. Ninety seconds through the shipped platform: the client request readout, engagements, firm users and permission chips, write confirmation, client impersonation from the sidebar, and notifications. Demonstration data throughout.
03

Concept and architecture

Before the product had a visual system it needed a structure. These are the working files from the first phase, where the team and I defined the information architecture and the process flow for each persona.

Manager dashboard concept showing engagements grouped by client, each with a five bar request status readout, client contacts and assigned auditors.
Manager dashboard, concept. Every engagement with its request status broken into five bars. This is the question the whole product exists to answer, and putting it on the landing screen fixed the priority for everything downstream.
Wireframe of engagement detail with filter chips for each request state and a questionnaire panel.
Engagement detail, filters and questionnaire. The five request states as filter chips with live counts, and the engagement questionnaires held beside the request list rather than behind a separate tab.
Wireframe of engagement detail with requests grouped under Changes Needed, Open Requests, Under Review, Custom and Completed headings.
Where the five states were settled. Changes Needed, Open, Under Review, Custom, Completed. Requests group under the state rather than sorting inside one list, so a stalled item cannot hide in a scroll. This taxonomy reached the shipped product unchanged.
Wireframe of the client detail screen with recent contacts, account levels, associated frameworks and recent engagements by year.
Client detail. Contacts with account level and last login, associated frameworks, and engagements by year. The annotation marks archived engagements, an open question rather than a settled answer.
Wireframe of the clients list with client lead, phone, email and assigned auditor columns.
Clients list. The firm's book of business, with the assigned auditor on every row so ownership is answerable without opening a record.
04

Design system and flows

What the team could build from without a designer in every conversation.

Component sheet covering brand marks and color values, button variants across enabled, hover, active and disabled states, alert message types, status chips, filter chips, form controls and input states.
The component sheet. Brand marks and values, the typeface, buttons across four states and five variants including destructive, the four alert types, status chips in both outline and filled, filter chips, form controls and every input state. Specified once so the team could build screens I never reviewed and stay consistent.
Navigation exploration showing light and dark header bars, mobile treatment, a notification dropdown, sidebar navigation patterns and breadcrumb levels.
Header and navigation. Light and dark header treatments, the notification dropdown, sidebar patterns and breadcrumb depth, worked out as a set rather than screen by screen.
Process flow map for the firm side, mapping dashboard, engagements, clients, manage controls and admin to their child screens, annotated with a note about ordering navigation by expected frequency of use.
Firm side process flow. Every top level destination mapped to the screens beneath it, with the transitions labeled. The note at the top reads that left to right nav order can match expected frequency of use, and that it needs verifying with the firm. Direction posed as a question to test, not a decision asserted.
Process flow map for the client administrator, showing a reduced set of destinations and annotations about what the client provides and how ownership of requests currently works.
Client administrator process flow. The same exercise for the other side of the product, and the reason the client view is smaller. Annotations capture what the client supplies and how request ownership worked at the time, addressed to a named developer for confirmation.
Report selection screen with a create a new report action and a horizontally scrolling row of report templates.
Report selection. Template choice as a scannable row rather than a dropdown, because picking a report format is a comparison, not a lookup.
05

Situation

The team was building for a real firm with a real bill.

IS Partners ran its audit engagements on an incumbent platform costing over $300,000 a year, priced so that growth made it worse. Every new auditor, every new client contact, every seasonal contractor added cost. A firm whose business depends on adding people was buying software that penalized it for doing so.

Cost was the visible problem. The workflow problem underneath it mattered more. Completing an audit engagement means collecting evidence from people who do not work in compliance software and never will. A benefits administrator in HR, an office manager, a finance lead. They are asked once or twice a quarter for a document, and the request reaches them through whatever channel is at hand. Documents go missing in inboxes. Approvals wait on a document nobody knows is missing. Engagement dates slip for procedural reasons rather than substantive ones.

Partners needed two things at once: visibility into whether each engagement would finish on time, and a way for occasional contributors to upload what was asked of them securely, without training.

The category default would have made this worse. Compliance tools in this segment are typically sold to an IT or security leader and designed for that buyer's evaluation checklist. The people who spend hours in the product, the auditors and the client side contributors, inherit whatever is left.

06

Task

Lead the design of a platform that:

The constraint that shaped everything: the team was three developers and a project and client relationship manager, and I was working with them as a side engagement. There was no capacity for design as a bottleneck. Direction had to be durable enough that the team could keep making correct decisions between sessions.

07

Action

A.Ran the early stakeholder interviews, then handed the method over

I conducted the early stage client stakeholder interviews myself, then coached the team on running them: what to ask, how to avoid leading questions that confirm a roadmap, and how to keep going until the occasional users surfaced.

That is where the finding was. The people most likely to stall an engagement were not auditors. They were HR and operations staff outside the firm who would open the product a handful of times a year and had no reason to learn it.

We built personas across two organizations. Firm side: partners who own engagement outcomes and dates, auditors who run testing and request evidence, firm admins who manage users and configuration. Client side: a client admin who owns the relationship and the response, and client members asked for specific documents and nothing else. Those personas became the product's structure, not a research artifact filed after kickoff.

B.Turned the persona split into the information architecture

Two audiences, one build. The firm sees a portfolio: clients, engagements, firm users, frameworks. The client sees only its own work: overview, engagements, company profile.

This was settled in the wireframe phase, before any visual system existed, which is why the structure held once the interface was built on top of it. The permission model resolves to four roles, firm admin, firm member, client admin and client member, surfaced as chips on the user record rather than buried in a settings tree, so access can be audited by reading a list. I directed a client impersonation capability for firm admins that shows the firm exactly what a client sees, which collapses the most common support conversation in products like this into a single click.

C.Designed the request as the unit of work

An engagement is a container. The request is where the product either moves or stalls, so it got the design attention.

One screen holds the description, target date, status, assigned users, the mapped framework and control, the comment thread with @mention, and the document dropzone. A contributor who receives a link lands on a screen stating what is wanted, when it is due, and where to drop the file. There is no navigation to learn.

Status is not binary. Custom statuses, open, under review, needs changes and completed reflect how evidence review actually works, and roll up into a percent complete readout at the client and engagement level. A partner reads a figure and a five number breakdown rather than opening records to find what is stuck.

D.Advised on accessibility as a requirement, not a review step

The firm's marketing palette was not built for a product interface. Marketing color is tuned for large type on white in a controlled layout. Product color has to survive small text, dense tables, disabled states, status chips and both themes.

I set the rule the team followed: brand color is allowed to be a surface and to carry display type, and a deeper neutral carries the persistent chrome where sustained reading happens. The sidebar uses a deep navy that clears AA for white text with substantial margin, so the navigation people look at all day is never the compromise. Status color got the same treatment. The five request states are distinguishable by position and label, not hue alone.

Because I was advising rather than sitting with the team daily, this went to them as principles with thresholds attached rather than as annotated screens, which is what let them apply it to surfaces I never reviewed.

E.Called out where the component library would not get there

The team was building on Tailwind UI. Most of the product should use it, and does. My job was to be specific about where it would not deliver the workflow, early enough that the team did not build it twice.

The named exceptions were the request status readout, the permission chip pattern on the user table, the impersonation control in the sidebar, and the comment thread with mention behavior. Each carries product specific logic that a generic component flattens. Everything else stayed stock, which is what let a four person team ship this much surface area.

F.Designed the responsive and interaction behavior

The firm's people work on laptops and large monitors. Their clients open a request link on whatever is in hand. I directed layouts across the full range rather than designing desktop first and letting small screens degrade, including a collapsible sidebar that returns horizontal space and a light and dark theme.

Alert and confirmation behavior got explicit attention because it is what tells a user their work landed. Every write produces a toast, success and failure both, including the duplicate email case on user creation. Assignment and status change events produce notifications with unread filtering.

G.Structured the data so automated evidence checking became possible

Late in the engagement the team began exploring automated document ingestion into Azure cloud services, with AI reading submitted evidence and checking it against SOC 1 and SOC 2 criteria.

That exploration was only tractable because of how the request had already been designed. A request in Lockstep is not a generic task with a file attached. It carries an explicit mapping to a framework and a specific control, and it moves through a defined status set rather than a free text field. Evidence arriving against a request is therefore already labeled with what it is supposed to prove and what state the reviewer left it in.

That is the difference between a document store and a checkable record. The structure was designed for human legibility, so a partner could read engagement health at a glance, and it turned out to be the same structure a machine needs to evaluate evidence against a criterion.

08

Result

Shipped and live

Lockstep went live and runs IS Partners' audit engagements today. Fifteen months, three developers, one project and client relationship manager, and design direction from the side.

Cost

It replaced an incumbent costing the first client over $300,000 annually, with estimated savings of approximately $300,000 per year. The incumbent's cost rose with headcount, which is what put a firm whose business depends on adding people in the market for a replacement.

In market

The team is now taking Lockstep to other small and medium consulting firms, competing against larger platforms on usability. The research that produced that usability, specifically the decision to design for the occasional client side contributor rather than the buyer, is the reason it is a differentiator worth selling on.

Where it went

The platform foundation supported an exploration into automated document ingestion and AI evidence checking against SOC 1 and SOC 2 criteria, which began during the engagement. The product has since shipped AI capabilities that were built after March 2025 and are not claimed here.

What was avoided

The category default is enterprise software sold to a department head and tolerated by everyone else. This product is legible to a benefits administrator who opens it twice a year, which is the harder audience and the one that determines whether engagements finish on time.