Architectural Fitness Function

The beginning, in this post, I will describe the idea of fitness functions and how it will be used to categorize the content of this site.

Go Back
Weekly Update

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.

Building Evolutionary Architectures

Some of the "-ilities":
accessibilitycredibilitymodifiability
accountabilitydependabilitymodularity
accuracydeployabilityportability
adaptabilitydiscoverabilityrecoverability
administrabilitydistributabilityrelevance
affordabilitydurabilityresilience
auditabilityeffectivenessrobustness
availabilityefficiencyscalability
compatibilityfailure transparencytestability
configurabilityflexibilityusability

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.

Resources:

Previous Posts

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.

Reliability

Week 4: The RateLimit pattern

Read more
Reliability

Week 03: The retry pattern

Read more
Reliability

Week 02: Bulkhead, managing concurrent requests

Read more

Contact

Fell free to contact me and say hi!

© Tiarê Balbi Bonamini 2020. All right reserved

Please, rotate your phone