Workshop - Architecture Without an End State workshop
Architecture plans in enterprises tend to resemble late-night infomercials. First, you see a person or system that seems incapable of survival—a situation that can be immediately rectified if you just buy into the product. (One popular infomercial shows incompetent people mangling tomatoes transitioning into Ginsu-wielding sous chefs; the architecture pitch starts with hideous complexity then moves to clean orthogonal box diagrams.) Operators are always standing by.
Real architecture never reaches that blissful end state. Something always interrupts the program: businesses change, technology changes, or funding dries up. What would happen if you did reach the end state, anyway? Is IT in the company done? Of course not.
The truth is that there is no end state. We must all learn to build systems that evolve and grow. We need to stop aiming for the end state and understand that change is continuous. We cannot predict the details, but we can learn the general patterns.
Michael Nygard demonstrates how to design and architect systems that admit change—bending and flexing through time. Using a blend of information architecture, technical architecture, and some process change, Michael walks you through examples of rigid systems to show how to transform them into more maneuverable architecture.
This workshop includes both teaching and hands-on design sessions. Design sessions will be paper and whiteboard work in small groups. You’ll work on real problems drawn from a variety of industries. If you’re a developer or architect working with medium to large architectures and building applications in the context of existing systems or transitioning to new systems, this is the tutorial for you.
Outline/Structure of the Workshop
- Learn how to design systems that can evolve over time in the face of technological and business change
- Understand when the “single system of record” pattern applies and when it does not
- Learn how to combine microservices with legacy systems
- Learn to make your systems glide smoothly from web to mobile to chat apps
- Find new ways to separate concerns for better information hiding
- Learn about ways to isolate information to allow independent change
- Learn how to build systems in simpler pieces that can be recombined and recomposed to enable new business capabilities, all without running afoul of YAGNI
- Know why aiming for the “end state” never works and what to do about it
eveloper or architect working with medium to large architectures and building applications in the context of existing systems or transitioning to new systems
Prerequisites for Attendees
Familiarity with basic architecture principles, such as system boundary and separation of concerns. A laptop with some diagramming software is helpful.