About
We migrated a mature electronics lifecycle analytics product from .NET Framework 4.6.1 to .NET 6 step by step, keeping its complex device-testing algorithms behaving exactly as before. Automated CI tests protected quality throughout, while new functionality kept shipping for existing customers.
Challenge, approach, and impact
1. Outdated legacy framework
The product had been built over years on .NET Framework 4.6.1 with WinForms components, which limited further development, performance and integration with modern infrastructure.
2. Complex business logic that could not break
The core device-efficiency testing algorithms had to keep behaving exactly as before, because existing customers relied on their results.
3. Modernising a live product
The migration had to happen while the product stayed in use and new functionality kept shipping.
4. Regression risk
Without automated protection, every migrated component risked silently changing the product's behaviour.
How we built
Testimonials
.NET Developer @ undefined
“The hardest part of the migration was making sure the device-testing algorithms behaved exactly as before, because customers relied on their results every day. We moved the code to .NET 6 step by step and covered it with automated tests in CI, so every change was checked before it reached production. It's the kind of work where patience and discipline matter more than speed, and I'm proud that the product kept running and growing while we rebuilt its foundation.“
Team structure
Client team
Peter H
Product Owner
Marcus H
CTO / Engineering Manager
The client stakeholders were working closely with the team at OTAKOYI
Agency team
Tech Lead / Senior .NET Developer
Governance
.NET Developer
Production
Full-stack
Production
QA
Production
