Contract management
Redesigning how a logistics company analyzes, manages, and wins contract business
Introduction
RFQ (Request for Quote) is a workflow and analytics app that helps Coyote Logistics participate in a bidding process to win yearly shipment contracts that make up over 80% of Coyote’s revenue.
The goal of this project was to update RFQ to accommodate new types of contracts and shipments. Due to the old system’s legacy code, we were tasked with shipping a brand new cloud-based app.
My Role
Led design process end to end starting from initial user research all the way through to MVP launch
Team
Lead Product Designer, Product manager, Developer Lead, 3 Developers
Timeline
6 Months. MVP Launched Sep 2020. Ongoing product iteration
01/
Discovery
So what’s the problem?
RFQ was developed internally almost a decade ago, when Coyote’s business only competed for one type of contract, Truckload contracts. This legacy application was also built without any design or product management help.
Over time, Coyote’s business grew to include different types of shipments like Less-than-Truckload, Intermodal as well as expanding internationally to Europe. However, RFQ remained untouched primarily due to the messy legacy code it was based on, and these new teams used workarounds in Excel to handle their bidding workflow for years.
We kicked off the initiative to re-design RFQ to accommodate new team workflows as well as re-build from scratch using a modern programming language.
Meeting my users
I began my discovery by conducting user interviews and shadowing a group of 15 users across teams and countries, looking to uncover:
User goals and needs at each phase in the workflow
Pain points and areas of improvement from the existing tool
Variations in the contract and pricing workflow across teams
Synthesizing my research
I summarized my user research in two ways: a user flow and personas. The personas surfaced high-level similarities in user needs across teams, while the user journey surfaced important variations in workflows across teams.
02/
Planning and Testing
Defining an MVP
Defining an MVP for this project was a new challenge for me. I had worked on MVP’s of new features or redesigns, but not an entire enterprise application. But due to our tight development time of 6 months to ship a first release, it was critical to clearly define an MVP — so I turned to our users for help.
I decided to host a version of a user story mapping workshop, called “Buy a Feature”. This workshop started with user stories that I had written based on my research. After allowing my 17 participants to review and add user stories, I gave all participants a limited number of sticker coins in which they could “purchase” features that were most important to them.
The outcome of the workshop was a clear list of prioritized user stories, as prioritized by users themselves.
Iterative Design & Testing
The challenge of designing RFQ was creating a universal structure that could accommodate five different team’s workflows, while selectively accounting for differences. Because of this, it was important to transition from low to high fidelity mockups, reviewing with users at each phase of design. Specifically before transitioning from medium to high fidelity mockups, I conducted usability testing with an InVision prototype with users from each team.
With my list of prioritized user stories for the MVP, I began with low fidelity wireframes.
03/
Design Solution
Through the course of 6 months, I designed high fidelity wireframes on a rolling basis, based on the work the dev teams were pulling in. Below, I outline my design considerations on a few of the key pages.
Homepage Layout
The core of RFQ is a task and workflow management tool. Different people and teams work together on a single contract, passing it back and forth, through various phases to ultimately win or lose a contract.
For my re-design, I pulled inspiration from Trello and Azure to create a visual representation of live contracts moving through different phases of the bidding process. Each card represents one contract and shows a high level summary of information. This card layout was especially helpful for our sales users, who make up the majority of the user base, because they essentially project manage contract opportunities through the lifecycle, versus pricing teams who are just tasked with working through pricing and details.
I ran into the issue that while most teams were working on less than 20 contracts at a given time, the Truckload team could have up to 60 contracts in their busy season. Instead of implementing a complex UI like collapsing cards into a condensed view, I decided to include a toggle for the user to switch between a card and table layout.
Contract Page Structure
Each contract had a dedicated sub-page and was accessible from the home homepage. It was important for the design of the contract sub-pages to have flexibility and centralization.
Flexibility was important because certain teams had additional workflow steps that other teams did not. For example, the Truckload team allocated work within a contract, whereas in other teams, one team member managed one whole contract. To account for this, I decided on a dashboard layout. With a dashboard layout, we could easily add/remove a widget depending on on the user (team) type.
It was also important for this page to contain all the documents and data relevant to the contract. One big pain point of the legacy tool was that the commenting and documents features were unreliable. As a result, users relied on email and Slack for communication and sending documents back and forth, which was a security issue for the company. To account for this, I added a widget for messages (as opposed to comments) with the UI of a recognizable chatbox, as well as a widget for uploading and downloading documents.
Notifications
Because messages and documents were contained within individual contracts, it was important to have a robust notification system. In fact, one of the main reasons that users relied on email/Slack for communication when using the legacy tool was that it lacked any form of notification capabilities.
Unfortunately for the initial MVP release, we were only able to implement email notifications. However, in our post-MVP work, I designed a notifications panel, accessible from the main navigation. There are two main types of notifications: messages and tasks.
As mentioned, contract opportunities move back and forth between teams, so it was critical to inform users of certain tasks awaiting them. For example, if a Sales user creates a new contract opportunity, we would auto-trigger a notification to the respective Pricing team, communicating that a new contract has been created for them to review. We called these task notifications because they were events with a required follow-up action.
Given the consideration that most RFQ users would not be on the page constantly, we also implemented browser notifications that could be managed from a notifications settings page.
04/
Development & Release
Development Support
This was the first project I worked on where I was working with developers to launch a digital product from scratch. As the sole Product Designer, I had to support the UI developers through the entirety of the development process, and it was an incredibly valuable learning experience. In supporting the UI devs, my responsibilities included but were not limited to:
Defining responsive behavior on all pages
Mocking up component states, if our design library did not have it
Mocking up error states (null states when applicable) for every action a user can take
Talking through and designing for edge cases
Usability Testing & Rollout
Two months before our MVP release, we held two rounds of UAT testing. Because this was done virtually, we set up mock contracts in a test environment and asked users to complete a series of tasks that imitated the workflow of the user’s team. We collected feedback in a shared Excel document, which asked for feedback on every task that was completed.
On September 2020, the MVP of RFQ was released to 300+ USA users. Since then, the team and I have been working through a backlog of prioritized post-MVP work items as well as bugs.
Extra/
Reflections
Stay Humble, MVP
It only gets better after the MVP. For example, all notifications were sent out as emails in the initial release. However, the first post-MVP feature we worked on was an in-app notifications system, followed closely by a notifications management page.
Identify the true Edge Case in a sea of Edge Cases
Inform decisions around edge cases based on data. Ask questions like, how often would this happen or what is the number of users that this could potentially impact? Based on those answers, decide selectively to design for edge cases.