Architecting for Speed
Delivering faster and responding to business needs are a multi-faceted problem requiring wholistic changes across development practices and organizational models. The value stream must be considered across products in order to expose bottlenecks and increase flow. These are common implementations patterns that increase speed.
Team decoupling¶
Each team should be able to make their own choices in regard to the design approach of their software, their timelines for delivery, and feature priorities.
Deployment decoupling with microservices¶
Services should be deployed in their own process space and infrastructure to limit blast radius on failure while also improving responsiveness to changes in load.
Feature toggling and dark launches¶
Using advanced deployment techniques, teams can deploy changes to production to a defined, limited set of users before a full release. This promotes decoupling deployment from release, while receiving feedback from users and the system.
Innersourcing¶
Teams can leverage the organization's Git repositories to kick off new projects or contribute back to add new features. Using forking and pull request features, teams can modify existing code developed elsewhere at the organization, which helps teams reuse application code, reducing cost substantially.