Категории: Все - lean - documentation - agile - architecture

по morten udnæs 15 лет назад

302

Lean Architecture and DCI concepts

The text explores various principles and methodologies for efficient software development, highlighting the importance of Lean and Agile approaches. Lean focuses on thoughtful planning to minimize waste, while Agile emphasizes action and adaptability.

Lean Architecture and DCI concepts

Lean Architecture and DCI concepts

Creating code that follows users mental modelavoids having to make uses cases for every possible variation

First phase

Use case, to organize the timing of responsible decisions
Input to domain model to scope the domain
Screen design to ensure a usable system

Define the problem: The difference betwen current state and the desired state

Documentation is for communication AND to remember perspectives and decisions

Waiting is waste

The hard part of design is the partitioning of a systeminto modules and collections of related APIs

Agile is about doing. Lean is about thinking before doing (to reduce waste)

Rework in design saves costly rework in production
Rework during production is waste

Lean Principles

Software architecture should support the enterprisevalue stream
Continues flow
Code just in time
Everyone has to participate
Focus on long term results

What the system is vs. what the system does

Does relates to functionality
Is relates to form/architecture

We go to the code for what and how, but only the authors or theirdocumentation tell us why

Use case scenarios are implementedas traits/rolemethods/mixins

Lightweigh use cases capturessystem functionality

Domain model can be build in a coupleof weeks using abstract base classes

Design-by-contract gets us closer torunning code even faster

Enage all stakeholders to get a cross-functional team from the start to get insight and be able to defer decisions to the (last) responsible moment

Source code and architecture should reflect the end user mental model of the world