Copia Automation brings modern developer tools to the industrial space. Our first product, Source Control, offered the industry’s first Git-based change management solution for programmable logic controllers (PLCs). It allowed engineers and technicians to easily view and collaborate on their code in a web browser.
That said, users of Source Control still needed a way to see and manage the industrial code that was deployed to the plant floor. My role in this project was to facilitate the end-to-end product design for our solution, DeviceLink. By collaborating with internal stakeholders and facilitating feedback from external beta testers, I led the design of an automated backup solution for PLCs, robots, and other devices.
End-to-end product design User research UI work
5 × engineers 1 × product manager
Understanding User Needs
Most manufacturers and systems integrators (SIs) lose track of changes made to control programs once a machine is deployed to the factory floor. Engineers are preoccupied with machine maintenance and just don’t have time to minimize code vulnerabilities.
DeviceLink needed to solve this problem by providing a solution that could automatically back up control programs to a centralized location while also providing up-to-date visibility, change traceability, and code security. And most importantly, the product had to be simple to configure and use so that engineers could focus less on learning new software and more on understanding what code changed and why.
Establishing a Product Architecture
After internal discussions and external reviews with active Source Control users, we developed a setup experience that could work for DeviceLink. Customers would need to first create a site – a factory or larger area within a plant floor – and then configure the following assets under that site:
- Project: A pointer to a specific automation project
- Device: A hardware device that a project is backed up from (PLC, robot controller, etc)
- Agent: A lightweight bit of software that performs backup requests
- Job: A scheduled operation that performs a backup and comparison of the project to what's on the Copia server
With this scheme, organizations could have multiple sites without needing to pay for several instances of DeviceLink. This was an important product requirement for some of our larger enterprise customers who had several dozens of sites to manage.
Creating a Design System
We had to build DeviceLink efficiently – and fast. To ensure successful development, I established a scalable design system and workflow between the Design and Engineering teams, which involved creating mockups in Figma and sharing them with engineers through Zeplin. This method allowed for asynchronous review and feedback, keeping us agile and minimizing design and engineering cycles.
Developing an Intuitive Interface
To provide a memorable first impression for DeviceLink users, we made sure that launching into the product was seamless. We decided to integrate DeviceLink into the Copia dashboard and intertwine it with the pre-existing Source Control experience. This way, users could manage their site assets and view the status of their job run history before entering into DeviceLink.
Clicking on a site would navigate a user into the DeviceLink product, where they could dive into their automation activity in more detail.
Controls engineers are pressed for time and they just want to see their information clearly. We visualized all projects, devices, and agents for a given site as cards, with most fields based on MUI components. This enabled developers to implement the designs quickly and users to sift through and edit metadata efficiently.
In tandem with the agent cards, I designed a simple electron app that would run in the system tray of the local machine on the manufacturing network. This small app is crucial for managing agent setup and serves as a bridge between the local machine and the Copia server during project backups.
Finally, jobs are the core feature of DeviceLink, as they enable advanced scheduling capabilities that are vital to the product's functionality. Scheduled jobs can be set to run at one of three intervals:
- Daily: Job runs every day at a given time
- Specific day(s) each week: Job runs on requested days at a given time
- Custom cron schedule: Job runs on a complex cadence informed by cron syntax
Elevating the DeviceLink Experience
As the design lead for this ongoing project, I continue to gather and analyze user requests, design mockups, incorporate developer feedback, and push the product experience towards higher quality standards. DeviceLink has received favorable reviews from a wide range of customers and is used in various automation sectors.
“Regardless of how much equipment we're managing and how many sites that equipment is spread across, DeviceLink shows us all the live control code in one place. We always have up-to-date restore points in case of failures and are proactively alerted to unauthorized changes.”
We are excited to continue growing our customer base and are actively conducting usability studies to further improve DeviceLink in the first quarter of 2023.