Why is the Cucumber tool for BDD named as such?
We would like to share Aslak Hellesøy’s (the creator of Cucumber) reply in Quora for “Why is the Cucumber tool for BDD named as such”. Interesting answer worth reading.
This is going to be a little long – I’ll take the opportunity to explain a little more of the history of some BDD tools.
Around 2005-2007 I was involved in the RSpec open source project – the first popular BDD framework for Ruby.
In 2007 Dan North (who invented BDD) had just donated his rbehave tool to the RSpec project where it was renamed to the RSpec Story Runner. Dan is a starter.
David Chelimsky who was the lead of the RSpec project refactored the story runner so it could read stories from plain text instead of a Ruby DSL – using a simple regex based parser. This was now the first tool in the world to allow executable specifications to be written in plain text using Given/When/Then.
I thought the RSpec Story Runner was a fantastic idea and I started to devote my energy towards improving it. One of the first things I did was to rewrite the parser using Treetop. About a year later, in the spring of 2008 I had a lot of ideas for improvements.
I wanted users to have better error messages. I wanted to make it easier to use by printing step definition snippets and report results in colours. I wanted non-English speakers to use the tool, so I wanted to translate Given/When/Then to other languages. And a lot more.
Implementing these changes was very hard to accomplish without making deep changes to RSpec itself, which RSpec Story Runner depended upon. The two projects had very different goals – RSpec was primarily for programmers, while RSpec Story Runner aspired to be a tool for the whole team, including non-technical stakeholders.
So on the 8th of April 2008 I made my first commit in a codebase that I wanted to become a better, standalone rewrite of the RSpec Story Runner. I temporarily named it Stories for lack of a better name.
I knew this thing could be big – I just knew it! But that would never happen with a boring name like Stories. Can you imagine using a tool called Stories?
So after three days of hacking on my new baby I was on a 3 hour bus ride from Oslo towards Risør with my fiancee. She couldn’t care less about programming, but I always admired her sense of aesthetics and good taste, so I asked her:
Patty, I need a name for this new tool I just started hacking on. I want it to have a catchy, non-geeky sounding name.
She paused for a few seconds, then said: Cucumber!
And I thought: Cucumber? Really? Well, it’s a lot better than Stories – so I’ll go with that for now. I’ll rename it again when I come up with something better.
8 years later I still haven’t come up with a better name. And now there are hundreds of thousands of people using Cucumber every day, from small tech startups to fortune 500 companies.