ETS Infrastructure Management / CanopyIQ

ETS Infrastructure Management / CanopyIQ

ETS Infrastructure Management / CanopyIQ

ETS Infrastructure Management / CanopyIQ

Optimising error handling in offline mode and beyond for field-based crews

Optimising error handling in offline mode and beyond for field-based crews

Optimising error handling in offline mode and beyond for field-based crews

Optimising error handling in offline mode and beyond for field-based crews

Often working in remote areas with little to no network coverage, crews involved in vegetation management work frequently run into technical difficulty when reporting on the work that they’ve done. How can we best support our field users when they encounter countless data sync issues in low coverage network areas?

Often working in remote areas with little to no network coverage, crews involved in vegetation management work frequently run into technical difficulty when reporting on the work that they’ve done. How can we best support our field users when they encounter countless data sync issues in low coverage network areas?

Often working in remote areas with little to no network coverage, crews involved in vegetation management work frequently run into technical difficulty when reporting on the work that they’ve done. How can we best support our field users when they encounter countless data sync issues in low coverage network areas?

Often working in remote areas with little to no network coverage, crews involved in vegetation management work frequently run into technical difficulty when reporting on the work that they’ve done. How can we best support our field users when they encounter countless data sync issues in low coverage network areas?

Client

ETS Infrastructure Management

Project Type

Product Design

My Role

Lead Designer

Timeline

Oct '22 - Nov '22

Tools

Figma
Lucidchart

Team

Carmel Halabe - Technical Lead
1 Business Product Manager from ETS

The Problem

The Problem

The Problem

The Problem

Countless of errors and no reception or direction to understand how to resolve them

Countless of errors and no reception or direction to understand how to resolve them

Countless of errors and no reception or direction to understand how to resolve them

Countless of errors and no reception or direction to understand how to resolve them

While at Conduct, I had the opportunity to step in as Lead Designer in building out CanopyIQ - a resource management platform for ETS to facilitate their vegetation management work.

When crews venture out to remote areas with limited network coverage, they often encounter technical errors when reporting on their work and lack the understanding of how to resolve them or what to do next.

While at Conduct, I had the opportunity to step in as Lead Designer in building out CanopyIQ - a resource management platform for ETS to facilitate their vegetation management work.

When crews venture out to remote areas with limited network coverage, they often encounter technical errors when reporting on their work and lack the understanding of how to resolve them or what to do next.

While at Conduct, I had the opportunity to step in as Lead Designer in building out CanopyIQ - a resource management platform for ETS to facilitate their vegetation management work.

When crews venture out to remote areas with limited network coverage, they often encounter technical errors when reporting on their work and lack the understanding of how to resolve them or what to do next.

While at Conduct, I had the opportunity to step in as Lead Designer in building out CanopyIQ - a resource management platform for ETS to facilitate their vegetation management work.

When crews venture out to remote areas with limited network coverage, they often encounter technical errors when reporting on their work and lack the understanding of how to resolve them or what to do next.

How can we better support our in field users when they encounter countless data sync errors in low coverage network areas?

"

"

"

"

Discovery and research

Discovery and research

Discovery and research

Discovery and research

It's not as simple as designing one generic error message

It's not as simple as designing one generic error message

It's not as simple as designing one generic error message

It's not as simple as designing one generic error message

Similar to how a lot of other offline mode systems work, Canopy has the temporary ability to locally store data until crews are back in areas of good network coverage. As users work in offline mode, the system queues their activities and syncs them in order when they're back online.

Unpacking this with our tech lead and development team, we found out:

Similar to how a lot of other offline mode systems work, Canopy has the temporary ability to locally store data until crews are back in areas of good network coverage. As users work in offline mode, the system queues their activities and syncs them in order when they're back online.

Unpacking this with our tech lead and development team, we found out:

Similar to how a lot of other offline mode systems work, Canopy has the temporary ability to locally store data until crews are back in areas of good network coverage. As users work in offline mode, the system queues their activities and syncs them in order when they're back online.

Unpacking this with our tech lead and development team, we found out:

