Implement Fast Feedback with Continuous Delivery and DevOps
OpenCredo is an expert in Continuous Delivery (CD) design methods and best practices around DevOps, and we work with clients to automate and improve the process of delivering software that is both valuable and free of defects. We invest in techniques such as the creation of build pipelines, automated testing, and programmable infrastructure. Key goals of continuous delivery are to ensure a high-quality software product that meets business requirements has been created, and that it can be easily (and repeatedly) be packaged and deployed to any environment.
Creating a Backlog
Before starting any project, we make sure the right piece of software is being built that will meet the business requirements. We gather requirements in high-level Epics and divide these into User Stories, which in turn are estimated and prioritised by the client. The top entries in the prioritised backlog of stories are pulled into a development sprint, which typically ranges in duration from one to two weeks.
Working Outside-in: Behaviour Driven Development (BDD)
BDD allows us to programmatically capture and verify business requirements, ensuring the delivered capability meets the user stories defined. We have experience with a wide range of BDD tools that allow us to run tests to generate human readable reports describing the way in which the acceptance criteria for a story have been met.
We apply best practices from DevOps, and use configuration management tools such as Terraform, Ansible, Chef and Puppet, combined with immutable infrastructure tooling such as Packer, Docker and rkt to define ‘infrastructure as code’. Using these tools makes the creation of development and deployment environments repeatable, less error-prone and faster.
The Backbone of CD: Build Pipelines
The build pipeline and the associated fast-feedback it allows is central to the idea of continuous delivery and ensures that any code is thoroughly exercised and validated before it reaches production. We work with developers to create an effective CD process, from committing code to a version control system like git, building application(s) using a continuous integration server such as Jenkins, and pushing the resulting build artifacts down the pipeline, validating for quality (via tooling such as SonarQube), functionality (Serenity BDD), security (add-security, OWASP ZAP) and performance (JMeter, Gatling).
Culture is a key component of the DevOps movement, and OpenCredo specialises in working within organisations to drive change and transformation to more effective ways of working. We regularly run workshops on the agile methodologies, lean principles and DevOps practices, and for longer term consultancy engagements will work closely alongside your team in order to share the benefits of continuous delivery, and assist with developing communication skills and ways of working that supports the DevOps approach.