We discuss many resources in the Building Evolutionary Architectures workshops, and we continue to find more tools that fall into our categorization of fitness functions.

Presentations by the Authors

Pat presenting at GOTO conference

Pat presenting at GOTO conference, 2017

Rebecca presenting at XConf EU

Rebecca presenting at XConf EU, 2018

Neal presenting at YOW! conference, 2018

Neal presenting at YOW! conference, 2018

Presentations NOT by the Authors

Allowing for change is especially important when designing your frontend applications, where ever higher user expectations meet the fast-paced JavaScript ecosystem.

In this talk, we will show how the principles of evolutionary architecture can be applied to UI to prioritize changeability. We’ll consider several approaches to making a modern UI application more evolvable, such as the microfrontends pattern, and examine specific “fitness functions” that will keep you and your team honest to your requirements without sacrificing evolvability. We’ll also discuss the tradeoffs you make when you choose a more evolutionary frontend architecture, and provide a framework for thinking about how much future change you’ll need to account for.


  • ArchUnit
    ArchUnit is a free, simple and extensible library for checking the architecture of your Java code using any plain Java unit test framework.

  • CKJM
    The program ckjm calculates Chidamber and Kemerer object-oriented metrics by processing the bytecode of compiled Java files. The program calculates for each class the following six metrics proposed by Chidamber and Kemerer.

    WMC: Weighted methods per class
    DIT: Depth of Inheritance Tree
    NOC: Number of Children
    CBO: Coupling between object classes
    RFC: Response for a Class
    LCOM: Lack of cohesion in methods

  • ESLint
    ESLint is an open source project that provides a pluggable linting utility for JavaScript.

  • JavaNCSS
    Metrics suite for Java.

  • Nagios
    State-of-the-art commercial monitoring tool.

  • NetArchTest
    A fluent API for .Net that can enforce architectural rules in unit tests.

  • Netflix Simian Army
    Tools for keeping your cloud operating in top form. Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.

    A command-line interface which loads web pages and highlights any accessibility issues it finds. Useful for when you want to run a one-off test against a web page.

  • PMD
    An extensible cross-language static code analyzer.

Supported Languages:
Java Server Pages
Maven POM
Salesforce VisualForce

  • SQLFluff The SQL Linter for humans. Fluff is an extensible and modular linter designed to help you write good SQL and catch errors and bad SQL before it hits your database.