Similar to how a lot of other offline mode systems work, Canopy has the temporary ability to locally store data until crews are back in areas of good network coverage. As users work in offline mode, the system queues their activities and syncs them in order when they're back online.

Unpacking this with our tech lead and development team, we found out:

There are 150+ reasons why an item may fail to sync from offline mode

There are 150+ reasons why an item may fail to sync from offline mode

There are 150+ reasons why an item may fail to sync from offline mode

There are 150+ reasons why an item may fail to sync from offline mode

Each reason having their own resolution pathways, with varying degrees of user involvement and input.

Each reason having their own resolution pathways, with varying degrees of user involvement and input.

Each reason having their own resolution pathways, with varying degrees of user involvement and input.

Each reason having their own resolution pathways, with varying degrees of user involvement and input.

Items don’t always fail to sync just because of bad network connection

Items don’t always fail to sync just because of bad network connection

Items don’t always fail to sync just because of bad network connection

Items don’t always fail to sync just because of bad network connection

Unlike what most users would expect, failed items don't always resolve when they're back in good conditions.

Unlike what most users would expect, failed items don't always resolve when they're back in good conditions.

Unlike what most users would expect, failed items don't always resolve when they're back in good conditions.

Unlike what most users would expect, failed items don't always resolve when they're back in good conditions.

Our spreadsheet of errors we needed to work through

Our spreadsheet of errors we needed to work through

Current state error handling issues

Current state error handling issues

Current state error handling issues

Current state error handling issues

No messaging for what went wrong when there could be 150+ reasons why

No messaging for what went wrong when there could be 150+ reasons why

No messaging for what went wrong when there could be 150+ reasons why

No messaging for what went wrong when there could be 150+ reasons why

Users only see an indication that items are blocked, but are left in the dark in terms of knowing what went wrong and why. This is especially problematic when there’s so many reasons why an item can be blocked in queue.

Users only see an indication that items are blocked, but are left in the dark in terms of knowing what went wrong and why. This is especially problematic when there’s so many reasons why an item can be blocked in queue.

Users only see an indication that items are blocked, but are left in the dark in terms of knowing what went wrong and why. This is especially problematic when there’s so many reasons why an item can be blocked in queue.

Users only see an indication that items are blocked, but are left in the dark in terms of knowing what went wrong and why. This is especially problematic when there’s so many reasons why an item can be blocked in queue.

Lack of helpful references for users to find the source of the problem

Lack of helpful references for users to find the source of the problem

Lack of helpful references for users to find the source of the problem

Lack of helpful references for users to find the source of the problem

Operation terms e.g “Create Task Scope” and IDs are not enough to point to what item is problematic, especially when users go through a lot in the day and don't have the mental energy to backtrack their steps.

Operation terms e.g “Create Task Scope” and IDs are not enough to point to what item is problematic, especially when users go through a lot in the day and don't have the mental energy to backtrack their steps.

Operation terms e.g “Create Task Scope” and IDs are not enough to point to what item is problematic, especially when users go through a lot in the day and don't have the mental energy to backtrack their steps.

Operation terms e.g “Create Task Scope” and IDs are not enough to point to what item is problematic, especially when users go through a lot in the day and don't have the mental energy to backtrack their steps.

No guidance for how users can resolve and move on from these errors

No guidance for how users can resolve and move on from these errors

No guidance for how users can resolve and move on from these errors

No guidance for how users can resolve and move on from these errors

Users are not explicitly told on what steps to take to get rid of the error, often becoming frustrated and blocked in their work as it disrupts their workflow.

Users are not explicitly told on what steps to take to get rid of the error, often becoming frustrated and blocked in their work as it disrupts their workflow.

Users are not explicitly told on what steps to take to get rid of the error, often becoming frustrated and blocked in their work as it disrupts their workflow.

Users are not explicitly told on what steps to take to get rid of the error, often becoming frustrated and blocked in their work as it disrupts their workflow.

Unhelpful technical jargon that doesn’t mean much to the user

Unhelpful technical jargon that doesn’t mean much to the user

Unhelpful technical jargon that doesn’t mean much to the user

Unhelpful technical jargon that doesn’t mean much to the user

