Slow tests can help you find a way to deliver value sooner

Test execution time can tell you a lot about design of your service. If you have a bunch of domain logic in the parts of the service where it shouldn’t be (controllers, repositories, external gateways or any adapter of that sort), your tests have to spin up a mock MVC or embedded database or stub service in order to test it. The more logic you have in these parts of the app, the more tests you’ll have against them, the slower the test suite.

»
Author's profile picture Dragan Stepanović

Cut the batch size instead of increasing WIP

When faced with pressure, teams should cut the batch size instead of pulling in more stuff and increasing the WIP (as is most often the case).

»
Author's profile picture Dragan Stepanović

Most of the time is spent waiting in queues, not processing

»
Author's profile picture Dragan Stepanović

Having problems with system reliability?

Try with more aggressive timeouts, use circuit breakers and bulkheads.

»
Author's profile picture Dragan Stepanović

Build quality in by reducing inventory

Reducing inventory accelerates the feedback, so THE way to build quality in is to reduce the inventory and thus shorten the feedback loop.

»
Author's profile picture Dragan Stepanović

High demand and low predictability incentivizes the system for big batches

Same scene in Berlin U-Bahn (metro) this morning.

»
Author's profile picture Dragan Stepanović

#NoEvents

In systems with very short feedback loops there are almost no events. Everything seems to be boring. The longer the feedback loop, the more pressure builds up with time elapsed, the greater the sense of relief and achievement this produces on emotional level when the feedback loop is closed (marking an event that has just happened in the system). Ironically enough, watching for moments of relief and achievement says a lot about existence of events that are too big, which in turn reflects the existence of too long feedback loops.

»
Author's profile picture Dragan Stepanović

Enabling constraint for incremental development

Committing code very often and deploying to production with every commit is enabling constraint for getting better at incremental development, one of the most overlooked skills in software development.

»
Author's profile picture Dragan Stepanović

3 powerful questions when discussing a solution

Three very powerful questions to keep in mind when discussing a solution:

»
Author's profile picture Dragan Stepanović

Organizations with a lack of psychological safety are incentivized for big batches

Let me unwrap that.

»
Author's profile picture Dragan Stepanović