Skip to content

Latest commit

 

History

History
140 lines (94 loc) · 9.1 KB

File metadata and controls

140 lines (94 loc) · 9.1 KB

DPR: Activities in Service Design and Agile Architecting

Context and Motivation

As responsible software engineers, we do not like to be bossed around. Decentralized decision making and autonomous teams might not be listed explicitly as values in the Agile Manifesto, but are certainly valued and practiced a lot in agile teams and organizations.

Agile does equal anarchy; agile teams actually are quite (self-)disciplined and employ a number of ceremonies (a.k.a. practices). Most of them are collected and commented upon elsewhere, for instance try the Subway Map to Agile Practices and glossary by the Agile Alliance. Here in DPR, we focus on agile architecting and service/API design and collect some of the method elements, tactics, practices, etc. that served us well or that are frequently recommended, for instance in microservices books. These activities consume and produce the artifacts listed in a sibling folder, possibly supported by checklists and templates; they are owned and performed by one or more of the personas and roles also documented in this repository.

One should never forget the first rule of method adoption:

If in doubt, leave it out (or: do not create a big ball of method mud).

Other general hints for all design and modeling activities are:

  • Always write for a particular target audience (stakeholders with concerns) and model purposefully.
  • Follow a "good enough" approach to decision making and documentation.
  • Apply patterns and other reusable assets to reduce risk and cut cost.

Activities Specific to Service/API Design

Particularly relevant for service/API design are:

Activities General Software Engineering/Architecture:

Architectural Analysis

Architectural Synthesis

Architectural Evaluation/Assessments

Both lean/light and full-fledged techniques have been proposed:

Architectural Evolution

  • Architectural Roadmapping, described by Eltjo Poort in an IEEE Software Insights installment
  • Risk-driven prioritization, introduced in George Fairbank's "Just Enough Software Architecture" (@Fairbanks:2010)
  • Thomas Ronzon's Software Retrofit

Stefan Murer's book on "Managed Evolution" lists many more, and the Evolution category in MAP collects patterns for API versioning and life cycle management.

IT Strategy and Enterprise/Program Architecture Work

A number of frameworks and approaches for scaling agile exist, including:

Gregor Hohpe's IT/Software Architect Elevator always is worth a ride to the upper levels (and back).

Tool Support

Many of the activities (techniques and practices, that is) collected in this repository are partially or fully supported by tools; these tools then help produce the output artifacts.

Some of the ones we have contributed to, or work on, are:

More specific information, also about other tools, can be found on the individual pages.

More Information

DPR Metadata

title: "Design Practice Repository (DPR): Activities (Practices, Techniques) Overview"
author: Olaf Zimmermann (ZIO)
date: "03, 17, 2021"
copyright: Olaf Zimmermann, 2020-2024 (unless noted otherwise). All rights reserved.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.