Projects STERIS: Collect and deliver

Collect and deliver

STERIS deliver specialist outsourced services to healthcare providers, including the collection and delivery of trolleys between hospital facilities and central cleaning warehouses.

When I joined the project, the entire process was being managed with pen and paper – and it was generating roughly 80 defects a week. Trolleys ending up at the wrong hospitals, delivery logs filled in incorrectly, porters trying to remember what they’d collected across multiple trips to a sixth floor ward and back.

I designed a native Android app for the Bluebird device that digitised the whole process – and the results spoke for themselves. 100% delivery improvement. 44% productivity increase.

My role

I was the UX/UI designer on the project end to end – shadowing drivers in the field, mapping user journeys, creating flows for both happy and unhappy paths, wireframing in Balsamiq, designing the full Android UI and conducting user testing sessions with the porters themselves.

The app was built for the Bluebird – a rugged Android handheld device with a built-in barcode scanner – and needed to work reliably in environments where hospital signal could be terrible.

User research Shadowing High level user journey mapping User flows Wireframing (Balsamiq) Android native UI design Prototyping User testing Offline-first design Geolocation Push notification design

Key challenges:

Trolleys ending up at the wrong hospital

Challenge

Trolleys have poor wheels and a habit of drifting between groups.

A well-meaning member of staff puts a stray trolley back in what they think is the right group – but it isn’t.

The porter collects it, delivers it to the wrong hospital, and another defect gets logged.

Solution

The app notified porters if they’d scanned fewer trolleys than expected for a collection, flagging the discrepancy before they left rather than after they’d delivered to the wrong place.

Not much I could do about the wheels.

Key challenges:

Delivery logs filled in from memory

Challenge

A porter arrives at a hospital with 10+ trolleys. They make 5+ trips to a sixth floor ward and back, dropping off clean trolleys and collecting dirty ones.

By the end of the shift they’re trying to remember exactly what they collected and where – and filling in paper logs from memory.

Unsurprisingly, things went wrong.

Solution

By scanning their location on arrival and scanning each trolley as they collected or delivered it, the app logged everything automatically in real time. No memory required.

After user testing, the porters’ biggest reaction was realising they didn’t need to go back to the van to fill in delivery logs – the app had already done it.

Key challenges:

Designing for poor signal

Challenge

Some hospitals have terrible phone signal, and the Bluebird is a mobile device.

If the app stopped working every time signal dropped, it would be worse than the pen and paper system it was replacing.

Solution

I designed a full offline handling flow. When the device lost signal, scanned trolleys were stored in an offline list and the app continued functioning normally – making the usual success sound so porters weren’t confused.

When signal returned, the database checked the offline list for errors and duplications and notified the user if any action was needed. Seamless.

Key challenges:

Fast track deliveries

Challenge

Occasionally a porter would get an urgent call mid-shift to collect a fast-tracked trolley for an emergency procedure – dropping everything and going immediately.

This was another point where trolleys could easily get mixed up.

Solution

Fast track requests pushed directly to the device as notifications, taking the porter straight to the relevant location and logging the collection separately so it didn’t get confused with their regular run.

Key challenges:

Multiple users, one device

Challenge

The Bluebird devices were shared across multiple porters.

Each user had their own preferred task setup and needed to be able to switch accounts quickly without losing their personalised configuration.

Solution

I added a Change User feature in Settings that let porters switch accounts in seconds, with each user’s task preferences saved to their profile so nothing needed to be reconfigured.

Research:

Shadowing

Before touching a wireframe I spent a day shadowing a porter on their actual shift – watching how the current pen and paper process worked in practice, where it broke down and what the real day-to-day frustrations were. Seeing the process firsthand was invaluable.

The high volume of trips, the difficulty of remembering collections across a full shift and the chaos of a fast track call all became immediately obvious in a way that no brief could have conveyed.

Research:

High level user journey

I mapped out a high level user journey covering the full path a porter takes during a typical shift – excluding fast track journeys, which were mapped separately. This gave the whole team a shared understanding of the process before design began.

Ideation:

User flows

I created two user flows – a happy path covering the standard collect and deliver process, and an unhappy path covering offline functionality and error states.

The offline path was just as important as the happy path given the signal conditions in older hospital buildings.

Happy path

After logging in, the porter lands on their personalised Tasks screen. They scan their location, then scan each trolley. Recognised trolleys are logged automatically with a success ping. Unrecognised trolleys trigger an aggressive vibration, an error sound and a blocking notification the porter must acknowledge before continuing.

Unhappy path

When signal drops, scanned trolleys are stored in an offline list. The app continues as normal – same success sounds, same behaviour – so the porter’s workflow isn’t interrupted. When signal returns, the database checks the offline list and flags any issues.

Ideation:

Flow chart

