When not blogging Konstantin Kudryashov is a prominent public speaker, original organiser of BDD London meetups, the creator of Behat, Mink, co-creator of PhpSpec have lead the Behaviour-Driven Development (BDD) practice at Inviqa and is currently helping Insurance Tech startup teams at Kamet Ventures as CTO in Residence. As a communication coach, he has helped teams in many organisations bridge the gap between business and IT using Agile processes and development practices like Scrum, Kanban, BDD, TDD, Collaborative Product Ownership and Deliberate Discovery.
(Talk, Main Conference)
A good software architecture helps partition complicated problems into divided parts, supports domain knowledge and provides abstractions that help us reason about our code. The architecture enables product evolution and growth, establishing critical constraints that support, guide and protect us.
Knowing the crucial impact software architecture has, it is easy to fall into the trap of thinking that it is somehow more important than other aspects of delivery. It comes naturally to think that due to its importance, architecture is exempt from accepted norms, such as incremental delivery. But it isn't so.
In this talk, we will walk through the evolution of a single, closed source software product by looking at its Architecture Decision Records over time. In doing so, we would together explore how software architecture not only constraints but evolves along with the knowledge of the team and understanding of a domain.
We will start at ADR #1, where we decided to use an off-the-shelf framework and ORM and will trace the evolution of that product architecture into an event-based medical processing engine. One, small, incremental ADR at a time.