The ongoing adoption of the Cloud in the public sector continues at a pace. The DWP recently called off a £57 million contract for AWS public cloud services, via the One Government Value Agreement set up by the Crown Commercial Service, laying the ground for a major migration of DWP on-premise systems to hyperscale cloud.
In their blog another major adopter, the Home Office, describes how this trend goes hand in hand with their shift to more Agile and 'Cloud Native' development practices.
They are implementing Kubernetes, Docker, Terraform and AWS, working in agile, interdisciplinary teams to build and operate public facing services. Utilizing principles such as "infrastructure as code" they are able to provision resources consistently and efficiently and manage them through the full life-cycle, versioning and peer review, to create and maintain robust, auditable, scalable and cost-efficient, autoscaled and rightsized environments for both development and production.
Continuous Testing Maturity
As they explain, this provides a common platform that allows developers to define new Continuous Integration (CI) pipelines rapidly, getting code into a product, through testing and into production in a timely manner, based on core components such as the Application Container Platform (ACP).
They're defining how overall this evolution can be seen as a shift to 'Continuous Delivery' (CD). As the name suggests this means an approach where rather than a small number of infrequent, very large releases of new software, developers are pushing out new updates on an high frequency basis, sometimes many in one day, where a 'microservices' software architecture means they work with a small, modular code base rather than one large 'monolith' making this agility possible.
This InfoQ article provides a thorough review of the maturity journey an organization can go through to advance the sophistication of these CD practices. It defines five main pillars of Culture and Organization, Design and Architecture, Build and Deploy, Test and Verification and Information and Reporting.
In summary it is a process of better integrating previously siloed teams and development tools, automating repetitive coding and deployment functions and forming teams into a self-organizing structure around process flow and product ownership, rather than hierarchical departments.
It defines testing as one of the main pillars, and increasing maturity sees this evolve from being a final, isolated step in a sequence to being embedded directly into and throughout the process of software development. It also matures from manual to automated testing, with the most advanced Expert level also testing the business outcomes not just functional specification.
Testing for the Home Office
For our client the UK Home Office, the requirement is to help them progress along this maturity journey, providing flexible, responsive technical QA and test engineering services to support delivery across multiple portfolios of the Home Office’s delivery areas, as part of their existing in-house QAT service.
This is underpinned by a ‘centre of excellence’ function within QAT such that services can be coordinated and shared where appropriate with common methods and standards brought to bear to help bring about consistent quality and cost-effective services.
Projects within the Home Office are being delivered predominantly using Agile and DevOps methods, at differing levels of maturity, with continuous integration and automated deployments releasing to live several times a week, and to support this our work requires us to develop, enhance and implement test automation models to support cost effective continuous release methods.
Areas of testing to be covered include Quality & Assurance, to assure unit and component testing, automated Application Programming Interfaces (API) tests to ensure the component under test confirms to service definitions, automating component integration testing, automated regression test capability, and System Testing: automated testing within Sprints to test the story in full, based on BDD (Behavior Driven Development) scenarios.
2i Services
For other organisations seeking this same evolution, 2i offers consulting services and also staff to augment your own team, to undertake an assessment of your own DevOps and CD maturity, and begin a journey to enhance your capabilities and accelerate developer release throughput.
We can swiftly put in place a flexible senior resource model - with the ability and processes in place to scale at speed - to provide high quality, appropriately skilled and experienced test resources, to enhance the existing organisation, and at the same time, we establish a complementary consultancy workstream that ensures our clients have the most up-to-date advice and best-practice insights gained from our engagements with all of our clients.
We embed a Test and Governance model which the organisation can rely upon along with a clearly defined Test Strategy which moves you towards the end-state model based on Agile and QA principles, and become a trusted advisor that helps shape the direction of travel in terms of testing and aligning to the wider organisational and structural changes required on your transformational journey.