Do you structure your projects/workflow for iteration?

This is a good read:

So there, I guess that’s my initial idea to improve the educational system. Teach problem solving through iteration. Bounce things back to people for a second or third try. And then a fourth and a fifth. And so on. Require them to bring new perspectives. Demonstrate how time, space, and chance are on your side — they give you the opportunity to wander around with an idea and take it in new directions. Iteration is evolution. Hopefully what’s next is better than what came before it.

Let’s apply this to development. Do you:

  • break down your work into fairly small chunks?
  • try to implement small slices end-to-end so you can get feedback as soon as possible in the project?
  • make small commits?
  • merge pull requests often?
  • release often?
  • work in public so you can get early feedback?
  • seek feedback?
  • write enough tests and run them through CI so you can confidently move fast?

There is certainly a place for some up-front planning, but often you don’t start learning until you implement something. Feedback is the key to improving, and you don’t get very much feedback if you don’t iterate.

This is a common theme of mine. See also The Development Process - The TMPDIR Handbook