The little messaging that is present is riddled with “404”s, “insufficient permission”s, ID numbers, and language that only the IT team can unpack and understand.

The little messaging that is present is riddled with “404”s, “insufficient permission”s, ID numbers, and language that only the IT team can unpack and understand.

The little messaging that is present is riddled with “404”s, “insufficient permission”s, ID numbers, and language that only the IT team can unpack and understand.

The little messaging that is present is riddled with “404”s, “insufficient permission”s, ID numbers, and language that only the IT team can unpack and understand.

Keeping in mind that this was a time-sensitive piece of work due to the disruption it was causing to the users, three questions were top of mind:

Keeping in mind that this was a time-sensitive piece of work due to the disruption it was causing to the users, three questions were top of mind:

Keeping in mind that this was a time-sensitive piece of work due to the disruption it was causing to the users, three questions were top of mind:

Keeping in mind that this was a time-sensitive piece of work due to the disruption it was causing to the users, three questions were top of mind:

What is the most efficient way of designing support for 150+ different reasons for error?

What is the most efficient way of designing support for 150+ different reasons for error?

What is the most efficient way of designing support for 150+ different reasons for error?

What is the most efficient way of designing support for 150+ different reasons for error?

How do we design for an ever growing
list of errors and issues?

How do we design for an ever growing
list of errors and issues?

How do we design for an ever growing
list of errors and issues?

How do we design for an ever growing
list of errors and issues?

How do we rework the UI with the least amount of development effort possible?

How do we rework the UI with the least amount of development effort possible?

How do we rework the UI with the least amount of development effort possible?

How do we rework the UI with the least amount of development effort possible?

Design

Categorising errors by complexity in resolution

Looking at the list of 150+ errors, we noticed that we could group them based on 4 levels of user involvement in solving them.

Design

Categorising errors by complexity in resolution

Looking at the list of 150+ errors, we noticed that we could group them based on 4 levels of user involvement in solving them.

Design

Categorising errors by complexity in resolution

Looking at the list of 150+ errors, we noticed that we could group them based on 4 levels of user involvement in solving them.

Design

Categorising errors by complexity in resolution

Looking at the list of 150+ errors, we noticed that we could group them based on 4 levels of user involvement in solving them.

Level 1
No involvement

Level 1
No involvement

Level 1
No involvement

Level 1
No involvement

Users don’t have to do anything, error will resolve over time

Users don’t have to do anything, error will resolve over time

Users don’t have to do anything, error will resolve over time

Users don’t have to do anything, error will resolve over time

Level 2
Little involvement

Level 2
Little involvement

Level 2
Little involvement

Level 2
Little involvement

Users can fix it by reloading the app (cache clearing)

Users can fix it by reloading the app (cache clearing)

Users can fix it by reloading the app (cache clearing)

Users can fix it by reloading the app (cache clearing)

Level 3
Medium involvement

Level 3
Medium involvement

Level 3
Medium involvement

Level 3
Medium involvement

Users can fix it by providing additional input / re-inputting details

Users can fix it by providing additional input / re-inputting details

Users can fix it by providing additional input / re-inputting details

Users can fix it by providing additional input / re-inputting details

Level 4
High involvement

Level 4
High involvement

Level 4
High involvement

Level 4
High involvement

Users need to seek other personnel / staff to intervene and solve the issue

Users need to seek other personnel / staff to intervene and solve the issue

Users need to seek other personnel / staff to intervene and solve the issue

Users need to seek other personnel / staff to intervene and solve the issue

For each category, I designed guidelines for best error handling practices to match their case. These guidelines included, but were not limited to:

  • How the UI should communicate and surface each level of error to the user

  • Recommended error messaging structures and examples

  • Any UI enhancements we can make for future error prevention

For each category, I designed guidelines for best error handling practices to match their case. These guidelines included, but were not limited to:

  • How the UI should communicate and surface each level of error to the user

  • Recommended error messaging structures and examples

  • Any UI enhancements we can make for future error prevention

