Session
Evolutionary Design By Changing Existing Behavior Bit By Bit
“Embrace Change”, says eXtreme Programming. Avoid big upfront design they said. What it means is to start experimenting with the knowledge we have at the time. To choose a potential solution (to a specific opportunity), and start running experiments towards it.
When we do this, we very likely will learn that our earlier assumptions were not 100% accurate. What this means is that we might see that:
- some parts of the codebase is suboptimal,
- database structure is not supporting us the way we would wish, or - we are sending wrong data in our events / commands.
No worries, because in the end, we need to live in the changing world - with evolving codebase. And if we live this assumption, we better learn how to:
- do evolutionary design without breaking changes in production.
- change the internal structure bit by bit in a way that every change is deployable to production with no breaking changes and
- to do all above with not introducing bugs.
In this talk, Aki will introduce possible strategies for such changes. One such strategy he has used successfully in many projects and situations is ‘expand-migrate-contract’ and he will show how this strategy is fractal, in that it’s usable in small scale (a function), in database migrations and all the way to behavior changes of event-driven microservices.
first public delivery, and contains real code examples, supported with drawings and visuals
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top