Case · Lockstep
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.
What the work produced, before how it was done.
Replaced an incumbent platform costing the first client over $300,000 per year.
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.
Firm admin, firm member, client admin and client member work in the same platform with scoped views, across two separate organizations.
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.
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.
Shipped product first, then the concept and architecture it came from, then the system that made it repeatable.
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.
What the team could build from without a designer in every conversation.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.