- Client: A federal agricultural research agency
- Industry: Government and Agricultural Research
- Services: Legacy Application Modernization, Accessibility Engineering, DevOps and CI/CD Implementation
- Outcome: A completed modernization that delivered a more usable, WCAG 2.0 AA-aligned interface, an automated CI/CD pipeline, and stronger documentation and production support practices for a legacy precision agriculture desktop application.
Raw yield data collected from precision agriculture equipment commonly contains a meaningful share of erroneous readings, caused by things like combine delays, overlapping passes, and sensor inconsistencies. Agencies that maintain desktop tools for cleaning and editing that data have to keep those tools both accurate and usable, since analysts depend on them to produce reliable yield maps. When a tool has supported that work for years, modernizing it means improving usability and maintainability without disturbing the data-editing logic analysts already trust.
In this legacy desktop application modernization case study, Keyhole Software has been working with a federal agricultural research agency to modernize a C# and Windows Forms application used to edit and validate precision agriculture yield data. The engagement ran from September 2024 to August 2025 and focused on refining the application’s UI and UX, closing accessibility gaps against WCAG 2.0 AA standards, and introducing an automated CI/CD pipeline, all while preserving the existing codebase and the workflows the agency’s analysts already rely on.
Legacy Desktop Application Modernization at a Glance
- Modernized the UI and UX of a C# and Windows Forms application used to edit precision agriculture yield data.
- Implemented WCAG 2.0 AA accessibility support, including keyboard navigation, contrast adjustments, and assistive technology compatibility.
- Integrated MapWinGIS to support map-based geographic visualization of yield data.
- Built CI/CD pipelines in Jenkins and GitHub, adding automated builds, testing, and containerized deployment to AWS through Docker.
- Reused and extended the existing codebase to deliver new features with minimal disruption to active users.
- Established living documentation and a developer knowledge base to support knowledge transfer and production support.
The Challenge
The application is a C# and Windows Forms desktop tool that analysts use to edit and validate yield data tied to precision agriculture. It had been built and extended over time, and much of its UI and UX reflected earlier design conventions rather than current usability and accessibility expectations.
Because the application supports active data-editing workflows that analysts depend on, any modernization effort had to preserve the existing business logic and data handling behavior. At the same time, the interface needed to become more usable and more accessible, and the consultant needed a reliable way to build, test, and deploy changes without introducing regressions into a tool already in production use.
The mandate was to modernize the application’s UI and UX, bring it into alignment with WCAG 2.0 AA accessibility standards, and establish an automated CI/CD pipeline, all through a legacy desktop application modernization approach that reused the existing codebase rather than rebuilding it from scratch.
The Approach
Phase 1: UI and UX Refinement
Keyhole’s consultant worked through the application’s existing C# and Windows Forms front end, refining interactions and implementing more consistent error handling throughout. Because the application was already in active use, changes were made incrementally against the existing codebase rather than through a ground-up rewrite, which kept familiar workflows intact while improving usability.
Phase 2: Geographic Visualization with MapWinGIS
Precision agriculture yield data is inherently geographic, so the consultant integrated MapWinGIS into the application to support geographic visualization of that data. This gave analysts a clearer way to review and edit yield information in the context of the fields and locations it describes.
Phase 3: Agile Delivery Alongside QA and Agency Stakeholders
Development was carried out using agile practices, with regular collaboration between Keyhole’s consultant, QA, and agency stakeholders. This let the consultant validate UI and workflow changes against real usage expectations before rolling them into the application, reducing the risk of changes that did not match how analysts actually used the tool.
Phase 4: CI/CD Pipeline Implementation
The consultant built and maintained CI/CD pipelines using Jenkins and GitHub, adding automated builds and automated testing to the development workflow. Deployment was containerized with Docker and targeted to AWS, giving the consultant a consistent, repeatable way to ship changes to the application.
Phase 5: Accessibility Audits and Remediation
The consultant conducted accessibility audits against WCAG 2.0 AA standards and used the results to guide remediation work, including keyboard navigation support, contrast adjustments, and compatibility with assistive technologies. Treating accessibility as an audit-and-remediate process, rather than a single pass, helped ensure the changes addressed real usability gaps instead of surface-level compliance items.
Phase 6: Documentation, Knowledge Transfer, and Production Support
To support long-term maintainability, the consultant created living documentation and a developer-focused knowledge base covering the application and its modernization. The consultant also configured telemetry and proactive alerts, giving the agency and Keyhole earlier visibility into production issues rather than waiting for them to be reported.
Technologies Used
- C# and Windows Forms
- MapWinGIS
- Jenkins
- GitHub
- Docker
- Amazon Web Services (AWS)
- WCAG 2.0 AA accessibility standards and testing
- Agile delivery practices
Modernization Risks Identified During the Engagement
Because the application had been in continuous use for years, several risks emerged as the consultant worked through the modernization.
Accessibility audits against WCAG 2.0 AA standards surfaced gaps in keyboard navigation, color contrast, and assistive technology support. These gaps mattered because they limited who could reliably use the application, so the consultant prioritized remediation alongside the UI and UX work rather than treating accessibility as a separate initiative.
The engagement also surfaced a knowledge concentration risk common to long-running internal tools: institutional knowledge about the application’s behavior and history lived primarily with the people who had worked on it, rather than in documentation. The consultant addressed this by building living documentation and a developer-focused knowledge base alongside the modernization work.
Lessons from This Legacy Desktop Application Modernization Project
Modernization Does Not Always Require a Rewrite
The application’s existing codebase reflected years of validated business logic for editing yield data. Rather than rebuilding it, the consultant reused and extended that codebase, which let new features and UI improvements ship with minimal disruption to the analysts who already relied on it.
Accessibility Works Best as an Ongoing Audit-and-Remediate Process
Treating WCAG 2.0 AA compliance as a recurring audit rather than a single checklist made it possible to address real usability gaps, such as keyboard navigation and contrast, instead of surface-level fixes. This approach also made accessibility easier to maintain as the UI continued to evolve.
CI/CD Pipelines Reduce Risk in Long-Running Government Software
Adding automated builds, automated testing, and containerized deployment through Jenkins, GitHub, Docker, and AWS gave the consultant a repeatable way to ship changes to an application already in production use, reducing the risk that manual steps introduce inconsistency between releases.
Documentation Is Part of the Modernization Deliverable
Building living documentation and a developer-focused knowledge base alongside the application changes, rather than after the fact, helped reduce the knowledge concentration risk that comes with long-running internal tools and better positioned the application for ongoing production support.
Results
By the end of the engagement, the application had a more usable, WCAG 2.0 AA-aligned interface and an automated CI/CD pipeline delivering consistent, containerized deployments to AWS.
| Area | Before Modernization | After Modernization |
|---|---|---|
| UI and UX | Dated interactions and inconsistent error handling | Refined interactions with consistent error handling |
| Accessibility | Gaps in keyboard navigation, contrast, and assistive technology support | WCAG 2.0 AA-aligned keyboard navigation, contrast, and assistive technology support |
| Build and Deployment | No automated CI/CD pipeline | Automated builds, testing, and containerized deployment to AWS via Jenkins, GitHub, and Docker |
| Documentation | Knowledge concentrated with individual team members | Living documentation and a developer-focused knowledge base |
The modernization delivered measurable improvements to how usable and maintainable the application is. The refined UI and error handling made the application easier for analysts to work with day to day, and the MapWinGIS integration gave users a clearer geographic view of the yield data they were editing.
On the engineering side, the CI/CD pipeline made builds, tests, and deployments to AWS a repeatable process rather than a manual one, and the accessibility remediation closed gaps identified during WCAG 2.0 AA audits. Together with the new documentation and knowledge base, these changes were intended to make the application easier to support and extend going forward, including through the telemetry and proactive alerting configured during the engagement.
Key Takeaways from This Legacy Desktop Application Modernization Project
This modernization illustrates a pattern that applies well beyond agriculture technology: long-running internal applications often do not need a full rewrite to become more usable, more accessible, and easier to maintain.
Technology leaders considering a similar modernization can look to this project for a few practical lessons: preserve validated business logic instead of rebuilding it, treat accessibility as a continuous audit process rather than a one-time task, and pair UI and UX improvements with the CI/CD and documentation investments that make an application easier to support once the modernization work is handed off.
Considering a similar legacy desktop application modernization? Explore Keyhole’s legacy application modernization services, accessibility and UX engineering capabilities, and DevOps and CI/CD implementation services, or contact Keyhole to discuss how to assess an existing application, prioritize accessibility and usability improvements, and build a modernization plan that fits your team’s constraints.



