Blog

Shift Left - Richard Seidl

Written by Richard Seidl | Jul 31, 2023 10:00:00 PM

The idea behind Shift Left is to consider quality as early as possible in the development process. The later quality problems are found, the more expensive and time-consuming they are to rectify. In other words, we try to implement all activities that contribute to high quality and also quality checks as early as possible. Not only clean unit tests play a major role here, but also the development environment, the code quality, the content of the user stories, etc.

“For many of my customers, it is surprising that the development environment plays a huge role, because I can bring a lot of quality into the coding itself” - Alexander Vukovic

Alex has been involved in software development since 1989 and has specialized in software testing since 1996. As a passionate developer, the quality of software is a matter close to his heart. His core areas are consulting, especially in agile quality coaching, method training, product owner, internal product development and load testing. In his spare time, he works as a lecturer for software testing and quality management at the Technikum Wien. He is currently working with the razzfazz.io development team on Node.js development, a highly scalable JavaScript server platform and JavaScript as a full-stack programming language.

Highlights of this episode:

  • Shift left means integrating quality assurance into the development process as early as possible
  • One key to shift left is improving code quality directly in the development environment
  • Unit tests are fundamental to quality assurance and should be created in the development phase
  • Consumer-driven contract testing can help to test and improve communication between different services
  • Automation of quality assurance through Continuous Integration and Continuous Delivery/Deployment Pipeline is crucial
  • Security aspects of Continuous Integration systems are a critical issue and must be handled carefully
  • Life is too short not to write unit tests

Rethinking quality assurance: The influence of Shift Left on quality and speed

In the “Shift Left” podcast episode, we discuss strategies for incorporating quality assurance early in the development process. Our discussion includes practical tips for application in the area of requirements, development environments and test procedures, including unit testing and contract-based testing.

The importance of the shift-left approach

In this episode, I had the opportunity to talk to Alex Vukovic, co-founder of Seqis and Agile Quality Coach, about the concept of ‘Shift Left’. This approach aims to integrate quality assurance measures as early as possible in the development process in order to increase efficiency and minimize error costs. By shifting quality assurance measures to the ‘left’, i.e. closer to the beginning of the development cycle, problems can be nipped in the bud and the entire process optimized.

Practical tips for effective implementation

Alex shared some valuable insights on how to apply the shift-left approach in practice. These include carefully crafting requirements and user stories, using advanced development environments with support for refactoring and static code analysis, and focusing on unit testing as a fundamental basis for robust software quality. These measures not only improve quality, but also speed up the development process.

The role of the development environment

A central aspect of the shift-left concept is the importance of a powerful development environment. Tools such as IntelliJ or Visual Studio Code offer powerful functions to support quality assurance measures directly in the coding process. For example, plugins for measuring cyclomatic complexity provide immediate feedback on the complexity of the code, which in turn helps to identify and resolve potential problems at an early stage.

Unit testing as a cornerstone

Another important point is unit testing. They are the basic prerequisite for continuous quality improvement and form a fine-meshed network of regression tests that enable changes to be made safely while ensuring that existing functionalities are not impaired. Unit tests enable developers to work on code with confidence and security.

Contract-Based Testing für APIs

The integration of Consumer Driven Contract Testing provides an efficient way to ensure that APIs work correctly and are compatible with consuming services. Tools like PACT allow teams to define contracts for APIs and run automated tests against these contracts. This reduces the need for complex integration testing and supports faster development while maintaining quality.

See the big picture

Shift Left is more than just a methodology; it is a philosophy for improving quality in the software development process. By integrating quality assurance measures at an early stage and using suitable tools, teams can not only reduce error costs, but also deliver high-quality software more quickly.