I produced a full flow chart giving a high-level view of the entire app – helping refine navigation logic and expected behaviour across all screens before wireframing began.

Designs:

Login and password expiry

Porters log in with their credentials on opening the app. A 10-minute inactivity timeout logs users out automatically – with a Remember Me option for longer shifts. Password expiry prompts users to update their password periodically for security.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Designs:

Collect

On arriving at a location, the porter scans the location barcode first, then scans each trolley. A success ping confirms each scan. An unrecognised trolley triggers vibration, an error sound and a blocking screen the porter must confirm before continuing.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)
Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Designs:

Hospital contacts

The contacts page populates automatically based on the porter’s shift – showing the relevant staff and delivery points for that day. If something goes wrong en route, porters can call the on-site manager or use the built-in maps to navigate around the problem.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)
Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Designs:

Favourite tasks

Porters can customise their Tasks screen by toggling jobs on and off depending on what they’re doing that shift. Phase 1 launched with Collect and Deliver, with further task types planned for later phases.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Designs:

Locations

The Locations screen showed a porter’s regular delivery points for the shift, with fast track requests pushing directly to the top as urgent notifications.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Settings:

Change language

The app was built with multilingual capability from the start – designed to support STERIS operations across multiple countries, with language selection accessible directly from Settings.

Settings:

Change user

Shared devices meant multiple porters needed to switch accounts quickly without losing their individual task preferences. The Change User feature handled this in seconds.

Settings:

Create new password

A straightforward password change flow – current password, new password, confirm, save.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Testing:

User testing

I ran user testing sessions with the porters directly – putting the prototype onto an actual Bluebird device so it felt as close to the real thing as possible. I wrote a scripted scenario asking users to log in, select the Collect task, scan a location and scan a couple of trolleys.

Initially the porters were a little cautious, but they picked it up quickly. The feedback was consistent – they loved how simple it was, but almost all of them instinctively felt like they needed to go back to the van to fill in their delivery logs afterwards. When they realised the app had already done it for them, they were genuinely delighted.

Outcomes:

The results

%

Delivery improvement

%

Productivity increase

%

Defect rate before the app

With roughly 382 trolleys being processed each week and around 80 of them resulting in defects, the target was clear – reduce errors, improve accountability and save time. The app delivered on all three.

Hospitals knew when their delivery was expected. Porters were notified of problems in real time rather than discovering them at the next facility. And nobody had to fill in a paper log ever again.

Collect and deliver

STERIS deliver specialist outsourced services to healthcare providers, including the collection and delivery of trolleys between hospital facilities and central cleaning warehouses.

When I joined the project, the entire process was being managed with pen and paper – and it was generating roughly 80 defects a week. Trolleys ending up at the wrong hospitals, delivery logs filled in incorrectly, porters trying to remember what they’d collected across multiple trips to a sixth floor ward and back.

I designed a native Android app for the Bluebird device that digitised the whole process – and the results spoke for themselves. 100% delivery improvement. 44% productivity increase.

My role

I was the UX/UI designer on the project end to end – shadowing drivers in the field, mapping user journeys, creating flows for both happy and unhappy paths, wireframing in Balsamiq, designing the full Android UI and conducting user testing sessions with the porters themselves.

The app was built for the Bluebird – a rugged Android handheld device with a built-in barcode scanner – and needed to work reliably in environments where hospital signal could be terrible.

User research Shadowing High level user journey mapping User flows Wireframing (Balsamiq) Android native UI design Prototyping User testing Offline-first design Geolocation Push notification design

Key challenges:

Trolleys ending up at the wrong hospital

Challenge

Trolleys have poor wheels and a habit of drifting between groups.

A well-meaning member of staff puts a stray trolley back in what they think is the right group – but it isn’t.

The porter collects it, delivers it to the wrong hospital, and another defect gets logged.

Solution

The app notified porters if they’d scanned fewer trolleys than expected for a collection, flagging the discrepancy before they left rather than after they’d delivered to the wrong place.

Not much I could do about the wheels.

Key challenges:

Delivery logs filled in from memory

Challenge

A porter arrives at a hospital with 10+ trolleys. They make 5+ trips to a sixth floor ward and back, dropping off clean trolleys and collecting dirty ones.

By the end of the shift they’re trying to remember exactly what they collected and where – and filling in paper logs from memory.

Unsurprisingly, things went wrong.

Solution

By scanning their location on arrival and scanning each trolley as they collected or delivered it, the app logged everything automatically in real time. No memory required.

After user testing, the porters’ biggest reaction was realising they didn’t need to go back to the van to fill in delivery logs – the app had already done it.

Key challenges:

Designing for poor signal

Challenge

Some hospitals have terrible phone signal, and the Bluebird is a mobile device.

If the app stopped working every time signal dropped, it would be worse than the pen and paper system it was replacing.

Solution

