I'm best known as the "design geek" who invented Responsibility-Driven Design and the xDriven meme (think TDD, BDD, DDD..). I'm keen on learning and sharing design heuristics, patterns and practices for architecting and reducing risk and improving quality on agile projects and programs. I'm a slow jogger... if anyone is interested in an early morning slow jog, it'd be fun to meet and go on a run.
Agile teams embrace a “whole team” approach and incremental delivery of system functionality. This requires changes to the ways architects traditionally work. Instead of delivering a fully defined architecture at the beginning, the architecture continues to evolve and be refined as new functionality is defined and delivered. An agile architect engages in activities that explicitly support the agile values of teamwork, collaboration, and constant learning.
This hands-on workshop introduces techniques, patterns and practices for the definition, delivery, communication and refinement of a system’s architecture for agile projects or programs. The focus is on useful techniques and their practical application. We'll spend as much time
1. What is agile architecture? How is it different? What roles do architects play?
Design values, principles, practices, and myths
2. Practices for making architectural requirements visible
Agile landing zones, roadmaps, architecture on the backlog
3. Architecting on agile projects
Incremental architecture, sharing architecture responsibility, stewardship, architecture spikes
4. System qualities
Quality Attribute Scenarios, System quality-related acceptance criteria, System quality checklists and pause points, Monitoring system qualities
5. Agile ways to communicate architecture
Separating permanent from just-in-time documentation
Informal and formal views
Decision records, principles, and design recipes
Sketching visions and views of your architecture
A heuristic is something we try in an attempt to make forward progress in solving or understanding a design problem with no absolute guarantee of success.We all use design heuristics (even if we haven’t learned how to articulate them) to discover, understand, explore, create, or modify our designs. Heuristics can even guide our use of other heuristics and determine our attitude and behavior.
Come to this hands-on session to try out practical techniques for distilling your design heuristics (so you can explore and explain them to others); learn ways to identify competing heuristics;evaluate shiny new heuristics you may read or hear about; and grow your ability to explain your heuristics to others.