Parallel Agile -- faster delivery, fewer defects, lower cost
Parallel Agile -- faster delivery, fewer defects, lower cost
by Doug Rosenberg, Barry Boehm, Matt Stephens, Charles Suscheck, Shobha Rani Dhalipathi, and Bo Wang

Why isn't it possible to accelerate software projects by adding staff? In Fred Brooks’ 1975 book The Mythical Man-Month, he declares that “adding more programmers to a late software project makes it later,” and this has proven true over the decades.

Aided by a domain-driven code generator that quickly creates database and API code, Parallel Agile (PA) achieves significant schedule compression using parallelism: as many developers as necessary can independently and concurrently develop the scenarios from initial prototype through production code. Projects can scale by elastic staffing, rather than by stretching schedules for larger development efforts. Schedule compression with a large team of developers working in parallel is analogous to hardware acceleration of compute problems using parallel CPUs.

PA has some similarities with and differences from other Agile approaches. Like most Agile methods, PA "gets to code early" and uses feedback from executable software to drive requirements and design. PA uses technical prototyping as a risk-mitigation strategy, to help sanity-check requirements for feasibility, and to evaluate different technical architectures and technologies.

Unlike many Agile methods, PA does not support "design by refactoring," and it doesn't drive designs from unit tests. Instead, PA uses a minimalist UML-based design approach (Agile/ICONIX) that starts out with a domain model to facilitate communication across the development team, and partitions the system along use case boundaries, which enables parallel development.

The authors have been researching and refining the PA process for several years on multiple test projects that have involved over 200 developers. The book’s example project details the design of one of these test projects, a crowdsourced traffic safety system.

Springer, 2020

buy on amazon

About the Parallel Agile Process

Parallel Agile is a methodology that enables teams to accelerate the delivery of software projects with fewer defects and lower costs.

PA leverages ideas from parallel processing to create an environment where large teams of developers can work together tightly, using automation to coordinate their work and code generation tools to quickly generate working prototypes and incorporate feedback into fast updates.

What does Parallel Agile do for me?
Parallel Agile compresses schedule much like parallel processing compresses compute time.
Sequential Agile Parallel Agile
2-week sprint
2-week sprint
2-week sprint
2-week sprint
Sequential Agile proceeds in a series of 2-week sprints. Bigger projects require more sprints and take longer to complete.
Proof of concept
Minimum Viable Product
Initial Release
Parallel Agile proceeds in a series of three (roughly) month-long development efforts. Bigger projects require more developers, but development time is significantly shortened.
Sequential Agile proceeds in a series of 2-week sprints. Bigger projects require more sprints and take longer to complete.
Parallel Agile proceeds in a series of three (roughly) month-long development efforts. Bigger projects require more developers, but development time is significantly shortened.

Partitioning into use cases enables parallel development. PA applies a mini-spiral model within each use case.

Use cases are developed in parallel, with each use case evolving through the Proof of Concept, MVP, and Optimization phases