Agile Architecture Fundamentals
Is agile architecture the next step in your professional life, making you wonder what the architect role is and what it takes? Or do you already feel you need to add more structure to your current work as an architect?
Agile Architecture Fundamentals course will:
- Deepen your understanding of how to work as an architect, and of the fundamentals in architecture work
- Explain what an architect’s role is and what skills it takes
- Teach you how to produce architecture from requirements, and to build a Solution-architecture design from the ground up
- Stay technology-neutral, avoiding solutions tied to a particular programming language or environment.
- Developers, modelers, and analysts, who want to understand the big picture
- Architects new to the role, who want to get a basic understanding of how to work
- Experienced architects who want to add more structure to how they work.
Basic UML experience is preferable, although not required, since diagrams in the course use UML.
Experience as a developer, or similar roles in the IT field, is also preferable.
Architecture experience is optional, because both experienced and newly appointed architects get useful information from the course.
- What is architecture, and why do we need it?
Basic process of architecture
- What an architect needs to know
- Agile: architecture, architecture process, architecture documents and models
- Key principles of an agile architect
- Modeling and JBGE (“lagom bra” in Swedish)
Enterprise, Solution/Software, System Architect
- What is an Architect and what do they do?
EA in a nutshell
- Align to long-term goals and enterprise strategy
- An enterprise architect’s templates and frameworks: TOGAF, Zachmann
- High-level functional requirements, quality attributes, ranking quality attributes in an architecture proposal
- Advise decisions on buy-rent-build, and on component sourcing
- Use Case/User Story map, layered components with interfaces, sequence diagrams, first-cut Solution Architecture document
- Lay the table for the devs, advise lead dev and configuration manager on development environment, continuous-build setup, dev guidelines, testing, and other practical points
- Deployment, HW/MW environment
- Tools and procedures - for operations, housekeeping & system administration and maintenance, support, physical setup, load balancing, caching.
Day 2 – A first-cut Solution architecture
Step 1 - Architecturally significant requirements
- Start with high level functional requirements
- Find quality attributes - Quality Attribute Workshop, and/or interview stakeholders
- Rank quality attributes
- Exercise - HFR, derive quality requirements to get stakeholder feedback
Step 2 - Solution Architecture
- From step 1, how should system be designed
- Architecture patterns versus tactics
- Information and integration, relational (ACID) versus noSQL (BASE), the CAP tradeoff, normalization and O-R mapping decisions (Make 1 to 1, Roll up, Roll down)
- Variability mechanisms, per binding time
- Exercises: Use Case/User Story map, component-and-layer diagram with interfaces, sequence diagram and scenarios
Step 3 - System Architecture
- Deployment structure, dev guidelines and basic how-to's & tooling
- High-level class diagram within components/subcomponents
- Exercise: deployment diagram (time permitting)
Step 4 - Implementation
Step 5 – Deployment
Architecture from a knowledge perspective
- Individual: learning, in and for professional life
- Enterprise-wide: knowledge management to balance know-how, IT tools, and funding