Inner Loop and Outer Loop

What is the inner loop?

In the software development process, the inner loop refers to the workflow that developers go through when writing, testing and debugging code. It is a fast, iterative process that typically takes place at the individual developer level. For this work, developers need a (local) development environment.

What is the outer loop?

The outer loop describes the processes and activities that begin after the code has been committed to the version control system:

  • Merge the code
  • Code review
  • Build
  • Tests
  • Deployment

The outer loop usually includes a CI/CD pipeline to make the process efficient and automated. Meetings are also often included in the outer loop.

Inner Loop Outer Loop

Why is this important?

From a productivity and DevX perspective, it can be deduced from this simple model that disruptions and optimisations in the Inner and Outer Loop directly influence the work and productivity of developers.

Example for the inner loop: In modern software development, development usually takes place locally. This involves using different tools and managing dependencies. The necessary hardware resources must also be available in order to execute projects smoothly. All of these factors can disrupt the workflow in day-to-day business. For example, if a tool stops working due to an update or if it consumes a lot of resources. This leaves less time for the actual work – writing code. At the moment, the big question is how AI affects the inner loop. Does it actually make developers more productive?

There are various solutions for problems in the inner loop, for example

Example for the outer loop: Issues can arise if the CI/CD pipeline has a configuration error and does not work anymore. In larger companies, there is typically a DevOps team for such problems that monitors the infrastructure and processes. However, in smaller teams, the individual developers are responsible for many processes themselves. Another example: It can also be the case that meetings are scheduled constantly and interrupt developers. The outcome: Lower productivity.