Illustration of lake trout, bass, catfish, and rainbow trout

No Colorado Fish Left Behind

How we built the COFish app to support Colorado’s fisheries and ecosystems
GWW Staff

GWW Opinion

GWW Staff

December 1, 2025

Managing Colorado fish isn’t just about efficiency, it’s about protecting ecosystems, supporting tourism, and keeping the outdoors thriving for millions of people every year. In this work, the stakes are surprisingly high. Fish die. Diseases spread. Hatcheries run short. And as the Colorado’s Aquatic Animal Health Lab team knows all too well, if a disease goes undetected, it can decimate a fishery.

Colorado Department of Natural Resources and Parks and Wildlife selected GovWebworks to build an application that could track and manage fish production, hatchery operations, stocking and transfer activities, salvage operations, and diagnostic work across the state. The new tool aims to help preserve ecological balance, support tourism and outdoor recreation, and gives staff the insights they need to keep fisheries healthy and resilient.

This is the story of how the team built the new COFish App—told through the voices of the team members who designed, engineered, tested, and shaped it into a tool that helps Colorado’s fisheries thrive.

Why it matters

Stocking the wrong number of fish—or stocking them in the wrong place—can have massive repercussions for the species, waters, and the state.

“Recreational angling contributes nearly 2 billion dollars in tourism revenue to the state’s economy,” says GovWebworks UX designer Brett Kana. “Colorado’s hatchery system spans 19 facilities throughout the state and is the backbone of the angling industry.”

Beyond the economic impact, the hatcheries and aquatic health laboratories also play a critical role in native species preservation and conservation. To manage this work effectively, biologists need to know ahead of time how many fish are needed and where, and they need tools that make data easier to consume so they can make better, faster decisions.

Colorado’s legacy system was showing its age, and operations between the hatcheries and aquatic animal health laboratories relied on manual, paper based processes. Colorado needed a modern, efficient tool that makes complex data easy to consume and turns insights into action. This project is about harnessing the power of technology to preserve ecosystems and Colorado fish.

Team profile

To address the complexity of the project, we assembled a large, distributed team—project manager, agile lead, product owner, design, QA, and development—all working together with the Colorado Department of Natural Resources team across two different domains: Fish Production and the Aquatic Animal Health Lab (AAHL).

Alison led as the project manager, Max served as product owner, another team member led agile practices, Diane headed QA, Tracy and Brett drove UX/design, and Mike and Evan managed development. Everyone brought their expertise to a system that needed precision, flexibility, and deep domain understanding.

Agile first mindset

From the start, agility wasn’t just a process, it was our guiding philosophy.

“It was important to split roles clearly—PM, agile lead, and product owner—so everyone had defined responsibilities,” notes Alison Schestopol, Director of Project Management and Quality Assurance.

We focused on living the agile mindset by embracing transparency, collaboration, and continuous improvement rather than just following a framework. To do this, we brought the client into the process early, shipped at the end of every sprint, and made continuous improvements through retrospectives. We then refined our team agreement at every retrospective to make improvements stick.

This way of working created the momentum we needed to tackle two very different workflows while staying aligned and delivering value predictably.

Designing across two worlds

We knew it would be a challenge to coordinate between two different domains: the Hatchery operations and the Aquatic Animal Health Lab (AAHL). The Hatchery operations domain was massive—and deeply complex. As Brett explains, “We were rebuilding an old desktop app while creating entirely new functionality to replace a paper-and-spreadsheet system.”

We mapped workflows for stocking, transfers, and salvages, and identified the most complex areas. Then we iterated through multiple layers of design—from low-fidelity mockups to functional prototypes to polished, high-fidelity screens.

“This layered approach allowed us to build, test, and refine efficiently despite the project’s complexity,” Brett says.

On the Aquatic Animal Health Lab side, the design challenges were completely different. Tracy describes the legacy system as: “Cumbersome and requiring duplicative data entry.”

She and Max spent months analyzing lab forms, studying processes, and collaborating with Dev and QA to translate complex diagnostic workflows into something intuitive and modern.

“We tackled usability pain points, modernized paper and Excel-based processes, and used the MUI design system with CPW’s color palette to ensure accessibility and consistency,” Tracy says.

The result is both cleaner and a step forward for disease tracking, case management, and data clarity.

QA across three apps

QA wasn’t just about testing, it was about systems thinking. As Diane recalls, “We were working across three interconnected applications, the FishProd app, the AAHL app, and a ‘common’ app that tied data between the two.”

Early on, Diane says the QA team felt like they were coming in “behind the 8-ball,” but joining design and refinement meetings helped them level-set and ask the right questions.

Because we used a single environment for QA and client review, “creative problem-solving was key,” Diane says. “We used feature flags and other tools to test feature development without exposing unfinished work. Database backfills allowed us to obtain real-world data from the Fish Prod side and to reset the environment to a particular baseline when needed.”

Development scaled to complexity

Discipline and tooling kept development on track. Mike explains: “Treating the test environment like a client-facing production environment helped us stay disciplined, while feature flags allowed us to experiment safely.”

Developers were split into micro-teams specializing in either AAHL or Fish Production. They used shared design modules and denormalized databases to keep reporting aligned across the system. Automation in AWS kept environments stable, and type-safe interfaces ensured the front-end and back-end stayed in sync.

On the AAHL side, the workflows had to reflect the real, sometimes chaotic nature of field and lab work. Evan explains, “The home screen centers around case records, which drive almost all workflows. Users enter water codes, collect data, and assign pathogen statuses.”

Because multiple users may be entering information out of order, the team built extensive auto-saving across hundreds of nested fields.

“Once results are entered and signed, they feed into Fish Production to enforce restrictions on fish movements based on disease status,” Evan explains. This link between health diagnostics and hatchery operations is one of the most important features in the entire system.

Data to decisions

More than just data entry, the COFish app is about insight. As Max describes, “We built pipelines to move data from the app’s database into AWS’s Quick Suite, then created dashboards users could explore themselves.”

Users can now track stocking events, visualize top species by weight or quantity, calculate hatchery costs, export reports, and support state-level decision-making.

“Our focus was making the data accessible and shareable while maintaining governance,” Max says.

These tools give CPW powerful new visibility into their operations. They can plan, adapt, and protect resources more effectively in order to meet the goal of knowing ahead of time how many fish are needed and where.

In summary

In the process of modernizing decades-old workflows and building real-time dashboards, the COFish app is a true example of collaboration, problem-solving, and agile principles in action.

As Alison sums up: “It was a true collaborative effort.”

The result is more than an app. It’s a system that helps restore balance, support outdoor recreation and tourism, protect ecosystems, and make life easier for the Colorado Department of Natural Resources team working every day to care for Colorado’s waters. This technology isn’t just helping CPW operate more efficiently—it’s helping Colorado fish thrive.

To hear more from the Colorado team, stay tuned for an interview with Colorado Parks and Wildlife, coming soon.

Learn more

Was this post helpful?