I designed a full offline handling flow. When the device lost signal, scanned trolleys were stored in an offline list and the app continued functioning normally – making the usual success sound so porters weren’t confused.

When signal returned, the database checked the offline list for errors and duplications and notified the user if any action was needed. Seamless.

Key challenges:

Fast track deliveries

Challenge

Occasionally a porter would get an urgent call mid-shift to collect a fast-tracked trolley for an emergency procedure – dropping everything and going immediately.

This was another point where trolleys could easily get mixed up.

Solution

Fast track requests pushed directly to the device as notifications, taking the porter straight to the relevant location and logging the collection separately so it didn’t get confused with their regular run.

Key challenges:

Multiple users, one device

Challenge

The Bluebird devices were shared across multiple porters.

Each user had their own preferred task setup and needed to be able to switch accounts quickly without losing their personalised configuration.

Solution

I added a Change User feature in Settings that let porters switch accounts in seconds, with each user’s task preferences saved to their profile so nothing needed to be reconfigured.

Research:

Shadowing

Before touching a wireframe I spent a day shadowing a porter on their actual shift – watching how the current pen and paper process worked in practice, where it broke down and what the real day-to-day frustrations were. Seeing the process firsthand was invaluable.

The high volume of trips, the difficulty of remembering collections across a full shift and the chaos of a fast track call all became immediately obvious in a way that no brief could have conveyed.

Research:

High level user journey

I mapped out a high level user journey covering the full path a porter takes during a typical shift – excluding fast track journeys, which were mapped separately. This gave the whole team a shared understanding of the process before design began.

Ideation:

User flows

I created two user flows – a happy path covering the standard collect and deliver process, and an unhappy path covering offline functionality and error states.

The offline path was just as important as the happy path given the signal conditions in older hospital buildings.

Happy path

After logging in, the porter lands on their personalised Tasks screen. They scan their location, then scan each trolley. Recognised trolleys are logged automatically with a success ping. Unrecognised trolleys trigger an aggressive vibration, an error sound and a blocking notification the porter must acknowledge before continuing.

Unhappy path

When signal drops, scanned trolleys are stored in an offline list. The app continues as normal – same success sounds, same behaviour – so the porter’s workflow isn’t interrupted. When signal returns, the database checks the offline list and flags any issues.

Ideation:

Flow chart

I produced a full flow chart giving a high-level view of the entire app – helping refine navigation logic and expected behaviour across all screens before wireframing began.

Designs:

Login and password expiry

Porters log in with their credentials on opening the app. A 10-minute inactivity timeout logs users out automatically – with a Remember Me option for longer shifts. Password expiry prompts users to update their password periodically for security.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Designs:

Collect

On arriving at a location, the porter scans the location barcode first, then scans each trolley. A success ping confirms each scan. An unrecognised trolley triggers vibration, an error sound and a blocking screen the porter must confirm before continuing.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)
Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Designs:

Hospital contacts

The contacts page populates automatically based on the porter’s shift – showing the relevant staff and delivery points for that day. If something goes wrong en route, porters can call the on-site manager or use the built-in maps to navigate around the problem.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)
Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Designs:

Favourite tasks

Porters can customise their Tasks screen by toggling jobs on and off depending on what they’re doing that shift. Phase 1 launched with Collect and Deliver, with further task types planned for later phases.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Designs:

Locations

The Locations screen showed a porter’s regular delivery points for the shift, with fast track requests pushing directly to the top as urgent notifications.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Settings:

Change language

The app was built with multilingual capability from the start – designed to support STERIS operations across multiple countries, with language selection accessible directly from Settings.

Settings:

Change user

Shared devices meant multiple porters needed to switch accounts quickly without losing their individual task preferences. The Change User feature handled this in seconds.

Settings:

Create new password

A straightforward password change flow – current password, new password, confirm, save.

Login design flow (1 of 3)
Login design flow - enter user details (2 of 3)
Login design flow - enter details (3 of 3)

Testing:

User testing

I ran user testing sessions with the porters directly – putting the prototype onto an actual Bluebird device so it felt as close to the real thing as possible. I wrote a scripted scenario asking users to log in, select the Collect task, scan a location and scan a couple of trolleys.

Initially the porters were a little cautious, but they picked it up quickly. The feedback was consistent – they loved how simple it was, but almost all of them instinctively felt like they needed to go back to the van to fill in their delivery logs afterwards. When they realised the app had already done it for them, they were genuinely delighted.

Outcomes:

The results

With roughly 382 trolleys being processed each week and around 80 of them resulting in defects, the target was clear – reduce errors, improve accountability and save time. The app delivered on all three.

Hospitals knew when their delivery was expected. Porters were notified of problems in real time rather than discovering them at the next facility. And nobody had to fill in a paper log ever again.

%

Delivery improvement

%

Productivity increase

%

Defect rate before the app