Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Improving Accuracy on Large-Scale Agile Projects

DZone's Guide to

Improving Accuracy on Large-Scale Agile Projects

Want to better accuracy on massive Agile projects? Here's how to maintain quality, reduce risk, and work faster and cheaper.

· Agile Zone
Free Resource

Reduce testing time & get feedback faster through automation. Read the Benefits of Parallel Testing, brought to you in partnership with Sauce Labs.

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:

  • Teams are large and distributed, often globally. They’re composed of numerous people from multiple departments and organizations, including consultants and outsourcing providers. Organizations can’t implement Agile’s concept of small, dedicated, collocated teams collaborating continuously. 
  • The technology environment is complicated. While Agile works well for new development or development in small, simple environments, teams in large organizations face many challenges. They have to define and accommodate requirements for legacy systems, many of which are largely undocumented. They have to consider integration with other systems, some of which are managed outside their organization.
  • Complex regulatory requirements drive the need for rigor. Teams must develop formal documentation to define requirements, establish traceability, and understand the impact of regulatory change. They also need to be able to prove to auditors they’ve done their due diligence. 
  • Non-functional requirements grow in importance. Agile methods don’t define a mechanism for managing the definition and testing of non-functional requirements, like those for security, availability, and performance. These requirements, however, are critical to developing high-quality software that delivers customer satisfaction, and they’re tough to get right on a large-scale project.
  • Large teams need more robust tools to collaborate and exchange information. Small, collocated Agile teams can use lightweight, nimble tools to define requirements and communicate them to developers and testers. Often a white board and post-it notes is all they need. Large, distributed teams need added support for communication, collaboration, and change management. They need enterprise-level integration between the purpose-built development productivity tools commonly used for requirements, design, development, and testing to keep teams in sync.
  • 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.

    The Agile Zone is brought to you in partnership with Sauce Labs. Discover how to optimize your DevOps workflows with our cloud-based automated testing infrastructure.

    Topics:
    agile approach ,integration

    Published at DZone with permission of David Shepherd, DZone MVB. See the original article here.

    Opinions expressed by DZone contributors are their own.

    THE DZONE NEWSLETTER

    Dev Resources & Solutions Straight to Your Inbox

    Thanks for subscribing!

    Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

    X

    {{ parent.title || parent.header.title}}

    {{ parent.tldr }}

    {{ parent.urlSource.name }}