Our expertise is based on the way we develop software to bring ideas to market. We focus on practices that unlock a pipeline of ideas, in a way that allows those ideas to be delivered incrementally and to be validated by real users.
We couple rapid development practises with a mindset of doing just enough to bring an idea to market.
By avoiding over-investment it is easier to adopt a learn-fast model for delivering software.
Of the many things we have learned along the way, we know there is no magic bullet. Delivering the right software early and often requires a focus on people, processes, and technologies used.
We prefer smaller, self-organising teams for their effectiveness. Simply put, we believe our developers know best how to solve the problems they encounter on a daily basis. In a small team communication is straightforward and everyone has a voice – decisions get made quickly and things get done.
When working on new ideas we like to test them frequently – getting feedback from users, quickly. Successful ideas can then be further invested in, while duds can be discarded with minimal fuss.
It requires not only changes to the way we architect, test, and deploy software, but also the way work is initiated and funded. In the world of continuous delivery software systems emerge from the delivery of small feature-based components (or microservices). These components are woven together to create a flexible, seamless fabric that represents the current state of an enterprise’s interface with its many stakeholders.
A continuous delivery process supports the both the release of features frequently and the ability to run experiments – deploying variations of the same feature to garner user feedback by measuring user interaction.
A microservices architecture provides us a way to evolve an application, one feature at a time. It allows us to deliver and support features independently of each other, and, by extension, avoid the problems caused by a monolithic architecture.
Microservices are the ideal complement to continuous delivery – applications can be delivered incrementally, service by service.