DDS Wireless · 2013 – 2019
DDS: on-premise to SaaS
From screens to the whole ecosystem.
DDS sold on-premise software to transportation service providers, drivers and passengers. Moving it to SaaS meant rebuilding legacy applications from the ground up — but the harder problem was underneath them, in business processes that had been written for a different way of selling software.
At a glance
- Role
- Owned the user experience of every software product at DDS
- Team
- Product management, engineering, executive stakeholders
- Modes
- Transit, paratransit, taxi & limo, ridesharing
- Users
- Passengers, drivers, dispatchers, service providers
Context
DDS provided total solutions for transportation service providers, drivers and passengers, across devices and platforms — dispatch, scheduling, routing, vehicle terminals, booking. Shifting business objectives pushed the company off traditional on-premise software and onto SaaS.
Problem
Everyone framed this as an engineering project: rewrite the legacy applications. The rewrite was real, but it was the smaller half. The business processes had to move too — how the company sold, deployed, supported and versioned its software had all been shaped by shipping a product that then sat on somebody else’s server.
I owned the user experience of every software product in the company, so the whole surface of that change landed on my desk at once. It was also the only chance any of us would get to escape decisions that had been locked into the legacy applications years earlier, so I chose to treat it as a design problem from the start rather than a porting exercise.
Research: four modes, three kinds of user
It started with the users, and there were more of them than anyone had written down. I ran a literature review and competitive intelligence across all four transportation modes we served — transit, paratransit, taxi and limo, and ridesharing — and built a profile of each of the three groups in each mode.
- Passengers. Demographics, including age, income, education, car ownership, whether they lived urban, suburban or rural, and what constraints or disabilities they had. Travel characteristics: usual trip purpose, frequency, distance, how they got to and from the vehicle, what they would use instead. Then what they felt good about and what they felt bad about.
- Drivers. Demographics, the positives, the negatives, and — separately — what mattered most to them, which is not the same list as what they complained about.
- Service providers. Fleet size, public or private, years in operation, urban or rural. Which business and operating strategies had worked, which had failed, and what they were worried about.
A literature review is the cheap instrument, and it was the right one for this stage: I needed archetypes and general needs to plan against, not decisions. The expensive instruments came later, against specific designs — user interviews, customer surveys, analysis of the support logs, and contextual inquiry.
Writing down what the customer is actually trying to do
Out of the research I pushed the team to do something that sounds trivial and was not: state, in plain words, what our customers were trying to achieve — and then what would actually move each of those things. We ran it as a group exercise and compressed the result until it fitted on one page.
- Moving people. Fewer rejected trips. Less waiting and less traveling. Lower cost. More safety. More comfort.
- Maximizing profit for transportation partners. More trips fulfilled. Better efficiency, which mostly means less dead heading. More revenue, less capital cost, less operating cost.
- Best use of system resources. Higher vehicle occupancy. Less driver idle time. More collaboration between transportation partners. Higher ridership. A smaller carbon footprint.
A fourth goal sat underneath those three rather than beside them: motivated and efficient drivers. It needed no enablers of its own — fewer rejected trips, less dead heading, less idle time, and the driver’s day is already better. If the first three are working, the fourth is what that looks like from the cab.
One page, printable, and on the wall — so that when a business or design decision came up that would affect a customer, we could look at it instead of arguing from memory.
Two ecosystem maps
Good SaaS experience is not modern interface, or current technology, or sound business strategy. It is those things agreeing with each other. So with the product managers and stakeholders I mapped the ecosystem twice: the one we had, and the one the company’s stated vision implied.
This turned out to be the highest-leverage artifact of the project. Not because either map was surprising to any individual, but because nobody had ever been shown both at once. It gave everyone a big picture to place their own decision inside, and it made the consequences of a decision arguable rather than a matter of seniority.
Three journeys and their touchpoints
Then I mapped the journey and the experience our users were actually having: dispatcher, driver, passenger. Each map carried the UX touchpoints alongside it, so a person reading it could see not just what the user went through but which piece of our software was in front of them at the time.
The three maps do not have the same shape, and that turned out to be the finding. The passenger’s runs pre-booking, booking, waiting, riding, post-ride — a trip. The dispatcher’s and the driver’s both run start shift, during shift, end shift — a day. Two of our three users do not experience our software as a journey with an end. They experience it as eight hours.
The feeling row on the dispatcher map is where the interface got its brief. Going through the data grid is tiring and slow. I hope data can be better visualised. Going through the map requires much focus and attention to detail, and things can be overlooked when markers are overlapped or lack contrast. A dispatcher describing a contrast failure, unprompted, without the vocabulary for it.
Deciding what the SaaS product would contain
Consolidation was the opportunity hiding inside the migration. I compared every existing product and built an inventory of every feature and function across all of them. Set that against the user goals and the journey maps and three categories fall out on their own: what is missing, what exists but is inadequate, and what is redundant or insignificant.
Which gave product management three questions it could actually answer. What is essential to the core experience and belongs in the MVP? What adds real value and can wait for a later release? And what adds little or nothing, and should be removed rather than ported?
The inventory was laborious and I would do it again. Building it meant a long conversation with every product manager in the company about their own product, which is the fastest education available and is not obtainable any other way.
What it produced
The feature comparison and the priority charts gave product management solid ground for the SaaS roadmap — the document that then coordinated what everyone in the organization built, and in what order, to deliver the SaaS product on time.
Design work that ends in a roadmap rather than a screen is easy to undervalue. This one decided which screens would exist at all.
Tradeoffs I made
Literature review first, real users later.
Secondary research is a weaker source than talking to someone, and I opened a project of this size on it.
What I gave up: primary evidence at the start. What I got: coverage. Four transport modes and three user groups is twelve populations. Interviewing all of them before we knew what we were building would have spent the year on research and arrived at the same archetypes.
A full feature inventory instead of a sample.
Weeks of comparison work, and no visible design output at the end of it.
What I gave up: speed, and looking productive. What I got: the authority to say a feature should be dropped. Nobody removes anything from a migration on an opinion.
What I’d change
I built the customer goals model with the team and then let it live on a wall. It should have been wired into how decisions were recorded — a field on the ticket, a line in the spec — so that a choice had to name the goal it served. Artifacts that people have to remember to consult are artifacts that stop being consulted, and this one was good enough to deserve better.