Architecture with Agility with Kevlin Henney
Masterclass Topics:
- Software Architecture
- The scope of architecture
- Significance of design decisions
- Architectural knowledge
- Reactive design
- Development Process
- Value–driven versus risk–driven approaches
- Sequential versus iterative and incremental
- Visualising progress
- Deming's Plan–Do–Study–Act (PDSA) cycle
- Agility
- Lean thinking
- Architectural Expression
- Vision and communication
- Architectural viewpoints and properties
- Use cases and user stories
- Documentation, tests and code
- Models and Modelling
- System context
- Development Practice
- Feedback
- Exploration and prototyping
- Reviews
- Testing as learning
- Test-driven development (TDD)
- Sufficiency versus overdesign
- Simplicity and usability
- Patterns
- Recurring designs
- Context dependency
- Lone patterns
- Combining patterns
- Pattern stories and pattern languages
- Pattern examples and counterexamples
- Architectural Styles
- Execution Architecture
- Optimisation and pessimisation
- Cross–cutting concerns and emergent qualities
- Physical considerations
- The effect of concurrency and distribution
- Dependency Management
- Partitioning and organisation
- External dependencies
- The dependency horizon
- Partitioning with respect to uncertainty and change
- Refactoring and Re-engineering
- Continuous improvement
- Kinds of changes
- Decremental development
- Smells and technical debt
- Refactoring, re-engineering and rewriting