#Build & Integration
|Capability Level||Capability Name||Description||Observed Behaviour||Project Scope|
|0||Build & Integration: Ad hoc||Continuous build ad hoc and sporadically successful.||Only revenue generating applications are subject to automated build and test.
Automated builds fail frequently.
No clear ownership of build system capability, reliability and performance.
No clear ownership of 3rd-party components.
|Create a process for integrating new 3rd party components.
Give one group clear ownership and budget for the performance, capability and reliability of the build system.
|1||Build & Integration: Continuous Build||Continuous build is reliable for revenue generating applications.||Automated build and test activities are reliable in the build environment.
Deployment of applications to production environment is unreliable.
Software and test engineers concerned that system configuration is the root cause.
|Add environment tests to automated test system to be executed in the build environment, add similar tests to the monitoring service to validate essential configuration elements match.
Resolve all failing tests with Configuration Management system ensuring all configuration artefacts (config files, reference data etc.) are in source control.
Add system build and configuration tasks to build system.
Ensure all engineers understand why configuration elements vary between systems and environments.
|2||Build & Integration: Continuous deployment||Continuous deployment of individual services is reliable for all products, services and tools.||Configuration for systems, virtual machines and containers can be deployed without human intervention.
A minimum level of automated testing is in place to confirm applications deployed and display minimal viable functionality
Service changes can only be deployed individually and core functionality changes require staff from many departments to leave their teams to participate in war-rooms
|Add dependency management and discovery to configuration management and deployment systems
Create mocks for 3rd party dependencies that don’t provide test mechanisms
Add more sophisticated automated tests to assure core service functions operate as expected.
|3||Build & Integration: Continuous Service Integration||Continuous deployment of all services and the management of all their dependencies is reliable.||Automated service tests are in place to validate the function of the service as an integrated whole.
Significant service wide changes make the organisation nervous and they demand onerous manual oversight of such changes.
|Develop the capability to deploy service changes to groups of customers in specific geographic regions or to percentages of customer base.
Create feature toggles for all new features or significant changes to features allowing code to be deployed at all times regardless of it’s state of completion.
|4||Build & Integration: Continuous Delivery||Continuous deployment of all services is reliable.||All code can be deployed at any time to any group of customers as desired.
Automated testing ensures test engineers can focus on UX and exploratory testing.