Why Should I attend the CPSA® Advanced Training IMPROVE (Evolution and Improvement of Software Architectures)?
An Interview With Curator Gernot Starke
What is behind the CPSA Advanced Level module IMPROVE, one of 17 trainings that participants of the Advanced Level can choose from? The CPSA Advanced Level is the second step within the iSAQB’s multi-level CPSA program (Certified Professional for Software Architecture) after the Foundation Level.
Gernot Starke, iSAQB member and curator of the Advanced module IMPROVE, answers some of the most important questions concerning this Advanced Level training in respect of target group, relevance, and learning outcome in this exclusive interview.
Am I the right participant? Which audience does the module IMPROVE address?
Simply said: Anybody working on an existing IT system in development, architecture, or technical management roles.
As a matter of fact, most (if not all) existing systems have accumulated a number of typical problems over time, often coined technical debt (it would be better to call these problems organizational and technical debt, but that’s another topic). Let me give a few examples:
- Lack of maintainability due to unnecessary complexity
- Brittleness, changes in one part of the systems have bad and surprising consequences elsewhere
- Use of outdated technology or third-party products (e.g., still using Java‑6 based frameworks in 2022)
- Instability, mediocre performance, security risks, waste of resources, or similar kinds of quality problems
- Issues within the development process, like bad or vague requirements, missing automation
How is the IMPROVE training course relevant for my professional practice as a software architect or developer?
The name of this training (IMPROVE) clearly states the intention: You will learn how to systematically get rid of existing problems and how to improve the situation.
As a rough guess, approximately 75% of work is spent on existing IT systems, and only 25% on creating something new from scratch. IMPROVE addresses this 75% majority – which is often neglected in formal or basic education.
Therefore, the approaches taught and discussed in IMPROVE trainings will be relevant for every IT professional, from architects and technical management to development and test.
Which skills do I acquire from this module, what exactly do I learn in this training course?
The process of systematically improving any situation consists of three fundamental steps:
- Methodically assess the situation, get an overview of the existing problems. Please note the plural here: Usually we have a multitude of problems, not a single one only. Participants will learn about analysis techniques to identify different types or categories of problems.
- Evaluate and prioritize these problems to bring them in a reasonable order. You will learn how to find out whether a problem is worth solving from both technical and economical perspectives. That will often be tricky – as different stakeholders will have different perceptions on these problems. One person’s problem might be the other person’s feature. This evaluation part of IMPROVE helps to convince other stakeholders (like management).
- Only after analyzing and evaluating problems should you begin to systematically improve by solving the most important and pressing problems first. IMPROVE trainings will equip you with a spectrum of typical approaches and practices, e.g., for re-structuring systems, updating outdated technologies, improving automation.
Optional aspects of IMPROVE trainings include risk management or planning techniques (so you can, for example, re-structure your system while still delivering new features).
How is IMPROVE related to classical software engineering and development practices?
Classical software engineering concentrates on creating new systems from scratch without having to care for (large) existing code bases and other severe technical and organizational restrictions.
Many existing coding and architectural patterns and practices assume a fresh start – and therefore fall short in practice where the burden of existing legacy makes application of standard principles (like loose coupling, clean code, separation of concerns, and other fundamentals) really difficult.
IMPROVE combines existing practices and approaches, is completely tool- and vendor-agnostic. It works with all kinds of systems, from embedded, real-time, information, and web systems to data warehouse.
It draws from the established open-source (architecture improvement method) aim42.
You would like to learn more about the CPSA Advanced Level module IMPROVE? Please visit the IMPROVE module web page.
You would rather find and book a suitable IMPROVE training course right away? Then check out our training calendar.
Share this article:
About the Author