This session included Architecture with the related topic “Documentation on Agile Teams”
Architecture
Technical debt: price paid for previous actions (e.g. hacks, no unit test, hasty design decisions)
- Big Picture
- Think Design
- Do What Works (and keep it simple)
- Discipline & Execution
Architecture Meetings
Additional meetings outside the “iterations” used to plan architectural work.
Bit picture + right team => can product good design + refactoring/polishing
Emergent Architecture
Designs made as you implement will converge if the right decisions are made.
Develop vertical slices (thin lines) early in project to exercise all key architectural blocks.
Requires discipline!
Design Patterns & Ubiquitous Language
Should be underpinnings of system design.
Simple Design
Focus on the simplest solution that works now.
Loose coupling between classes. (Tight coupling leads to technical debt, but too much loose coupling can lead to overly generalized code).
Enables future improvements/expansions
Architecture Workflow

Product vs. Project
Product issues focus on long-term success of the product and project issues focus on show term issues typically to keep customers or internal stakeholders happy.
Conflict between these two perspectives often leads to technical debt.
- Must have discipline to write clean, simple code
- Product owner must be able to present a clear view – honestly
- Team must push back and challenge product owner for the best long term outcomes