We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Agile and Architecture: a meeting of the undead - Einar Høst - NDC Oslo 2024
Discover how Agile and Architecture complement each other in modern software development. Key insights on team autonomy, sustainable systems, and managing change effectively.
-
Both Agile and Architecture are important but shouldn’t be seen as opposing forces - they address different aspects of software development
-
Architecture decisions should be team-oriented and owned by the development teams rather than isolated architects. Architecture is too important to be left to architects alone
-
Changes come from multiple sources (technology, business requirements, team composition) and systems need built-in capacity to handle necessary changes while minimizing exposure to accidental changes
-
Knowledge transfer should be continuous through practices like pair/mob programming rather than relying on documentation or single experts
-
Teams need true autonomy (including budget control) to be effective - protective “terrariums” that isolate teams are counterproductive long-term
-
Direct communication with stakeholders and users is critical - feedback through intermediaries weakens the feedback loop
-
Simplicity should be prioritized - avoid unnecessary dependencies, frameworks and sophistication that don’t directly solve the core problem
-
Architecture should be:
- Fit for purpose
- Understandable from the inside
- Observable from the outside
- Aligned with team concerns and capabilities
-
Building sustainable “cyborg” systems requires both technical excellence and human factors - code alone is not sufficient
-
Focus on necessary vs accidental changes - protect capacity for handling essential changes by minimizing exposure to accidental ones through careful dependency management
-
Consider decommissioning costs upfront - plan for how systems can be replaced or removed