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ć

Bounded information space and local optimizations

Actually, problem with silos is that by removing broader context in which they operate, people tend to locally optimize, which almost never produces overall outcomes that we initially wanted to achieve.

»
Author's profile picture Dragan Stepanović

Why can't we release what we have now?

Instead of asking: “When is all this going to be done?”, why don’t we ask: “Why can’t we release what we have now?”.

»
Author's profile picture Dragan Stepanović

Correlation between number of hand offs and the need to visualize work

I tend to think that there’s a correlation between the number of hand-offs and the need to visualize current work. The more hand-offs we have, the more there’s a need to answer the question: “where or with whom is this thing currently sitting with?”.

»
Author's profile picture Dragan Stepanović

Be careful what you optimize for, cause you just might get it

“Tell me how you measure me, and I will tell you how I will behave” – Eliyahu M. Goldratt

»
Author's profile picture Dragan Stepanović

Pain with Feature Flags as a feedback tool

In case you’re doing Trunk Based Development (and you should be doing it) you already know or have heard that Feature Flags are a form of technical debt. In fact, some teams have so many difficulties with this introduced technical debt that they “lose trust” in Trunk Based Development and fallback to Feature Branching. The important thing here to realize is that this is actually a decisive point in the development.

»
Author's profile picture Dragan Stepanović

Minimizing Consistency Boundary with Event Sourcing

Imagine you have a system for managing customer subscriptions of your SaaS product. Your customer can be a company and can have multiple licenses he can use with the subscription he payed for. Customer also wants to be able to assign and unassign those licenses to his employees. Also, customer wants to be able to see how many unused licenses are available for a given subscription and how many licenses in total are used (across different subscriptions that he has payed for).

»
Author's profile picture Dragan Stepanović