Application Design Framework (ADF)

Introduction

Application design phase often stretches into weeks, with non–value-added rework compounding delays. The design process requires integrating multiple use cases into a cohesive system architecture. While designing individual use cases is usually straightforward, combining them introduces exponential architectural complexity. The resulting cognitive load makes it difficult to reconcile conflicting requirements and maintain alignment between use cases and the overall architecture. Without a clear way to sustain this alignment, design cycles expand, requirements are missed, and rework follows.

The Application Design Framework (ADF) helps maintain tight alignment between use cases and architecture through proven, prescriptive guidelines. With ADF, teams can shorten the design phase from weeks to days and avoid non–value-added rework–shipping the right solution faster.

Tenets

  1. Use case-driven. Every decision should be guided by the use case. If it doesn’t serve one, it’s out of scope.
  2. Traceability matters. Every use case should map to architecture, and architecture to code. Anyone should be able to follow the thread.
  3. Architecture first, technology second. Architecture satisfies business and technical requirements; technology implements them. Separate architecture and technology decisions to reduce cognitive load.

Definitions

Application boundary [1]:

Architecture [2][3]:

Component [4]:

Mindset

Application is an ownership boundary.

Application boundary may change over time.

Guidelines

Describe use case (Sales, Marketing, Product) to clarify the problem and define business requirements.

Define architecture (Product, Engineering) to address business and define technical requirements.

Choose technologies (Engineering) to address technical requirements.

Write code (Engineering) to implement business and technical requirements.

Examples

Templates

Ongoing research

References

  1. Martin Fowler - ApplicationBoundary
  2. AWS Well-Architected Framework - Definitions
  3. Neal Ford and Mark Richards - Software Architecture: the Hard Parts
  4. Martin Fowler - SoftwareComponent
  5. Giulia Rossi and Dave Brown - Working backwards: Amazon’s approach to innovation
  6. Martin Fowler - User Story
  7. Gregor Hohpe - The Many Facets of Coupling
  8. Matthew Skelton and Manuel Pais - Team Topologies
  9. AWS Well-Architected Framework - Pillars