In The Nature of Software Development, Ron Jeffries describes a way of building software around small, continuous progress: deliver value sooner, keep quality high, and help teams get better at their work. These are the parts I highlighted.
Deliver value early and often
Jeffries wants value delivered as soon as possible. Instead of waiting until the full product is complete, teams should ship small, valuable features frequently. The business gets a quicker return on its investment, and users give feedback sooner.
Organize teams around features
Teams should focus on features that give users value, not on tasks or technical details. A cross-functional team with all the skills it needs can own a feature from start to finish. That team ships features users notice and avoids the handoffs of siloed development.
Break work into smaller pieces
Jeffries breaks features down into the smallest units that still provide value. Small increments let teams work in short cycles, usually one or two weeks, and ship finished, usable features quickly. Development gets more predictable, and large, complex requirements stop overwhelming the team.
Quality through testing and refactoring
For Jeffries, quality is non-negotiable. Defects slow progress, and continuous testing keeps them down. Automated tests, written as part of development, check that each feature works as expected. Refactoring, cleaning up code as you go, keeps the system maintainable so technical debt doesn't slow the team down.
Manage by value, not deadlines
Jeffries prefers managing by value over managing by deadlines. Prioritize the features with the biggest impact, and avoid arbitrary deadlines or “stretch goals” that overwhelm teams and lower the quality of the work. The product should always be ready to ship, and each new feature should add clear value.
The five ideas in short
- Deliver value early and often.
- Organize teams around features, not tasks.
- Break features down into small, manageable parts.
- Keep quality high through testing and refactoring.
- Manage by value, not deadlines.