I introduced SpecFlow to my team in December 2013. I was really sold on BDD by three of it’s main benefits benefits:
- Living documentation – BDD creates up-to-date and relevant documentation
- Increased collaboration – BDD promotes discussion up-front and reduces handoffs that traditionally occur.
- Build the right thing the first time – Through increased collaboration there’s better understanding of what needs to be built and there are fewer surprises when the product is finished.
Since introduction of SpecFlow, I would say we have seen more communication between QA, developers and Product Owners. It hasn’t been a dramatic, complete change to our process, but it has improved communication. With code reviews there’s been significantly more review of tests. Reviewing tests and be a bit tedious and if you’re not familiar with an area of code reviewing all the test scenarios isn’t easy. With Gherkin tests everyone on the team can (and usually does) read them and ask questions or concerns.
Writing tests has been a pretty steep learning curve for the more junior developers. I think most people are now familiar with it, but it’s taken time. Senior developers have a completely different challenge of philosophizing how best to refine and optimize specifications.
Our specification set is starting to get large enough that we are now thinking about how best to organize them. Unless you’re a technical writer, structuring documentation is challenging and this is proving no different. Our first step has been to separate higher-level stakeholder focused scenarios from boundary conditions scenarios. This seems to help maintain clarity for business-stakeholders and supporting the more detailed scenarios for QA and developers. SpecFlow does offer a $$$ tool for organizing the documentation – maybe… maybe we’ll look at that at some point, but
So it’s been a fun month with SpecFlow. I think it’s been a bit challenging getting going with them, but I think people have warmed to them and they’re becoming more and more part of our agreed on best-process. My presentation that kicked off the whole process is below. It’s brief and lacks an animated me flailing arms around in front of everyone, but it has some good key points. specflow-presentation