Accelerating change at a volume business
By migrating aging technologies to a more modern, efficient stack, we enabled GotPhoto to easily innovate and meet growing customer demands.
Challenge
GotPhoto, an all-In-one workflow and sales solution for volume photographers, giving photographers the ability to manage their workflow with their partners (labs) and clients, faced a significant technological hurdle. Their platform, which had evolved organically over 12 years, was built on a legacy PHP-based architecture. The existing solution was becoming increasingly difficult to maintain and scale, hindering the company's ability to innovate and meet growing customer demands.
The challenge was threefold:
- Migrate the frontend from legacy PHP to a more modern, efficient tech stack
- Simultaneously upgrade the backend from CakePHP to Symfony, ensuring seamless integration and improved performance
- Re-design the backend layer considering a microservices architecture
This migration needed to be executed without disrupting ongoing operations, maintaining the platform's complex functionality, and setting GotPhoto up for future growth and innovation.
Solutions
Beyond tackled this complex challenge with a comprehensive, phased approach:
Establishment Phase
We began with a thorough two-month establishment phase. This crucial period involved:
- Rapid onboarding of key technical consultants and delivery experts.
- Definition and agreement of ways of working and technical standards to be applied.
- Implementing and managing AGILE ceremonies to track project evolution
- Comprehensive planning and solution architecture design.
- Stakeholder guild establishment to ensure clear communication channels.
- Detailed requirements gathering and technical audit to fully understand the existing system.
- Gap analysis to identify potential challenges and opportunities.
- Component library design to ensure consistency in the new frontend.
- Architecture planning and design for both frontend and backend migrations.
- Execution of several proofs-of-concept to validate assumptions and selected technical stack
- Development of a strategic migration roadmap.
- Comprehensive risk assessment to anticipate and mitigate potential issues.
This planning phase laid the groundwork for a successful execution, aligning all stakeholders and setting clear expectations.
Execution Phase
The execution phase spanned 10 months, during which we worked closely with GotPhoto's CTO, product and engineering team. Our approach included:
- Assembling a robust, Europe-based engineering team at its peak consisting of 16 front-end engineers, 9 back-end engineers, a technical lead, automated QA engineers, a technical delivery manager, and a program delivery lead
- Implementing a truly agile methodology, working from a collaboratively defined and continuously evolving backlog
- Providing technical leadership and oversight for both internal teams and external contractors
- Executing the frontend migration to React.js and the collaborating with the Gotphoto team in the backend migration to Symfony
- Defining and implementing risk mitigation approaches
- Maintaining agreed-upon technical standards and guidelines throughout the process
- Offering comprehensive QA leadership and test automation support
- Delivering daily and weekly project status updates to ensure operational and priority alignment
- Delivering bi-weekly board-level updates to ensure transparency and strategic alignment
- Periodic deployments to production to ensure a progressive completion of the roadmap
Support Phase
As the program neared completion, we transitioned into a support phase focused on:
- Providing flexible, on-call support with a team of front-end and back-end engineers as responsibilities were transferred
- Assisting with bug resolution and addressing production issues
- Developing comprehensive documentation to support the new system
- Conducting thorough knowledge transfer sessions and documentation
- Executing a detailed handover process to ensure GotPhoto’s team was fully equipped to maintain and further develop the modernized platform.
This phase was crucial in ensuring the long-term success of the migration, empowering GotPhoto's internal teams to take ownership of their new, modernized platform.
Impact
Our comprehensive approach yielded impressive results:
- 10 months of intensive tech migration and modernization work completed across both internal to GotPhoto and end-user facing apps
- 278 end-user facing pages successfully migrated to new stack and deployed to production
- 214 of which - enabled in production before handover completion
- 4,180 tickets closed as part of the migration
- 3,851 PRs merged for React.js config_app (and many more for Symfony and GraphQL)
- 450 backend controllers and console commands (including all respective components and dependencies) migrated to Symfony