liveBook · Manning

Agile software development

As explained in Collaborative Software Design: How to facilitate domain modeling decisions

Agile software development is an iterative approach to software development that emphasizes collaboration, feedback, adaptability, and incremental delivery.

Agile software development delivers work in smaller increments so users can provide feedback sooner and the team can adapt. Its value depends on collaboration across development and business, not merely on adopting a framework. section 1.1.1 section 1.2.4

BigScreen’s refactoring attempt

BigScreen adopted Agile after years of waterfall delivery, but its interconnected system remained difficult to change. During refactoring, disagreements about architecture, weak communication, and implementation without shared understanding caused tension and extensive rewrites. The team also neglected architecture after an architect left, misreading “no upfront design” as no architectural attention. section 1.1.1 section 1.1.2

Agile can become theater when development teams use Scrum while business hierarchies and the idea-to-production chain retain a waterfall mentality. Faster increments alone do not create shared ownership, meaningful collaboration, or adaptability. section 1.2.4

Figure 1.2 BigScreen’s current software system highlights how the ticketing, back-office, and business logic sections are intertwined, showcasing a clear absence of defined boundaries. This overlap leads to functionalities within the codebase being shared across these blurred lines, complicating efforts to segment and modify the software. Such a setup means that alterations in one area of the system could trigger a domino effect that affects other parts of the system.

Trace how ticketing, back-office functions, and business logic overlap in BigScreen’s system, making changes risky and boundaries difficult to establish. section 1.1.1

How Collaborative Software Design: How to facilitate domain modeling decisions covers it

How deep it goes
Explains incremental delivery, collaboration, and Agile theater through consequences, but stops short of prescribing a specific framework or workflow.
Examples
Uses BigScreen’s refactoring conflict, neglected architecture, interconnected codebase, and delivery-process comparison as teaching examples.
What you can do after
Evaluate whether Agile adoption changes organizational decision-making or merely accelerates development within a waterfall structure.
How it connects
Connects Agile software development with user feedback, collaboration, software architecture, Scrum, and Waterfall development.

Also explained in

Compare how 5 books explain agile software development →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Collaborative Software Design: How to facilitate domain modeling decisions. The section links point to the parts of the book it draws on.