Defining complete, accurate software requirements has long challenged organizations, and those challenges have grown exponentially, particularly in large organizations delivering sizeable projects in complex environments.
The business environment has become increasingly urgent as new customer demands compel organizations to innovate quickly to capitalize on fleeting opportunities. Business needs IT to deliver faster than ever.
At the same time, delivering software in an environment filled with legacy technology and complex integrations slows teams down, as does the need to deliver audit-ready products in an increasingly complicated regulatory environment. Moving fast puts quality at risk. It has the potential to do more harm than good.
To make matters worse, organizations also need IT to reduce costs.
Deliver faster and cheaper, while maintaining quality and mitigating risk? Teams delivering software have tough jobs, particularly those working in large, complex organizations, where these challenges are magnified.
The Solution: Agile?
Agile is mainstream, and most organizations have adopted it to some degree and with a good deal of success. From a requirements perspective, its use of “just enough” documentation in the form of user stories and visual models has helped deliver quality software faster, but it has its limitations in large companies executing sizeable software projects:
Requirements on Large-Scale Projects: Melding Agile with Traditional
Agile has its place. Its concepts are strong and its benefits are clear, but it’s not enough for the large-scale projects organizations must execute today. It can play a role, however. Organizations are combining Agile and traditional requirements methods on complex projects, enabling them to deliver value faster while still managing risk.
In these scaled Agile projects, teams define high-level solutions and identify which components are new and which already exist. They break out the new features and assign them to Agile teams to define requirements in the form of epics, themes, and user stories. For parts of the solutions that already exist, teams leverage existing business requirements, modifying them as needed to deliver enhanced functionality using more traditional requirements practices.
They use robust requirements tools to manage requirements holistically, whether defined in traditional “the system shall” statements or user stories. These tools help them analyze, collaborate, and communicate requirements. They enable them to establish needed traceability and define reusable requirements. They integrate their requirements tools with other development lifecycle tools, like those for development and testing, enabling team members to exchange information easily while working in their familiar toolsets.
These features help product owners and business analysts develop strong requirements in an integrated environment where communication, collaboration, and change management are critical to success.