From 76e90cef617e1caa5f6eb0d27fc51c154a4f0926 Mon Sep 17 00:00:00 2001 From: Stefan Rotsch Date: Thu, 20 Jun 2024 17:11:32 +0200 Subject: [PATCH] docs: assess fitness functions --- radar/2024-06-01/fitness-functions.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 radar/2024-06-01/fitness-functions.md diff --git a/radar/2024-06-01/fitness-functions.md b/radar/2024-06-01/fitness-functions.md new file mode 100644 index 0000000..cbacb5c --- /dev/null +++ b/radar/2024-06-01/fitness-functions.md @@ -0,0 +1,23 @@ +--- +title: "Fitness Functions" +ring: assess +quadrant: methods-and-patterns +tags: [architecture, ci/cd, quality assurance] +--- + +[Fitness Functions](https://www.thoughtworks.com/insights/articles/fitness-function-driven-development) are a method for guiding software development decisions based on predefined criteria that ensure software health and alignment with desired outcomes. Inspired by evolutionary algorithms, fitness functions evaluate how well a given solution or set of actions meets specified goals, enabling teams to maintain and improve system quality in a continuous and measurable manner. + +### Key Features + +- **Objective Measurement**: Provides quantifiable metrics for evaluating various aspects of software quality and performance. +- **Continuous Monitoring**: Integrates with CI/CD pipelines to continuously assess the system’s fitness against predefined goals. +- **Automated Feedback**: Offers immediate insight and feedback on the impact of code changes, reducing the risk of degradation over time. +- **Customizable Criteria**: Allows teams to define fitness functions tailored to specific project needs and quality attributes. +- **Alignment with Business Goals**: Ensures that technical decisions are aligned with business goals by making trade-offs explicit and measurable. +- **Evolutionary Approach**: Encourages iterative improvement and adaptation, similar to natural selection processes in evolutionary biology. + +[DORA (DevOps Research and Assessment) Metrics](../methods-and-patterns/dora-metrics.html), such as deployment frequency, lead time for changes, mean time to recovery, and change failure rate, provide high-level insights into the overall health and effectiveness of an organization's software delivery practices. By integrating fitness functions into development workflows, teams receive detailed, actionable feedback on specific aspects of their systems, leading to continuous improvement in deployment speed, reliability, and quality. + +By embedding fitness functions into the CI/CD pipeline, teams can ensure that their applications adhere to architectural standards and quality attributes. This proactive approach helps maintain a robust and scalable architecture that provides a solid foundation for the software as it evolves. + +At AOE, we utilize fitness functions to ensure our software systems remain robust, maintainable, and aligned with business goals throughout the development lifecycle.