ICAgile (ICP-ASD): Evolving Architecture and Design

Agile methodologies embrace change, and system design and architecture must often evolve as well. This course will teach you concepts, patterns, and approaches that help systems adapt to change while ensuring architectural requirements are met.
Course info
Level
Intermediate
Updated
Jun 25, 2021
Duration
1h 16m
Table of contents
Description
Course info
Level
Intermediate
Updated
Jun 25, 2021
Duration
1h 16m
Description

Most software systems will be exposed to unexpected change in many dimensions over their lifespan. Architectural aspects of a system can be hard to change once implemented, so how can a system’s architecture accommodate change? In this course, ICAgile (ICP-ASD): Evolving Architecture and Design, you’ll learn fundamental software engineering concepts, patterns, and approaches that affect a system’s adaptability. First, you'll discover how to apply measurement and automation to aid a system’s adaptability. Next, you'll also see how to ensure important architectural goals. Finally, you learn how constraints continue to be met as the system changes. When you’re finished with this course, you’ll have an understanding of how architectures can be made more responsive to changing needs and environments.

About the author
About the author

Jim Weaver is a software developer and mentor with a love for small teams, light-weight processes, and close interaction with customers.

More from the author
Building CICD Pipelines with Atlassian Bamboo
Intermediate
1h 53m
Feb 1, 2021
Getting Started with Atlassian Bamboo
Intermediate
1h 36m
Nov 9, 2020
More courses by Jim Weaver
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi. I'm Jim Weaver, and I'm a software developer who's spent decades working with teams to build complex software systems in many industries. Quite a few of those systems were in use with features being added to them regularly for 10 years or more. When systems last that long, which, of course you hope they will, adopting them to changes in technology, the business environment, and unanticipated feature sets can be very challenging. In this course, we'll learn ways to help build in evolvability into systems so that they can better adapt to changes over time. We'll learn commonly used architectural patterns along with their strengths and weaknesses with respect to accommodating change. We'll learn ways to integrate architectural work and planning with feature work, how to take advantage of design patterns in code, and discuss key design principles that can help build flexible systems. We'll even discuss how to decide on the most important architectural characteristics of your system and measure those characteristics as the code evolves to determine if changes make a system better or worse with regards to those characteristics. By the end of this course, you'll be familiar with common architectural patterns and design principles and have a good idea as to how to guide the evolution of your software systems.