Delivering high quality software solutions that meet customer expectations and requirements is the essential goal of any development project. Therefore, development teams need to obtain the relevant domain knowledge and information from their customers.
As a result, initial system specifications are typically formulated using natural language (e.g., within plain text documents). The main challenge imposed by this process is to avoid misunderstandings, misinterpretations and inconsistencies during the transformation of informal requirements into formal specifications, models, and executable code or tests.
At first the talk will briefly introduce Acceptance Test-Driven Development (ATDD) as a powerful method to bridge the gap between requirements engineering and software testing. Following this, the second part will push the original ATDD idea even further by introducing the concept of “Lean Modeling”, a lightweight and pragmatic alternative to classical software modeling and DSL tools.
Examples will be presented that illustrate the usage of natural language specifications for various django specific artifacts:
- REST Resources
- initial database data (fixtures)
This approach can also help to improve our debugging experience and IDE smart completion support. In addition to these advantages during development a demo will be shown, that illustrates how customers / users can benefit from “Lean Modeling” by creating custom forms in their django backend with natural language.