-
When doing a migration, the only way people adopt the new service/component is by putting that component in production sooner than later.
-
Even though you're creating a new service, the refactoring patterns still apply. If you tread that migration as Refactoring Legacy Systems. A new set of tools appears that will help you on the way and have a better chance of success
-
When doing that kind of migration, don't try to: - To have feature parity - Big releases - Maintain both services since the old is in production and needs maintenance and the newer is unable to keep the speed
-
Instead: - Replace one part of the system, and put that directly to production - Forward all the unimplemented stuff to the old component - When a bug appears in the old component, just implement the new fix on the new component. - Monitor the differences between both services
-
To reduce risk: - Feature Flags. Moving from the new component to the old, and the other way around should be 1 click away - Continuous Delivery. Keep showing progress. - Fast feedback loops