Transforming the world of oil and gas for BP
BP is one of the world’s leading integrated oil and gas companies. They manage the purchase of oil and gas across three global regions: UK, Singapore and USA. As part of this, they determine provenance and quality, and organise transportation of oil and gas in large quantities worldwide. The logistical issues around transportation are complex and have the potential to drive oil prices either up or down.
BP’s primary offshore managed service vendors operated in a legacy/waterfall way and were unable to supply the skills required for digital change. Without modern development processes embedded into the organisation, their transformation was challenging.
The agile transformation project had the following goals:
- Increase stakeholder engagement: Motivate traders to become more involved with the applications being built.
- Improve release frequency and predictability: The fastest the organisation could release was quarterly but releases every six-months were more common.
- Reduce regression testing cycles: These were deemed too long (upwards of four-weeks) and were error prone.
- BP decided that they needed to select new suppliers with the specialist skills required to deliver their transformation project. Following an invitation to demo our capability within technical engineering and test automation, we were chosen to support the acceleration of change.
The core of the solution was to introduce a test first approach/ BDD process across the oil trading platform. Kanban was used to manage workflows, and test automation was introduced to drastically reduce the manual testing effort and improve the feedback loop.
As part of the project, ECS introduced the role of the Software Development Engineer in Test (SDET) within each development team. Each SDET acted as a ‘technical coach’ to bridge the gap between the Business and Engineering teams. We also worked with BP’s managed service development teams to adopt a more modern development approach and introduced the following engineering practices:
- Test first approach using BDD: We brought testing to the front of the development process and introduced automated testing, reducing time spent fixing errors.
- Introduction of feature branching: The development team historically used an old source control strategy and would push large change sets at infrequent and long intervals. This resulted in teams struggling to integrate code changes in a timely manner for upcoming releases. The introduction of a modern branching strategy, based on features being released, ensured developers checked in their code frequently (multiple times a day). This ensured that code merges became frictionless, helping the teams to deliver software as
- Local environment using service mocks and local builds: Testing of system components was always completed on large integration environments shared by multiple teams, and even programmes of work, which can be error prone. Systems that share test runs can be affected, especially if there are known dependencies between systems. The introduction of local builds and service mocks enabled teams to test locally without the need to deploy to an environment.
- Code reviews in the shape of pull requests: These code reviews increased transparency between development team members enabling teams to share ideas and suggest improvements. This increased collaboration and made geo-located teams more effective.
- Automation frameworks – client side and server-side: Automation is a key component in digital transformation. We developed frameworks to enable applications to be broken into smaller parts for separate testing. This increases speed of testing and gives developers earlier notice as to when and where things go wrong.
- Training and agile practices: ECS Digital trained the incumbent managed services provider in Continuous Testing and BDD, to ensure both were aligned and effective.
- Continuous integration culture: We introduced a continuous integration culture and facilitated automated environment deployments, in collaboration with the client’s internal automation engineering function.
ECS was instrumental in the successful delivery of the project, resulting in significant savings to the trader work bench.
Other benefits include:
- Reducing regression-testing time from four-weeks to one-hour: Through manual regression test overhead
- Reduced test automation run time from 3-days to 22-minutes: By re-engineering propriety automated test pack.
- Reduced Delivery Cycle from six-months to two-weeks: By achieving true CI/CD across Oil Trading platforms.
- Enabling teams to improve forecasts for releases: In order to allow program-level planning, we enabled teams to estimate stories using story points and relative sizing/ project iteration velocities.
- Significantly improving lead-time and release frequency: This included providing stakeholders and users with regular updates and application releases.