Thoughts on the How
Before I begin, I’ll issue a warning: What you are about to read is not advisable, though it is a first-hand account. (Also, I wish to credit Scott Sehlhorst for inspiring my commentary by his comment about this topic in this post about agile prioritization.)
I’m currently running a large development project which is transitioning at the 2/3 mark from waterfall to agile.
Now that I have that out of the way, a little background. The project was defined in terms of discrete requirements, originally tied together with a few key workflows and wireframes, and involves an n-tier architecture with a number of moving parts. Though much of the underlying architecture was completed, we weren’t clear enough about the workflows and stories and the project was not producing tangible results fast enough. So, while we recognize we should have started with agile, the company hadn’t adopted the agile methodology at inception. To achieve our goal of better predictability and periodic peer review of the software, after it became possible in the corporate environment, we moved to agile.
Note that in the first half of the project, we erred on the side of providing requirements that stopped at the “what,” rather than providing the team enough about the “how.” The move to agile has exposed that we weren’t providing enough context around each requirement (story) to enable the development team to build the product. In this case, the complexity of the project and an unfortunate number of unknowns has made it useful for product management to collaborate with user experience well before presenting user stories to the development team, as advocated by others, rather than attempting to involve UX on an “as-needed” basis for each story. In prior attempts to provide only the agile user story in “As a ___, I need ___ so ____” format, it quickly became apparent that the story wasn’t nearly enough. We had to deliver the agile user story with the workflow steps (including interaction design) — only that seemed to eliminate enough uncertainty to proceed.
From a higher level, there’s another lesson here that operating under both paradigms has exposed. It was quickly clear that for a complex system, providing the complete user stories and supporting material (including workflow steps, interaction design and wireframes) enables undesrstanding and fast action. Though it was in some ways coincidental that we had wireframes before our sprints kicked off, it already appears to have sped things up significantly.
Hopefully the ramp-up will expand as we continue down this path, and we’ll reach the finish line quicker than we might have otherwise.