Usually when I work with the client, all I get is stories. We have to convert those stories to .feature files. We initially choose few stories for POC. Then based on resources availability, we choose which programming language to use for automation. Choosing programming language is very critical here, as the dev team should be comfortable using that language as well. Once we have chosen what programming language to use, we work with the dev team and stack holders to understand expectations from the automation framework. Like, parameterization, reports, integration with CI, easy of writing the code. We may have to modify the automation framework to meet certain expectations. Once we have framework in place, we create POC using the framework. We have to have many brainstorming sessions and Dev-QA calls with stack holders and the dev team during this time. Once we have automation suite ready with chosen set of .feature files, we give it to the dev team for creating an app. The dev team creates an app and we show POC and the app to the stack holders. Once we have green signal from the stack holders, we start BDD.
So process will be as follow.
Step 1: Analyse stories and pick up few stories to start with.
Step 2: Create .feature files (i.e. write manual test cases in Gherkin format)
Step 3: Work with stack holders and the dev team and figure out what programming language to be used for automation.
Step 4: Find out what kind of reports and other expectations stack holders and dev team has from the framework. Like, parallel execution, CI integration, parameterized execution, reporting style, etc.
Step 5: Choose a readily framework or combination of frameworks based on expectations.
Step 6: If automation framework needs modification, do it.
Step 7: Create a POC using the automation framework.
Step 8: Let the dev team use your automation suite and create some part of an app using automation suite.
Step 9: Show stack holders your POC and an app.
Step 10: Once we have proper BDD automation suite in place, start BDD.
Having clear communication and understanding of BDD among stack holders, the dev team and QA team is the key.
Sample flowchart: