Smallest possible thing

Published on 25 June 2013.

Today’s thought is about the smallest thing that could possibly work.

Doing the smallest thing that could possibly work means not designing solutions that we don’t need. It means deferring design decisions for as long as we possibly could. It means resisting the urge to implement clever solutions.

If we do the smallest thing that could possibly work, a design will eventually emerge that satisfies all our requirements and nothing more.

Doing the smallest thing that could possibly work is something we practice when we practice TDD. Sometimes it feels silly, but we are quite used to it by now. However, it can also be applied when implementing acceptance tests.

Yesterday I was working on a green field project of mine. I had an acceptance test in the form of a user story with manual steps how to test it. While I was working on the story, I thought to myself many times that I would need this data structure, and this abstraction. Then I remembered the smallest thing. I don’t need that now. Maybe later. We will see. I found it quite helpful and relaxing. I can do the stupidest thing now to get this story to pass. Then I can look at the code and see the structure. Then refactor to make that structure more clear.

Site proudly generated by Hakyll.