2.
Reduce Ambiguity and Limit Rework
Dealing with ambiguity in language and writing is especially difficult. Gerald Weinberg
works through an example of language and meaning ambiguity in "Are Your Lights On?"
using the simple phrase "Mary had a little lamb." Depending on which word you stress or
place emphasis on, it can change the meaning of the entire sentence. If you emphasize
"had," the sentence could then mean that she lost the lamb. Or, if you were to stress the
word little, it could change the meaning to "instead of an average size lamb". Gerald
also uses the joke "Mary had a little lamb. The event made medical history".
Though there is a lot of ambiguity in spoken and written language, while working with
software, there are tools at our disposal that we can use to limit this kind of ambiguity
and limit the amount of rework needed. This is where BDD comes in handy as it helps the
team discuss the features by example in more depth than they would otherwise. Using
the "Given, When, Then" format, allows the team to work together using a similar
language that helps reduce ambiguity because the team is collaborating with each
other using a universal language.
3.
Behavior Driven Development
BDD is a software development process that describes the application in terms of
behavior before the code is implemented. The behaviors are described by examples
that can be executed to compare the expected behavior to the actual behavior. There
are many ways to capture these behaviors, but the most popular being Gherkin which