Jenny Zhang

Application Tracking Manager: Re-imaging internal tracking for government apps

Our division at Environment and Climate Change Canada develop and maintain nearly one hundred software applications across several independent teams... and critical record-keeping for these apps were still being handled in a spreadsheet.

I was a part of the ambitious project to design and build a brand new internal webapp to efficiently track information across these software applications, reduces admin burden, and ultimately get buy-in from senior management.

Picture of the application

The Resuable Application Division at Environment and Climate Change Canada (ECCC) is responsible for the development and maintenance of several software services and web-apps, including those for federal regulatory reporting, informational sites, data visualization and more.

A team of seven student dev and design interns, including myself, along with one full-time developer was formed to pilot an initiative to improve the way that critical information about these applications were tracked.

the challenge

Get users engaged in effective internal documentation

Our goal was to enable employees in our division to keep internal documentation and information tracking up-to-date effortlessly.

Our target users were engineering team leads and managers. We wanted to save our users time on the admin task of updating these app profiles, so that they can focus on what matters most to them: providing essential business value, ensuring legal compliance and upholding high standards in the development of government software.

Further, we needed to get users excited and invested in our solution. This pilot project would introduce the capabilities of a modern web techstack using Blazor and WebAssembly. It would determine if it should be used in modernizing higher stake public-facing government apps. We were determined to impress and get buy-in from senior management.

My role

I led the design and frontend development of the application, collaborating with 3 other frontend developers.

I was responsible for the interaction and visual design, as well as frontend development. In addition, I worked with our product manager to conduct user research and aid help in requirements gathering.

I continued to gather user feedback and refine the design throughout the implementation of the minimum viable product. This pilot project lasted between July 2021-December 2021.

the approach

Understanding points of friction

We conducted user interviews with team leads and managers to uncover pain points with the current workflow, which would reveal opportunities to differentiate our solution.

An empty Excel spreadsheet
After years of using a spreadsheet, how could we re-invent the way employees think about tracking information?

Insights

  • Version chaos meant no authoritative source

    The spreadsheet originally used for tracking this data was circulated by email. There were no regular updates nor verification, hence no one knew if the information was up-to-date. "What is meant to be an authoritative source was simply not."

  • Time wasted on manual checks for accuracy

    "Managers often need to get critical information across many or all the applications, that's all supposed to be in the spreadsheet, but you have look up & then email all the team leads to double or triple check that all the data is actually accurate & reliable."

  • Spreadsheet was getting bloated

    Every time information is needed for even a subset of applications, a new column is added, despite it not applying to other applications. It became difficult to see what is relevant for an individuals team lead's project, and even harder for everyone to pick up updates from one version to the next.

the solution

Introducing ATM

We designed Application Tracking Manager (ATM) as an internal web-app with a delightful user experience focusing on:

  1. Relevancy: users can access individually relevant information quickly and with minimal distractions.
  2. Accuracy: keeping data up-to-date to build an authoritative source.
  3. Accountability: users can be held responsible for their changes.

Modularizing information enables relevancy

Each application record consist of a set of modules. Each module is a grouping of related information fields. Team leads may now select which modules are relevant for their application, and pin modules for viewers to highlight the most important at any point in time.

Application modules page with each module shown as a card, along with a pinned and all modules section
Modules overview for an application, with the most important and relevant modules pinned to the top of the page.

Fields within modules are editable. We define different data types (e.g. single-select, boolean, text, long text, dates) for fields to make data entry more intuitive and less prone to errors.

Further, we can track metadata for separate modules so that team members who are responsible for different aspects of an application can make changes without "stepping on each other's toes".

Module page, with the upper half displaying metadata while the second half displays set of fields and values, which are editable.
Single module page. Users can view metadata relevant to the module, and can view and edit the set of fields and values.

Keeping extensibility in mind, modules were designed so that they can be mandatory for all applications or optional. This enables managers to create new modules in the future and apply it to all applications quickly. At the same time, the flexibility of optional modules allows team leads to choose what is relevant to their application.

Module page, consisting of metadata (who and when last updated) and editable data fields
Team leads or project managers can add or remove optional modules in their application's settings page, to always ensure relevancy.

Reminders to encourage timely updates

Users can subscribe to modules, and edit the Next update required date. Reminder notifications are sent to all subscribers to the app. Now, users can set the update date, leave ATM and forget; they will get be notified by email automatically. This ensures regular up-keep of data without additional time wasted.

Image of email sent when next required date is past due or is upcoming.
Subscribers and designated team leads receive a reminder email for all modules with updates required one week prior and every week after past due.

This design focuses on regular checks and updates, shifting the behaviour from neglecting to update due to forgetting until someone is urgently seeking the information, to regular data maintenance, When next update date is past, the module's status is auto-set to “Needs attention” so that others know that the information may be inaccurate.

Module page with status needs attention and the next required date past due
The next update required, of which the date was set by the previous editor, is past due.

In-app notifications aggregate in the user's notifications center. Users are unlikely to be spending time daily or weekly in ATM (which is what we're aiming for), hence when they do return, they should be able to quickly access their important alerts.

View of the notification center, on the Alerts tab, displaying 3 alerts indicating past due updates.
Reminder alerts populate in the user's notification center for easy access to update modules that they may be responsible for.

Accountability made simple

Each module contains metadata on who last update the module and when. This ensures that the editor verifies that all information within that module is correct before saving, as they are marked as responsible.

Editors must also required to edit the date of the next update, ensuring there is always accountability in the future for verifying the data.

Module page highlighting the last updated and lasted updated by metadata fields.
The current editor is blocked from saving their changes until the "Next update required" value has been updated

Further, whenever any user edits information, subscribers of that module are informed. Updates are sent via a weekly email digest. Subscribers also receives in-app toast notifications, as well as in the notification (always accessible from the top bar). This keeps them informed on new information, but also keeps record of who is making changes to the data.

Left shows the update notification in the notification center. Right shows the update in the pop-up toast.
User receives an in-app toast notification when subscribed applications are updated (right), and can view all notifications in their notification center (left).

An initial ambitious design, involving comprehensive change tracking, was revised due to time restrictions. Working closely with developers to account for implementation effort, we modify the design to track when a change occurred. The revision provides just enough information such that it is still useful in maintaining a history and trail of responsibility.

Left shows the original proposal for update notification. Right shows the final design
The original proposal featured exact changed values, adding technical complexity. The final design, revised for time constraints, simplifies the data needed to be tracked while achieving its intended purpose.

the pilot launch

6 months later

I continued to be involved in refining the details of the design as we developed features, and gathered feedback from users. An MVP was ready in production in 6 months, and I led the demo to senior managers and engineering leads across the division in early December 2021

Outcomes

We received immense positive feedback. This would not only save developer time, but it would also extend to other divisions and user groups that use the data. Technical managers posed questions about developer tool features including data extraction and API features, demonstrating their enthusiasm for the potential of ATM.

We would continue to develop the application, introducing further features (case study coming soon) and resolving technical complications.

We launched ATM officially in June 2022, less than a year since the start of the intiative. I had built a launch plan for a smooth adoption of the product. Now, at the time of writing (1 year later) the app is actively tracking almost 100 software applications across the division, with over 100 users.

Further, the shift to using Blazor on several business critical applications has long begun. Our project showcased the capabilities of Blazor, generating interest to impact the development of government applications.