Architectural Thinking
Duration: 5 days
Description:
When programmers are promoted to architects, organizations often lose a great programmer and gain a terrible architect. In this course, we teach a software engineer how to become an architect. It is also a great course for architects to learn about the latest architectural patterns and processes.
Objectives:
-
Recognize and understand the various aspects of IT architectures
-
Be able to recognize, understand and use the most common architectural patterns
-
Effectively document IT architectures
-
Be able to identify the various customers of an IT architecture
-
Understand how to analyze architectural assets
-
Apply an effective methodology for evolving architectures
Audience
Architects and software developers.
Outline
Introduction
-
What is an IT Architecture?
-
Architectural categories
-
What makes a good architecture?
-
Software processes and the architecture business cycle
-
Where do architectures come from?
-
Typical architectural goals
Traits of a Good Architect
-
Technical Leadership
-
Breath of Knowledge
-
Know What You Don’t Know
-
Presentation of Architecture
-
Domain Knowledge
-
Managing Politics
-
Negotiation Skills
-
Becoming a Visionary
The Architectural Development Process
-
Reference process
-
How to validate?
-
How to evolve?
-
How to start?
-
Some older frameworks (RUP, TOGAF, DOGAF, Zachman)
-
Agile development
-
Agile and architecture
-
Architect Elevator
Architectural views
-
The Stakeholders
-
What are views?
-
IEEE 1471-2000
-
How to select views?
-
Commonly used views
-
The C4 method of visualizing architecture
Documenting architecture
-
Why notation?
-
UML 2.0 and architectural descriptions
-
Is UML enough?
-
Other notations
-
A documentation template
Requirements and Architecture
-
The requirements view
-
Ensuring continuity in architecture
-
Documentation of requirements
-
Validation of architecture against functional requirements
Commonly used Viewpoints
-
Business Viewpoint
-
Business Domain Viewpoint
-
Design Viewpoint
-
Integration Viewpoint
-
Reuse Viewpoint
-
Scalability Viewpoint
-
Security Viewpoint
-
Risk Viewpoint
-
Maintainability Viewpoint
Architectural Patterns
-
From monoliths to services
-
From SOA to Microservices
-
From Framework to Platforms
-
From Objects to Functions and Why
-
Domain Driven Design
-
Lambda Architecture
-
Event-Sourcing
-
Command Query Responsibility Segregation (CQRS)
-
Categories of patterns
-
Patterns versus idioms
-
U/I Integration Patterns (MVC, MVP, MVVP, etc)
-
Blackboard
-
Disruptor
Architectural assets
-
What is an Asset?
-
Asset management
-
Reuse perspective
Future and Opportunities
-
Containers and Kubernetes
-
What is Big Data?
-
Challenges in Distributed Computing
-
Machine Learning and AI
-
From Cloud to Edge Computing