Continuous Architecture and the Quality Assurance Group 

Continuous ArchitectureSeveral companies including Pivotal Labs and Microsoft[1] have eliminated their formal Quality Assurance groups, and moved the testing function back to the developers.  Those companies believe that moving the testing function back to the developers together with the appropriate automated tools to deploy and test software empowers them, and enables them to produce higher quality software. When developers are responsible for testing their software and supporting it in production, they become concerned with how hard their applications are to deploy, test and run, and not just with how quickly they can write software.

However this approach may be too radical for some companies, and we believe that there is still a role for Quality Assurance groups in a Continuous Delivery world. The key is to ensure that the testing group collaborates closely with Development and Operations as part of the DevOps process.

According to Bret Pettichord’s 2007 Schools Of Software Testing talk[2], testers can be grouped into the following five “Schools”:

  • Analytic School: sees testing as rigorous and technical with many proponents in academia
  • Standard School: sees testing as a way to measure progress with emphasis on cost and repeatable standards
  • Quality School: emphasizes process, policing developers and acting as the gatekeeper
  • Context-Driven School: emphasizes people, seeking bugs that stakeholders care about (Pettichord aligns himself with that school)
  • Agile School: uses testing to prove that development is complete; emphasize automated testing

Testing groups aligned with the Agile or the Context-Driven schools are likely to be the most supportive of the Continuous Architecture approach as well as of the Continuous Delivery process, while testing groups aligned with the three other schools may have a challenge adapting to that process. When testers act as gatekeepers as emphasized in the “Quality School”, they negatively impact the collaboration between development, operations and testing which is at the core of the “DevOps” process.

Please refer to Pettichord’s 2002 article, “Don’t Become The Quality Police[3] “ for a discussion of how positioning the testing group in  the “process police” role may generate confrontation, and could degrade relationships with development and operations.

Do you still have a formal Quality Assurance group and have successfully implemented Continuous Delivery? We would love to read your observations – please drop us a note!