What is it
Evolutionary Architecture is a software architecture and design technique which favors designing for incremental change over up-front, heavy-weight enterprise architectural designs.
When to use it
We use Evolutionary Architecture as a way of managing Einride's rapid growth, both at the technology level and at the organization level.
Rapid growth means that we are always focusing in on a subset of our long-term scope and long-term vision. By the principle of bulding what we need, not what we might need, we know that the scope our our systems will evolve over time.
Rapid growth also means that we continously onboard new colleagues who bring more experience and deeper expertise to the team. Applying Evolutionary Architecture is a way of ensuring that we can quickly benefit from our team always learning and improving.
How to learn it
Listen to the 15-minute introductory talk to the Building Evolutionary Architectures book, and consider reading the full book for some context and perspective.
Make sure to be talking to your colleagues who are experts in their field (logistics, freight management, fleet optimization, etc) to deepen the team's understanding of the domain, and keep iterating on your domain and system design.