Working in Small Batches

Published date: April 15, 2024, Version: 1.0

This approach promotes faster feedback loops, reduces risks associated with long development cycles, and enables teams to adapt to changing requirements more easily. 

Overview

According to the DORA State of DevOps research program, working in small batches is a crucial capability that drives higher software delivery and organizational performance. This approach is essential in any discipline where feedback loops are important, allowing for rapid testing of hypotheses and course corrections when needed. In software delivery, working in small batches is part of lean product management, along with visibility of work in the value stream, team experimentation, and visibility into customer feedback.

Benefits

Working in small batches has many benefits, such as reducing the time it takes to get feedback on changes, increasing efficiency and motivation, and preventing the organization from succumbing to the sunk-cost fallacy. In addition, it can be applied at the feature and product level, with a minimum viable product (MVP) being a prototype with just enough features to enable validated learning about the product and its business model.

Continuous Delivery

Continuous delivery builds upon working in small batches and aims to get every change in version control as early as possible, changing the economics of the software delivery process to make it viable to work in small batches. In addition, this approach provides fast, comprehensive feedback to teams so that they can continuously improve their work.

Adoption expectations

System Components  MVP MVP+

Adopt INVEST principle to decompose any scope of work

+

+

Developers decompose work into chuck that can be developed in hours

+

+

Decouple deployment and release processes

 

+

Encourage and refactor solution to support loosely coupled independently releasable modules

 

+

 

Roles

Name  Responsibilities

Scrum Master/Team Coach

Coach and support usage of INVEST principles and BDD

Solution Architect

Design solution in a way to allow easy components and feature decoupling

System Architect

Design systems in a way to allow easy components and feature decoupling

Product Owner

Define scope and provide acceptance of new features on the earliest stages of the process

Developer

Adopt practices to develop new changes in a small easy to test steps

Test Automation Engineer (TAE)

Implement automated tests in advance allowing continuous testing process