Beyond was selected as the development partner to improve gategroup’s intelligent retail experience to increase ancillary revenues for airlines through developing technical solutions, software and tools that drive pre-flight, in-flight and post-flight sales of retail goods in the air travel sector.
After a successful rollout of a new version of an in-air point-of-sale system for EasyJet, gategroup wanted to scale the project to multiple airlines and ensure that the product was easily customisable and configured. Success indicators included enabling features per airline, route, or schedule while improving stability and reducing cost.
The project consisted of 3 main components:
· A mobile IOS POS (Point-Of-Sale) application used by airline crew during flights (with 35 000 active users per month)
· A middleware component for syncing data from the air to the ground
· A portable, inflight server for hosting a passenger retail portal that integrates with the crew POS
Beyond, as the development partner, set out to help restructure the project, improve the governance, and streamline the SDLC while measuring the success of the changes for Gate. Beyond followed a ground-up approach in redefining the base operations to meet the strategic objectives.
After a consultation period, Beyond subdivided the improvement project into five phases:
1. Redefining the engineering goals for the project
2. Creating an optimal team structure
3. Improving the SDLC (Standard Development Life Cycle)
4. Refining the technical governance
5. Producing measurable key metrics to monitor and report on
Breaking down the critical success objectives to reduce cost and increase airline rollout forced Beyond to investigate the engineering goals and how that will influence the operations and processes of gategroup. gategroup needed reliable, maintainable, and scalable systems first and foremost. In addition, we knew that the engineering goals would feed into the team structure, changing the SDLC and technical governance and giving us a clear rollout plan.
We worked with gategroup to create the engineering goals for the project and liaised with the client to develop measurable key results we wanted to track.
We organised the goals into five categories:
- Initial steps toward Continuous delivery
- Architecture principles
- Product and Process
- Lean management and monitoring
- Cultural goals
We followed an approach where we built a multi-resourced and self-organizing team of engineering, operational and support skills to ensure regular, balanced, and autonomous delivery. Emphasis was also placed on providing analysis, planning, and cross-company communication to ensure delivery was faster, more frequent and always met requirements.
We subdivide the teams into four fields:
The team consisted of internal squads with a replicated structure which allowed gategroup to spin up and reduce additional resources during shifting requirements.
Key activities were defining the correct ratios of team members and creating clear responsibilities and outcomes for each role.
Ensuring that the process was easily digestible, effortless to communicate, and widely shared was the primary success criteria.
With high-level engineering goals completed and a scalable team structure in place, we were able to create an easy-to-follow, practical development and release process ensuring analysis, technical design, and quality.
Working with the client on the tooling, naming convention, and how this will affect the technical governance Beyond proactively measured critical metrics during the lifecycle to flag any bottlenecks during the SDLC.
Embedding sound technical governance was an essential step to ensure consistency across all code repositories and to assist in automating key processes.
The areas of focus were:
· Branching Strategy
· Commit Validation
· Quality Gates, e.g. percentage of unit tests
· Code Style Guides
· Continuous Integration patterns
· Release process
· Automating quality metric tools
50% increase in functionality per release
The governance, autonomous teams, and process improvements Beyond introduced significantly increased functionality per release. gategroup implemented a fixed duration go-to-market (GTM) release strategy, and after an initial drop during process change, we could increase the functionality by 50%.
50% reduction in developers for the project
From the onset, we used pull requests (PRs - the way you keep track of source code changes) as a measurable unit of work. We also tracked the correlation of PRs and story points to verify functionality and velocity tracking. By Tracking PRs over time, we could
reduce the number of developers while keeping velocity stable. As a result, Beyond decreased the number of developers on the project by half while keeping the same velocity.
Code merges into release branches decreased from 100 to 3 days
The approvals of pull requests and the collaboration between the engineers improved by 33%. The time to merge code into release branches decreased dramatically. Optimising the code and the self-organising teams dramatically reduced the time to get code out of the door, ready for testing. This, coupled with the increase in code approvals by other developers and introducing of a pre-merge testing phase, not only reduced the time to market but also increased the quality of the release significantly.
Effective tracking and measurement of all merge requests, commit validation, the count of open merge requests, and engineer collaboration assist us in monitoring bottlenecks and unblocking the process.
Cycle time reduction of 60%
The cycle time from ticket creation to closure decreased by 60% resulting in the resolution time for the tickets improved from being open on average for 61 days to being open for 24 days. Cycle Time is the amount of time a team spends working on producing an item, up until the item is ready for deployment i.e. it is the time it takes to complete one task
Increase in unit test
The unit test average for the repositories increased from 36% to 70%. This was measured by implementing SonarQube and introducing quality gates into the system. As unit tests increased, we also saw a drop in manual testing tickets, resulting in stable end-to-end testing cycles.
The tangible and tracked results were a game changer during the change management process. Introducing measurable metrics, success criteria and goals kept the team focused and helped significantly with the change management process. Blockers could also be easily identified and addressed.
Over-communication is key. Decisions, processes, and goals were simplified, visualised, and repeatedly communicated to reduce miscommunication.
Having the correct team profile in place ensured that the teams could function as autonomous units, reducing the decision-making time and decreasing the escalation of challenges.
Positive unplanned consequences also arose with an increase in developers' retention, improved project culture, and team scalability for changes in requirements and scope.
The introduction of multiple airlines resulted in numerous configurable rollouts and increased release strategy complexity. Keeping the client, development team, and external parties in tow was difficult. The roadmap, branching strategy, commit messages, release management, documentation, pipelines, and deployments had to be aligned and communicated to all parties.
Increasing scope and functionality had a significant impact on the existing solution. Considerable time had to be allocated for refactoring, technical debt, and reworking functionality. The benefits were not always noticeable to the client, and demonstrating the advantages was challenging.
Restructuring the team and processes and working on a unified set of goals with the client was a highly fruitful endeavour. As a result, the rollout of releases increased dramatically, the structural changes improved quality, and the client had substantial cost benefits in stabilising the team.