In many technical activities small steps, supported by cause and effect, are very powerful. They are the underpinnings of TDD. What is your batch size? How many simultaneous problems can you solve? Most people answer that they can solve one problem at a time. Conventionally, people write a bucket full of code and happily attempt to solve many problems at once as they chase down the many mistakes they made filling that bucket. You don't need to do TDD to benefit from small steps and cause and effect. The funny thing is... it took TDD to teach me the power of small steps. Now I apply small steps, cause and effect all over the place.
I believe each line of code we write deserves to be thoroughly thought through. Taking small steps, practicing TDD, making small, goal-focused, commits and sometimes taking one (or several) steps back are all practices that help us reflect and make sure we're taking (small) steps in the right direction.
I started using this approach a few years ago, and my only question was: "Why didn't I do this sooner?" The clarity and control small steps provide are really helpful. Now, I apply this method to different tasks, from refining code to optimizing team workflows.
Masters don't juggle. They stack.
Useful tips
James: You'll love the series I've started at Industrial Logic's blog. The first one is: https://www.industriallogic.com/blog/clean-start-protocol I'm working on "Save Your Game" and it will be out shortly. There need to be a lot of us developers singing the praises of clear, small steps to take us forward. "Programming is the art of doing one thing at a time," says our friend Michael Feathers.