This year I am re-structuring the way I am guiding my studies instead of focusing my time in different areas. I will group them in Fitness Functions, but before I get there, let's take a step back and review what fitness functions are.
Fitness Functions are used in a Genetic algorithm to assess how close a design solution is to meet a set of aims, but the intention to use those functions here didn't come precisely from this definition. It came from the book "Building Evolutionary Architectures by Rebecca Parsons, Neal Ford, Patrick Kua" and their description is the one that I genuinely believe to be the most relevant to describe areas of Software Architecture.
An architectural fitness function provides an objective integrity assessment of some architectural characteristic(s), by Rebecca Parsons, Neal Ford, Patrick Kua
One of the main aspects of the fitness function is to protect the architectural characteristics required by a system. The specific architectural requirements diverge significantly across systems and organizations, based on business drivers, technical capabilities, and a host of other factors. Some software requires heightened security; others require significant throughput or low latency, whereas some might need to be more resilient to failure. These considerations form the "-ilities" (or system qualities) that architects care about. Conceptually, an architectural fitness function embodies a protection mechanism for the "-ilities" of a given system.
|Some of the "-ilities":|
See more here
I strongly recommend everyone to read this book. The fitness function is just the point of the iceberg.
From next week I will start with resilience, where I will dig in on techniques to increase the resilience of your software and how to monitor it.
In this section, I will include things that I have been studying or problems that I had to fix. The main goal is to share what I have learned.