DevOps and Testing – Star West Conference 2017 Keynote Session

Avishai Shafir
Avishai ShafirVP Marketing | October 10, 2017

Last week I attended the Star West conference in LA, a fascinating and a cutting-edge conference, sharing the latest best practices of software quality and testing.

Among those great speakers, there was one keynote that caught my eye, “Testing and DevOps” a presentation by Adam Auerbach, VP Quality and DevOps Engineering at Lincoln Financial Group, and I want to share some of the insights as presented by Adam.

Software development is constantly evolving, and the transformation of teams to release software faster creates pressure on all stakeholders throughout the process.

Adam started with a good definition of DevOps: “You Build it You Own it” meaning –

“DevOps is a philosophy where teams are accountable for everything required to get their code developed, tested and deployed to production, while shared service teams provide the automation and tools to enable them”.

Adam shared his experience that teams who adopted Continuous Testing and eventually Continuous Delivery achieved:

  •      Improved deployment frequencies by over 4X
  •      A significant decrease in incident rates; they  fell 90% to less than 5%
  •      One hour lead time from check-in to production deployment

He nicely draws on the relationship between the number of releases and the adopted methodology. The faster you wish to release, you need to adopt more of the below:

  1.     Agile – Accelerates software development with iterative, incremental releases
  2.     DevOps – Enables faster feedback or developers through automation and increased responsibilities
  3.     Continuous Delivery – Allows code to flow via an automated software factory that deploys constantly

The more you automate your process, the more cost effective and efficient your team will be.. “Manual work is still highly used and no one can automate everything”, was one of few comments that were heard during the session. Well, this comment sounds valid, although by examining the trends in the software industry, it’s well directed towards dev-centric and automated processes, as part of an ongoing journey.

Learn how to increase your UI Code Coverage | Download >>

The required infrastructure to achieve the above was illustrated as follows:

And in order to achieve the above one should properly manage the software pipeline:

source – Adam Auerbach Star West conference presentation

The testing activities have become, in many cases, the bottleneck of the CI/CD pipeline. Learning best practices for continuous testing is important. Methodologies that can push a team in  the right direction include behavior-driven development (BDD), test-driven development (TDD),  and acceptance test-driven development (ATDD).   In addition, the right set of tools can assist the team achieving the desired goals include:

  •      Service virtualization
  •      Test Data tools
  •      Dashboard and monitors that drive the most impactful activities

Adopting the above practices is not simple and there are many challenges along the way. The most common challenges include lack of funding, 3rd party dependencies, questions on direction, lack of technical resources and project delivery mindset. Adoption of top down and bottom up support from all stakeholders is critical to overcome the above.

The presentation and the ideas shared by Adam were very enlightening, and I strongly recommend following him here (@Bugman31) for greater insight into this topic.