For each category, I designed guidelines for best error handling practices to match their case. These guidelines included, but were not limited to:

  • How the UI should communicate and surface each level of error to the user

  • Recommended error messaging structures and examples

  • Any UI enhancements we can make for future error prevention

For each category, I designed guidelines for best error handling practices to match their case. These guidelines included, but were not limited to:

  • How the UI should communicate and surface each level of error to the user

  • Recommended error messaging structures and examples

  • Any UI enhancements we can make for future error prevention

Quick wins for the UI under time and budget constraints

Due to the time sensitive nature of the work, it was important that we avoided drastic changes to the UI while still addressing its fundamental issues.

With the error categorisation piece of work done, it became easier to see that the key info users needed and was missing were:

  • What went wrong

  • Useful refs to source the problem
    (Work Pack and Location)

  • What can the users do about it

Quick wins for the UI under time and budget constraints

Due to the time sensitive nature of the work, it was important that we avoided drastic changes to the UI while still addressing its fundamental issues.

With the error categorisation piece of work done, it became easier to see that the key info users needed and was missing were:

  • What went wrong

  • Useful refs to source the problem
    (Work Pack and Location)

  • What can the users do about it

Quick wins for the UI under time and budget constraints

Due to the time sensitive nature of the work, it was important that we avoided drastic changes to the UI while still addressing its fundamental issues.

With the error categorisation piece of work done, it became easier to see that the key info users needed and was missing were:

  • What went wrong

  • Useful refs to source the problem
    (Work Pack and Location)

  • What can the users do about it

Quick wins for the UI under time and budget constraints

Due to the time sensitive nature of the work, it was important that we avoided drastic changes to the UI while still addressing its fundamental issues.

With the error categorisation piece of work done, it became easier to see that the key info users needed and was missing were:

  • What went wrong

  • Useful refs to source the problem
    (Work Pack and Location)

  • What can the users do about it

Impact

Impact

Impact

Impact

Developed the groundwork to deliver support for an ever-growing list of errors

Developed the groundwork to deliver support for an ever-growing list of errors

Developed the groundwork to deliver support for an ever-growing list of errors

Developed the groundwork to deliver support for an ever-growing list of errors

With the established guidelines and categorisation system, the team has been able to handle error messages as the list of errors continue to grow.

With the established guidelines and categorisation system, the team has been able to handle error messages as the list of errors continue to grow.

With the established guidelines and categorisation system, the team has been able to handle error messages as the list of errors continue to grow.

With the established guidelines and categorisation system, the team has been able to handle error messages as the list of errors continue to grow.

Improved error handling experience beyond offline mode and across the board

Improved error handling experience beyond offline mode and across the board

Improved error handling experience beyond offline mode and across the board

Improved error handling experience beyond offline mode and across the board

Error categorisation has been applied across many other errors found in other parts of CanopyIQ with the guidelines helping our team design around them.

Error categorisation has been applied across many other errors found in other parts of CanopyIQ with the guidelines helping our team design around them.

Error categorisation has been applied across many other errors found in other parts of CanopyIQ with the guidelines helping our team design around them.

Error categorisation has been applied across many other errors found in other parts of CanopyIQ with the guidelines helping our team design around them.

"By designing a range of patterns to handle errors that fit the solution, developers can now choose between them without reinventing the wheel. This leads to consistency throughout the development process. Having clear and effective error handling also improves the communication between developers, testers, and product owner, which is a significant benefit when developing a product."

Carmel Halabe
Tech Lead

"By designing a range of patterns to handle errors that fit the solution, developers can now choose between them without reinventing the wheel. This leads to consistency throughout the development process. Having clear and effective error handling also improves the communication between developers, testers, and product owner, which is a significant benefit when developing a product."

Carmel Halabe
Tech Lead

"By designing a range of patterns to handle errors that fit the solution, developers can now choose between them without reinventing the wheel. This leads to consistency throughout the development process. Having clear and effective error handling also improves the communication between developers, testers, and product owner, which is a significant benefit when developing a product."

Carmel Halabe
Tech Lead

"By designing a range of patterns to handle errors that fit the solution, developers can now choose between them without reinventing the wheel. This leads to consistency throughout the development process. Having clear and effective error handling also improves the communication between developers, testers, and product owner, which is a significant benefit when developing a product."

