Application Design Framework (ADF)

Purpose

Reduce lead time by bridging product-to-engineering gaps.

Definitions

Application boundary [1]:

Architecture [2][3]:

Component [4]:

Mindset

Application is an ownership boundary.

Application boundary should evolve with organizational and software changes.

Guidelines

Describe use case (Sales, Marketing, Product) to clarify problem and solution.

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

Choose technologies (Engineering) to address technical requirements.

Write stories (Product, Engineering) to scope implementation.

Create one or more repositories and a single pipeline per application (Engineering) to reduce blast radius and increase delivery performance.

Organize resources configuration and business logic code by application components (Engineering) to align architecture with code.

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. Matthew Skelton - Designing organizations for responsiveness
  6. Gregor Hohpe - The Many Facets of Coupling
  7. AWS Well-Architected Framework - Pillars