Stone Soup Programming

Stone Soup Programming

· 4 min read

Prerequisites for Stone Soup Programming

  • A team (even a small one, two people counts)
  • A willingness to share half baked ideas
  • Zero ego about your code being “yours”
  • The ability to say “wouldn’t it be cool if…” with a straight face
  • A llama. Llamas are excellent at pair programming. They never judge your code. They just stand there, chewing, being supportive

I recently read (I think it was The Pragmatic Programmer, but I can’t be sure) and it introduced the concept of Stone Soup Programming. If anyone knows the actual book that has a section on this please do share it. It’s in my library somewhere and I don’t have time right now to go searching. I thought it was a great idea at the time and have been waiting for an opportunity to try it out. Well, that opportunity has finally arrived, so I thought I’d share it with you all.

The Tale of Stone Soup

For those unfamiliar with the tale, Stone Soup is a European folk story about hungry travelers who convince a town to each share a small amount of their food to make a communal meal. The travelers start with a pot of water and a stone, and through a bit of social engineering, they convince the townsfolk to add ingredients until a delicious soup is made.

Basically they walked into town, stuck a rock in some water and said “this is gonna be incredible soup, but imagine if someone added a carrot”. Genius level manipulation. I respect it.

Roll Safe think about it

Stone Soup Programming: The Concept

Now, you might be wondering, “What does this have to do with programming?” Well, let’s think about it. The travelers in the story started with a simple stone (or in our case, a basic piece of code). They then invited others to contribute, and with each addition, the soup (or our program) became more robust and flavorful.

This is the essence of Stone Soup Programming. It’s about starting with a simple idea and inviting others to contribute their unique skills and perspectives. It’s about building something together that is greater then the sum of its parts.

Open source software is a great example of Stone Soup Programming. A developer starts with a simple idea, and others contribute to it until it becomes a robust, fully featured tool. Linux started as one bloke’s side project. Look at it now. Running basically everything. Including probably the server hosting this blog.

For what it’s worth, you don’t have to be a developer to practice the Stone Soup methodology. You can apply the same principles to any project, whether it’s a website, a video game, or even a book.

A Real Life Example: The Chrome Extension

Recently, I found myself in a bit of a pickle. I was dealing with some repetitive tasks that were eating up my time. So, I did what any self respecting developer would do: I built a quick Chrome extension to automate the process.

But then, I had a Stone Soup moment. I thought, “Why not share this with my team and see if they can add to it?” So, I demoed the extension, explained how it worked, and invited them to contribute.

The response was brilliant. One person added error handling. Another added a UI for the settings. Someone else integrated it with our CI pipeline. What started as my hacky little solution turned into something genuinely useful for the whole team. And all I had to do was put a rock in some water and say “imagine if this had a carrot”.

The Magic of Collaboration

The beauty of Stone Soup Programming is that it fosters collaboration and innovation. It encourages everyone to contribute, regardless of their skill level. And just like the villagers in the story, we often find that we have more to offer than we initially thought.

So, next time you’re working on a project, consider making it a Stone Soup. Invite others to contribute, and see what delicious concoctions you can cook up together. After all, as the old saying goes, “Many hands make light work.” Or in our case, “Many coders make great code.”

Thumbs up

How to Stone Soup in your team

  1. Build the smallest possible version of your idea. The stone in the pot
  2. Show it to people. Enthusiasm is contagious
  3. Make it ridiculously easy for others to contribute
  4. Celebrate every addition, no matter how small
  5. Resist the urge to be precious about “your” code
  6. Bring snacks to the demo. Actual soup is a power move

Until next time, happy coding!

Related Posts

Comments