Docker announced a collaboration with Amazon Web Services (AWS) to simplify the lives of developers by allowing them to focus on application development, streamlining the process of deploying and managing containers in AWS from their local development environment.
As dev teams and product owners begin the Agile development process, they meet to discuss how users will interact with their applications. They write these user stories down on sticky notes or index cards, arranging and re-arranging them into an order that they feel makes sense. These stories create the basis of their Agile requirements process.
User stories give developers the minimum amount of information needed to estimate the level of effort needed to implement the functionality described by the story. When written well, user stories can be powerful, because they help developers and testers view requirements from a customer's perspective. They provide context and an understanding of what motivates the people who will use the solutions they deliver.
When done poorly, user stories lead to missed or misunderstood requirements which 96% of application development and delivery professionals blame for project delays and rework.
Why User Stories Can Be Confusing
It can be difficult for enterprises to understand how user stories fit into their Agile projects, for a number of reasons:
■ Quality is often compromised because stakeholders are unfamiliar with user stories. Developers and testers may prefer user stories over a lengthy, text-heavy Business Requirements Document, but user stories are new to most business stakeholders and Business Analysts. As organizations try to transition to Agile, these individuals struggle to write high-quality user stories that accurately and sufficiently describe all customer needs. They get bogged down writing and managing them and lose focus on the bigger picture.
■ The number of user stories often mushrooms due to complexity. Most enterprise projects involve the development and enhancement of multiple, integrated systems to deliver functionality for a variety of roles. Users can take many paths that often interconnect and overlap with other processes. This can mean hundreds of user stories for a project of any size. Manually recording and managing the wealth of information that the development team needs is not feasible, and user stories can be missed or misinterpreted in the process.
■ The adoption of user stories is complicated by the addition of critical nonfunctional requirements, like those for compliance, security and performance. Organizations need to pay attention to them, but this complicates matters because they weren't designed to represent those types of requirements. User stories scribbled on sticky notes or created in an Excel spreadsheet don't support the rigor enterprises need for audits, change management, history and traceability.
Managing complexity and risk while still realizing Agile's benefits is a tricky task for large organizations. They need a robust Agile requirements tool to help them, especially for the creation of reliable, consistent and high-quality user stories.
Defining Enterprise-Level Agile Requirements
In its recent report, Adopting an Agile Methodology, Requirements gathering and delivery, Price Waterhouse Coopers determined:
"As companies shift from small projects and teams engaged in Agile to more complex projects and potentially distributed teams, there is a need to shift from paper and spreadsheets to tools that provide workflow, persistence and traceability."
Forward-thinking requirements management tools help business stakeholders and business analysts to leverage the power of user stories while making them easier to create. These tools eliminate the need to manually create user stories within the development teams' Agile tools. They bridge the gap between traditional and Agile requirements, enabling enterprises to scale Agile while managing enterprise concerns.
Using tools like this enables teams to create user stories at the enterprise level with powerful capability sets, helping them:
■ Visually and collaboratively define customer journeys. This empowers stakeholders to "tell their stories" as they work with product owners and business analysts to collaboratively define customer journeys. Using the familiar construct of user models — with steps, decision points, actors and condition statements — the entire team collaborates to record and analyze processes in a shared workspace. Teams maintain a focus on strategic objectives when making prioritization decisions and spend less time managing a huge list of user stories manually.
■ Use process flows to automatically generate high-quality user stories and tests. Product owners and business analysts use customer journeys to automatically generate user stories and acceptance criteria with the click of a button. They push these artifacts into the development teams' Agile management tool of choice, where developers and testers also have access to related requirements information, like regulatory information, visual models and constraints, supporting a comprehensive understanding. User stories are reliable and consistent, and there is no longer a need to spend time and money to teach business stakeholders or business analysts to write them.
■ Realize Agile's benefits while leveraging enterprise-level capabilities for visualization, traceability and reuse. Support for visual models and the ability to relate them to one another and other requirements artifacts helps teams establish the precise traceability they need to ensure full requirements and test case coverage. It also supports improved change management and decision-making, ultimately leading to higher-quality software. Customer journey models can be reused across projects and teams, as can user stories and other requirements artifacts, saving time and improving consistency.
In the struggle to transition to Agile, enterprises now have an ally in next-generation Agile requirements tools that enable all stakeholders to contribute and be heard. These tools offer key capabilities like collaboration, traceability, visualization, management analytics and reuse. They can foster stronger communication between IT and business, which assists in faster delivery. Complexity and risk remain in check as enterprises scale Agile across the organization.