Chapter 1
Why Cucumber?

Software starts as an idea.

Let’s assume it’s a good idea—an idea that could make the world a better place, or at least make someone some money. The challenge of the software developer is to take the idea and make it real, into something that actually delivers that benefit.

The original idea is perfect, beautiful. If the person who has the idea happens to be a talented software developer, then we might be in luck: the idea could be turned into working software without ever needing to be explained to anyone else. More often, though, the person with the original idea doesn’t have the necessary programming skill to make it real. Now the idea has to travel from that person’s mind into other people’s. It needs to be communicated.

Most software projects involve teams of several people working collaboratively together, so high-quality communication is critical to their success. As you probably know, good communication isn’t just about eloquently describing your ideas to others; you also need to solicit feedback to ensure you’ve been understood correctly. This is why agile software teams have learned to work in small increments, using the software that’s built incrementally as the feedback that says to the stakeholders “Is this what you mean?”

Even this is not enough. If the developers spend a two-week iteration implementing a misunderstanding, not only have they wasted two weeks of effort, but they’ve corrupted the integrity of the codebase with concepts and functionality that do not reflect the original idea. Other developers may have already innocently started to build more code on top of those bad ideas, making it unlikely they’ll ever completely disappear from the codebase.

We need a filter to protect our codebase from these misunderstood ideas.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.17.157.6