Academy Training

Strategic Software Architecture

0.5 - 1 days
Remote
Remote

Challenges

Design of distributed applications need to be done wisely. Where Domain-Driven Design focuses on the tactical design of an application in one bounded context, strategic software architecture tackles the high-level design of distributed large-scale applications and enterprise architectures.

It is a pattern family focused on using and defining Bounded Context and thinking explicitly of the different relationship patterns and the required "translation" of similar "concepts" between the bounded contexts. It is helpful to argue and find a good strategic architecture in alignment with the requirements, the domain and by considering Conway's Law. A context map and a common conceptional core help to understand and improve the overall strategic picture. Especially with a microservice architecture in mind, it is important to define and connect services following the low coupling - high cohesion principles by identifying fitting bounded contexts.

Goal

This training provides an overview (high-level) of patterns and strategies in enterprise software architecture and development:

  • building distributed (microservice oriented) software
  • developing an enterprise architecture
  • thinking about how to “slice the elephant” and how to find useful bounded contexts for your software solution

Target group

  • Software Developers
  • Software Architects
  • QA Engineers
  • Product Owners

Feedback from participants of previous trainings on who can benefit from this training:

  • "Anyone working in software projects."
  • "Actually, every developer, tester and product owner should attend this training."
  • "Everyone close to software development with no prior knowledge about software architecture."

Content

1. Introduction

  • What is "good architecture"?
  • Strategical vs. tactical

2. Software Architecture Basics

  • Designing for Humans (Cognitive Psychology)
  • Organization vs. team structure (Conway's Law)
  • Software Qualities (“ilities”)
  • Resulting common principles for architecture

3. Strategic Domain Driven Design

  • DDD <-> SDDD​​​​​​
  • Bounded Contexts
  • Relationship Patterns
  • Flight Levels and Context Mapping

4. Architecture Styles

  • Enterprise Application Architecture 
  • Layered Architecture / "Pace Layered" Architecture
  • SOA Style
  • Microservices / Self Contained Systems
  • Pitfalls and Conclusion

5. Integration Patterns

  • Short history of integration techniques
  • Pros and Cons
    • Files
    • SharedDB
    • RPC
    • Event-Driven (Messaging)

6. Distributed Systems and Resilience Patterns

  • Distributed Systems
  • CAP Theorem
  • Resilience Patterns

7. Architecture Documentation

  • ADRs
  • Visualizations
  • arc42 Template

8. Summary

Organizational information

  • Duration: 1 day
  • Language: English or German, depending on preference
  • Location: Online or on site, depending on preference
  • Group size: from 5 to 10 participants
What other people say

Voices from participants

Christian Rathemacher

CEO

 /

weltenbauer. SE

‘What is strategic software architecture?’ Daniel Pötzinger and Stefan Rotsch explained the answer to us in an excellent workshop at the AOE Academy. The training is highly recommended to anyone who wants to know more about domain-driven design, Conway's law or the coupling of software modules.

Our Trainer

Daniel Pötzinger
Daniel Pötzinger has many years of experience in the development and architecture of Enterprise Web Applications. He has worked with many great self-organized agile teams and knows how collaboration and mutual inspiration – together with the right technologies and patterns – makes software projects successful and solving challenges fun. He is also an active member of various Open Source communities and has gained extensive experience in building and designing performance-critical applications in an Enterprise environment. In addition, Daniel has comprehensive knowledge about how to establish DevOps and Continuous Delivery practices in IT organizations. At AOE, Daniel has provided consulting services and helped implement more than 100 Enterprise projects for such renowned clients as Deutsche Telekom, congstar, Rovio, Cisco Webex, QVC and VMware. In addition, he continues to oversee the development of AOE products such as Searchperience, a sophisticated Enterprise search and recommendation engine and Flamingo, a scalable frontend framework for headless microservice architectures and modern commerce applications.
Stefan Rotsch
As a software architect at AOE, Stefan Rotsch works out suitable structures and solution concepts with the development teams and accompanies their implementation.

Our Academy expert

We are happy to create your individual training

Cordula Kartheininger

Cordula Kartheininger

HR & AOE Academy Strategy Lead