These days, Continuous Integration (CI), Continuous Delivery (CD) and Continuous Deployment (CD too) are common buzzwords. The fact of the matter is that CI has been around forever – well the term has been around for well over 20 years, anyway. CI is all about merging code often to get continual and early feedback. Continuous Delivery is all about getting software out the door faster and one of the ways to do that is to use CI and CI servers, so the two have naturally been grouped together.
We know that many businesses want new software (or changes to existing software) quicker. Sometimes it is to make money and sometimes it is to save money – and sometimes both.
Delivering software of low quality quicker, probably has a worse affect than delivering higher quality software slower, depending on context. This is why we at MagenTys have coined the phrase “Continuous Quality”. Continuous Quality encapsulates all the things that we do well. It helps define how you can deliver better software faster.
Continuous Quality means using Behaviour Driven Development (BDD) to build the right thing using collaborative workshops like Impact Mapping and tools such as Cucumber. It means using Test Driven Development (TDD) to build the thing right. Both of which contribute to high automation levels, as a byproduct, which act as a line of defence against releasing crappy code.
It means treating configuration as code and automating environment creation and deployment through tools such as Jenkins, Ansible and SaltStack.
It means having developers who understand business goals, are embedded with the business/product teams and are open to new ideas and new technical ways of doing things. Gone are the days of a one stack does all mentality. You use the best tool for a specific job and that tool may change in an instant.
It means having smarter, more nimble technical testers and advocating testing early and often using exploratory testing. It does not mean having more testers, in fact, it probably means less.
It means incorporating UX and non-functional elements as early in the piece as possible to provide valuable and meaningful feedback.
All these things (and more) = Continuous Quality.[ts_fab]
Hamish is MD for Australia and is a regular speaker and blogger on the BDD and DevOps circuit.