Optimizing for Learning
Introduction
Building software is a process of learning and discovery. We are constantly learning new technologies, new tools, and new ways of working. During each new project, we are learning about the requirements, the domain, and the problem we are trying to solve. Because learning is such a fundamental part of software development, it is critical that our development process allows us to learn quickly and efficiently.
No project in the history of software development has ever started with a perfect understanding of the problem. We always need to refine our understanding as we go. The faster we can learn, the faster we can adapt to changing circumstances, and the better our software will be.
Topics
📄️ Small Batch Sizes
Working in smaller batch sizes reduces risk and allows us to learn and adapt more quickly.
📄️ Feedback
Feedback loops are essential for learning and adapting quickly.
📄️ Experimentation
The scientific method applied to software development.