We broke down product features into smaller items that would be easier to launch rapidly and aid a rapid release cycle once launched. We focused on reducing dependencies between areas of the software and between business functions, especially around change management, implementing a continuous and fully-automated process of deployment. As a result, the team achieves an average of 12 such production deployments per day. Most features go live within 48 hours of a developer starting work; some in as little as two hours from start to finish.
In order to move fast, but deliver features that are robust and reliable, we deployed heavily automated testing, focusing human effort on problematic edge-cases. Security – fundamental to our system design – was treated as a first-class citizen of the development process, with automated security testing for every code change and regular penetration tests on the app, website, and APIs. Metrics, logs, and traces are centralised, always-on, and archived, enabling time-specific investigations as necessary.
The service is supported by an on-call support team. The call-out is automated, and the infrastructure is able to raise alarms and to attempt to heal itself within an initial window before requiring human intervention.
In six months and with a team of ten consultants, Infinity Works:
- designed a rapid software development cycle to suit the product and business;
- built and deployed an app with supporting website;
- created and operated a highly automated continuous deployment platform;
- followed up the launch with numerous updates and new features, supported by an on-call team;
- maintained a high level of security, reliability, and ensured compliance with banking regulations.