31 July 2018
There have been some exciting developments in Agile over the past few years, especially around requirements and user stories. Story Mapping, a technique developed by Jeff Patton, allows the business and development teams to visualise the completeness of the Product Backlog, prioritise against business objectives, and to carve out minimal viable releases. Story maps work equally well at the Sprint level as they can be used to drive out goals for upcoming sprints because they naturally group related functionality into themes. If that wasn’t enough to pique your interest, they also provide an intuitive context for splitting user stories, something teams new to Agile often struggle with, and enhance the development team’s ability to deliver the most value in the shortest possible time through identification of the minimum viable product or release.
At the more detailed end of the spectrum, another exciting development is the writing of user story acceptance criteria using a Behaviour Driven Development (BDD) format (Gherkin scripts). These acceptance criteria read very naturally using a Given, When, Then syntax. This approach allows the business to write automatable tests for the development team and drives out ambiguity by providing examples (scenarios) of how the system should behave. The conversations around these scenarios can also be used to define a ubiquitous language which further enhances communication. All this feeds into the development team members’ cognitive model of the problem domain and enhances their ability to solve problems in this space through the functionality they build. This technique is rapidly becoming an industry best practice with support from the Cucumber suite of tools for most programming languages.
Another development worth noting is the rise of DevOps in Agile approaches. Automation is key to doing away with time-consuming and error-prone manual processes for software delivery and deployment, and so Agile teams are increasingly bringing DevOps into their workflow. Developers should be rightly concerned with how their software is deployed, and they have the programming skills necessary to work with DevOps specialists in automating the pipeline. This collaborative approach leads to a more robust and reliable process which reduces risk, lowers stress levels and ultimately fosters greater customer satisfaction.