Intersection uses digital technology to transform the physical world and help people get the most out of the cities around them. Its best-known products are its award-winning public Wi-Fi network Link and its transit information boards.
Rethinking processes and enhancing automation
Intersection wanted to ensure its products were embracing the latest processes – in terms of automated testing and releasing, and true Continuous Integration/Delivery – to prevent any potential uptime problems in key components. Even one ad screen going down is too many, and has a negative effect on current and potential advertising customers, so it was something Intersection was keen to prevent. The uptime of its tablet app also became a big priority due to the impact it has on customer service.
Without introducing these enhancements, it would have been hard to prevent bugs from leaking into production and implement better practices for production support of the system.
As a result, Equal Experts was brought in to help the internal Intersection team. Their goal was to introduce automation across the board – from testing, the release process and test coverage, to failover measures, resiliency measures, logging and metrics.
Expanding into product
After the stability project was completed, we expanded across Link engineering and became heavily involved with the team delivering product features for both the Link system and the software used to manage it.
We became involved in three streams:
Device: We worked on the customised Android, Ubuntu and Linaro platforms that run the physical Link structure. The workstreams included adding health metrics throughout the system, adding diagnostic tools for troubleshooting of individual failures and trends and improving resilience by introducing failover and automated healing features.
Portal: We helped build the portal that controls the physical Link device and also acts as an aggregator of data about all the components. This was built from scratch and used React with some Scala.
Mobile: We helped an internal team build native iOS and Android apps that provide an encrypted connection for users and network diagnostics for the internal team to help improve the services.
How did we help?
- We built a team: As a joint team we worked with internal peers and stakeholders to define areas of ownership within the organisation, streamlining skills and deliverables. Even though this was a distributed team we spent long periods working in the office and pairing with internal
- We upskilled quickly: As we were dealing with very specialised technologies (an Android framework) we needed to get up to speed with Android OS architecture and best practice. The fact we were able to contribute quickly is testament to our team’s ability to hit the ground
- We automated testing and deployments: We increased the amount of automated testing and made a concerted effort to improve unit test coverage across the Android tablet and supporting backend systems. Push button deploys were implemented for all of the Android images and application
- We helped promote and train the team on agile best practices: The team focused on Agile best practice to support Intersection’s further internal development: things like providing clean code, increasing test coverage, test-driven development, continuous integration & delivery. We also adopted a kanban style of development to better align with the frequent deployments allowing us quickly improve the stability of the Link structures and incorporate feedback into the process and platform.
- Significant improvements to uptime and stability metrics
- New ad players rolled out to the entire fleet
- Push button deploys have removed manual deployments
- New “pull-style” agile methodology implemented to improve ownership of work through to production, and increase QA knowledge earlier in the life
- New iOS and Android apps released
- Holistic management tools for Link and transit assets built
The project was a big success for both Equal Experts and for Intersection, and we were able to help Intersection improve its platform stability through automation, measurement of the system and introduction of resiliency patterns. With this engagement, we demonstrated our ability to quickly provide value on challenging tech stacks and domains, both in performance/resiliency and feature work.