Embracing agile development doesn’t mean forgoing architecture. Whether accidental or intentional, every system has an architecture regardless of whether it was put in place by a nominated architect or if it emerged from the decisions of a team. All too often the focus of architecture is centred on a specific set of platform technologies. This focus can be dangerous as it does not highlight all the concerns an architecture should address. Moreover, it addresses only one aspect of the skill set an architect should possess.
Architecture with Agility introduces a broad curriculum for modern software architects. It explores development process models, architectural styles, requirements techniques, sufficient modelling techniques, design patterns and testing practices.
Who should attend
This course is primarily aimed at software architects, lead and senior developers, as well as testers looking to both broaden and sharpen their skills in the disciplines touched on by software architecture, not just specific technologies
The course covers a wide range of topics through a number of practical exercises, with plenty of time dedicated to group discussion.
What you will learn:
• The relationship between development process and architecture
• The roles and failure modes of testing, modelling and technology platforms
• Different architectural styles and design patterns
• How to transform product vision into architecture
• Future-proofing your architecture, and accounting for uncertainty
• How to ground your architecture and avoid overdesign
What is Agile Architecture?
The scope of architecture
Significance of design decisions
Value–driven versus risk–driven approaches
Sequential versus iterative and incremental
Deming’s Plan–Do–Study–Act (PDSA) cycle
Foundations of Good Architecture
Vision and communication
Architectural viewpoints and properties
Use cases and user stories
Documentation, tests and code
Models and Modelling
Exploration and prototyping
Testing as learning
Test-driven development (TDD)
Sufficiency versus overdesign
Simplicity and usability
Pattern stories and pattern languages
Pattern examples and counterexamples
Optimisation and pessimisation
Cross–cutting concerns and emergent qualities
The effect of concurrency and distribution
Lasting Architecture or Architecture in The Long Run
Partitioning and organisation
External dependencies and the dependency horizon
Partitioning with respect to uncertainty and change
Kinds of changes
Refactoring and Re-engineering
Smells and technical debt
Define scope of software architecture
Explore interaction of interruption of and progress
Identify consequences of intentional and accidental design decisions in attendee projects
List risks and challenges in actual and example projects
This course has no set prerequisites however experience working in an agile environment is required to get the most out of this course.
- Duration: 2 days
- Training language: English
Need a customized workshop? Contact us and we’ll adapt the content as required.