Last week I attended the optionalconference.org event that was again a great opportunity to meet Agile-minded people and hear about lots of interesting and useful stuff. Clearly the biggest highlights were the keynote speech by Mary Poppendieck and the 30 minutes I could spend later on talking to her, first 1 on 1, and later in an ever growing group of people.
The speech was a funky combination of talking about scaling organizations (probably this was the part that she was “ordered” to talk about), and some really cutting edge topics around Continuous Delivery and DevOps.
In our 1 on 1 coffee-break discussion of course she emphasized how pull-based Lean systems are much better than having backlogs and sophisticated planning activities. This one was not really surprising, given that she “invented” Lean Software Development. The interesting part was, however, when she started to talk about databases. In her theory, big central databases (no matter how fast and efficient or “distributed” they are) are bad, because they enforce tight coupling of business logic functions built on top of them. In the era of microservices, you can react to customer demand of new functionality (“pull”) fast enough only if your services don’t have to be integrated into a big system all the time, but they can work quite independently. Of course data integrity should be kept, and for that, eventual consistency mechanisms exist.
So no matter how good DevOps you have, if your architecture is too complex, it can be the other (dark) side of the Continuous Delivery coin.