Attending the iSAQB® CPSA® Advanced Training in Functional Software Architecture (FUNAR) – Who Should Take The Course and Why?
An Interview With Curator Michael Sperber
Which audience does the module FUNAR address?
The training course is meant for all software architects who are curious about approaches to software architecture that are fundamentally different from traditional OOP-based approaches (and more effective, of course).
What is the relevance of the module for the professional practice of software architects?
That depends: Functional architecture already differs substantially from object-oriented architecture, and it unfolds its full effect only if functional programming languages are used.
Many projects are hostile to or at least skeptical about changes and innovations, especially in Germany. However, in projects and teams that are open to other and particularly effective approaches, there is actually always a way to benefit from functional architecture.
Which skills do software architects acquire from the module, what exactly do they learn in this training course?
First of all, the course teaches basic skills in dealing with immutable data (a cornerstone of functional architecture) and with systematic abstraction to begin with. This includes the typical functional abstraction patterns.
The course then teaches how these techniques can be used for particularly effective domain modeling, especially for the creation of so-called combinator models, which are notably flexible and durable. Furthermore, the training course teaches how functional programming works in the context of Domain-driven Design – the two approaches harmonize quite well. (There are other topics, but these are the most important ones.)
Why should (prospective) software architects participate in such a training course?
Functional architecture comes with several advantages:
- It drastically reduces architectural coupling and thereby ensures better maintainability.
- Functional domain models are more flexible and therefore more durable than typical DDD models.
- Functional architecture makes it easier to define important properties of the software and ensure that the software has those properties.
Can software architects benefit from the training course even if they do not (cannot) use a functional programming language in practice?
At least partially: The essential techniques of combinator modeling, for example, can also be implemented in object-oriented languages. The resulting models also fit seamlessly into an OO context. However, the advanced abstraction techniques taught in the course require the use of a functional language.
Is functional architecture only accessible to highly advanced or “talented” architects?
Functional architecture is accessible to everyone: Functional programming in particular is the basis of very effective beginners’ education in computer science. (It even works for school children.) The bottom line is that functional programming and architecture is even easier than OO.
However, the functional concepts are foreign if you grew up with OO: it’s exhausting at first. The training is therefore usually offered with an optional one-day preliminary course that teaches the most important basics.
You would like to learn more about the CPSA Advanced Level module FUNAR? Please visit the FUNAR module web page.
You would rather find and book a suitable FUNAR training course right away? Then check out our training calendar.
Share this article:
About the Author