The following are three recurring complaints of programmers:
- Lack of requirements
- Ambiguity of requirements
- Requirements are changing all the time
There are quite a few recommendations and processes that help alleviate these problems, but none of them were able to eliminate them completely. The most successful, in our opinion, was an agile process methodology in conjunction with BDD, using Cucumber or another similar framework. Short iterations allow quick adjustment and coordination between businesses (customers) and programmers, while BDD with Cucumber captures the requirements in a formal language called Gherkin, but without the overhead of maintaining extensive documentation.
The requirements written in Gherkin have to be broken into features. Each feature is stored in a file with a .feature extension and consists of one or more scenarios...