Carmel Halabe
Tech Lead

Reflections

Reflections

Reflections

Reflections

When it comes to collaboration, overcommunicating is often better than undercommunicating.

When I first started designing,I used to make a lot of assumptions. I used to think if something is clear to me, then it should be clear to the rest of the team, and that they would be able to read between the lines to fill any gaps.

This piece of work reminded me the importance of documenting sufficiently and clearly, not only to remove any future misunderstandings but also to reduce the time wasted on back and forths. Although it might take a little more time to lay down the groundwork, the payoff is often extremely worth it.

This doesn't only apply to the design work or handoff - it can also apply to things like meetings and workshops, where writing down the agenda on an invite can make all the difference to the efficiency of said event.

When it comes to collaboration, overcommunicating is often better than undercommunicating.

When I first started designing,I used to make a lot of assumptions. I used to think if something is clear to me, then it should be clear to the rest of the team, and that they would be able to read between the lines to fill any gaps.

This piece of work reminded me the importance of documenting sufficiently and clearly, not only to remove any future misunderstandings but also to reduce the time wasted on back and forths. Although it might take a little more time to lay down the groundwork, the payoff is often extremely worth it.

This doesn't only apply to the design work or handoff - it can also apply to things like meetings and workshops, where writing down the agenda on an invite can make all the difference to the efficiency of said event.

It’s always easier to be a cynic about change management, much harder to see it through.

I’ll admit that there were moments where I felt doubtful about whether this initiative was worth bringing up.

I learned a lot from being in a team that knew how to power through tricky stakeholder management moments, watching them manage their expectations, building out project proposals and plans.

As a tiny designer sitting in the room and witnessing this for the first time, I took a lot of mental notes in understanding what it means to make an initiative feel tangible and achievable.

(Spoiler alert: A lot of changing scopes, planning, and weekly standups turned DnMs.)

When it comes to collaboration, overcommunicating is often better than undercommunicating.

When I first started designing,I used to make a lot of assumptions. I used to think if something is clear to me, then it should be clear to the rest of the team, and that they would be able to read between the lines to fill any gaps.

This piece of work reminded me the importance of documenting sufficiently and clearly, not only to remove any future misunderstandings but also to reduce the time wasted on back and forths. Although it might take a little more time to lay down the groundwork, the payoff is often extremely worth it.

This doesn't only apply to the design work or handoff - it can also apply to things like meetings and workshops, where writing down the agenda on an invite can make all the difference to the efficiency of said event.

  • If you think we'll work well together or you're interested in staying in touch…🫣

let's stay connect

ed

My inbox is always open to any collaborations and opportunities for work, but also for general chats on all things design, film, and music.

In fact, if you’re looking for a safe space to trade guilty pleasure music and film recommendations, then look no further....

Reach out, say hi, and I’ll get back to you soon! Promise.

  • If you think we'll work well together or you're interested in staying in touch…🫣

let's stay connected

My inbox is always open to any collaborations and opportunities for work, but also for general chats on all things design, film, and music.

In fact, if you’re looking for a safe space to trade guilty pleasure music and film recommendations, then look no further....

Reach out, say hi, and I’ll get back to you soon! Promise.

  • If you think we'll work well together or you're interested in staying in touch…🫣

let's stay connect

ed

My inbox is always open to any collaborations and opportunities for work, but also for general chats on all things design, film, and music.

In fact, if you’re looking for a safe space to trade guilty pleasure music and film recommendations, then look no further....

Reach out, say hi, and I’ll get back to you soon! Promise.

  • If you think we'll work well together or you're interested in staying in touch…🫣

let's stay connect

ed

My inbox is always open to any collaborations and opportunities for work, but also for general chats on all things design, film, and music.

In fact, if you’re looking for a safe space to trade guilty pleasure music and film recommendations, then look no further....

Reach out, say hi, and I’ll get back to you soon! Promise.

designed and built by Chelsea Hendra on Framer 🦦

designed and built by Chelsea Hendra 🦦