Practical Evolutionary Design Masterclass

Evolve your code in a natural way and satisfy the business needs with an iterative and incremental approach

This hands-on, practical advanced workshop is aimed to improve the knowledge of experienced programmers on how to evolve a software system. It is a practical workshop, with coding exercises and discussions around design options.

Evolutionary Design is the practice of growing a system in a natural way, by adding the minimum amount of code to satisfy the business needs in an iterative and incremental approach. When done right, the code structure changes continuously to optimize for change, thus allowing a constant speed of development for longer periods of time.

Why Attend

Attend this workshop to learn how to:

  • Evolve a system exactly on the current needs while keeping in mind the possible changes.
  • Use Patterns and Guidelines of system evolution in a natural way
  • Understand risks of taking smaller or bigger steps in the evolution of a system

Who Should Attend

Programmers with at least 3 years experience with Unit Testing and at least 1 year experience with Test Driven Development on a daily basis

Practical Details

  • Language: English
  • Experiential, hands-on, interactive online learning with practical examples
  • Participants will be awarded a Mozaic Works certificate of completion

This Learning Program is Available on Demand


    • Intro about Evolutionary Design
    • History of Design, Test Driven Development and Evolutionary Design
    • Design Focus: optimize for changeability
    • Exercise: Identify the risk of change
    • Schools of TDD: Classicist, Mockist. Is there a battle?
    • Exercise: Classicist TDD
    • Deductive vs Inductive Evolutionary Design
    • Exercise: Mockist TDD
    • Normalize, Optimize, Maximize Growth
    • Discussion: Patterns of evolving a software system
    • Taking Baby Steps – The Software Design Dimension
    • Exercise: Take only one design decision at a time
    • Entry point. From where to start evolving a system?
    • Exercise: choose several entry points and check the implementation difference
    • Four Elements of Simple Design
    • Exercise: Focus on refactoring
    • Feedback & Retrospective

    More details and full agenda here


    • Very good knowledge of unit testing, refactoring
    • Experience with applying Software Design concepts, principles, and guidelines
    • Practical knowledge of Test Driven Development

    What’s next?

    • Organize internal group practice sessions to solidify and level your team knowledge about Evolutionary Design.
    • Schedule a few Hands-on Training on the Job sessions with the trainer so that you will apply the concepts in production.

    Meet Your Trainers

    Adrian Bolboaca

    VP of Innovation, Senior Trainer at Mozaic Works

    With more than 16 years of international experience in the world of software and transformations, Adrian shares about himself: I want to help my clients improve their business. I was helped by my professors, colleagues and mentors to continuously improve. Whenever I write code I focus on reducing domain complexity to obtain robust, maintainable software. The continuous improvement paradigm is important for the people I work with and for myself; this is why I like helping people, teams and businesses to become more adaptable and reach their goals. About Adi International hands-on experience in product & software development for more than 16 years in small and large companies, with customers from Germany, Switzerland, Finland, Sweden, Netherlands, Romania, Italy, France Experienced…

    More about Adrian Bolboaca >
      Your Cart
      Your cart is empty
        Apply Coupon
        Available Coupons
        individualcspo102022 Get 87.00 off
        Unavailable Coupons
        aniscppeurope2022 Get 20.00 off
        Scroll to Top