Software documentation in agile processes: an approach based on Behavior-Oriented Development
Behavior Driven Development; Software Documentation; Requirements Engineering.
The growing demand for software resulting from the popularization of devices and technologies, such as the smartphone and the Internet of Things, means that development teams have to deliver new software resources more and more frequently. System users, now very familiar with various types of software solutions, have increased their quality standards: utility, usability and interoperability are increasingly required. In this context, agile development processes with their strong adaptability characteristics are able to support development activities in order to allow software to evolve in an appropriate manner, growing in a sustainable manner. However, many development teams that work with agile processes end up underestimating the importance of software documentation as an important tool to support the scalability of their solutions. Leaving aside the fact that, according to the agile values, although software in operation is highly valued, having a comprehensive documentation may also be necessary. What we often observe are development teams trying to adapt Requirements Engineering activities and software documentation of the so-called traditional development processes, which ends up generating inappropriate documentation artifacts to the characteristics of adaptability to new requirements and frequency of delivery of agile processes. Based on this conjuncture, this research work proposes an approach to support the generation of a type of documentation appropriate to agile processes. Bringing the activities of Requirements Engineering closer to the software tests, through the use of the Behavior Driven Development (BDD) strategy, thus generating living documentation - which accompanies the behavior of the software in operation.