Wednesday, July 23, 2025

Big Challenges of Event Storming Big Picture

Event Storming is a powerful technique that helps you learn a lot, but I always emphasize — both in my daily work and in the trainings I conductc — that you need to ensure there is a return on investment in everything you do. That’s why I want to remind you of a few things you should keep in mind as a workshop facilitator, so you don’t end up with just an entertaining session that delivers little value.

Thursday, July 17, 2025

So… Which Event Goes First?

How to start?

Last time, we walked through the "enforcing timeline" step of Big Picture Event Storming. To begin, we need to choose the first event — but a simple "Let's start" is easier said than done. Let’s explore a few different approaches for deciding which event (or events) we should start with, along with their respective pros and cons.

All approaches can be divided into two categories:

  • Close collaboration — everyone works together all the time.

  • Working in silos — people work alone or in smaller groups and merge their outcomes later.

Monday, July 7, 2025

Event Storming Big Picture — How to enforce the Timeline?

We have completed the first step of our workshop. The chaotic exploration and following discussion allowed us to visualize a wealth of information: events, hot spots, and opportunities. We are starting to align our understanding of concepts and terminology.

Before moving to the next step — enforcing the timeline — let’s briefly revisit what we have produced so far:

You may also want to remind yourself of the high-level requirements.

Now that we know where we stand, let’s see how we can use the outcome from the previous sessions.

Thursday, June 5, 2025

The AI Productivity Trap: More Code, Less Thought?

 Can the quality of code degrade much faster because, with AI, new engineers may have fewer opportunities to practice and learn? But what about experienced engineers? Could we become so overwhelmed by the volume of code to review that we start becoming sloppy?

Thursday, May 29, 2025

What Running Your Application Can Tell You About Its Quality?

I mostly work with long-lived applications that undergo continuous modification. Evaluating their quality by simply glancing at the code would be rather naive—there are multiple dimensions to consider for a more comprehensive assessment. Of course, code quality matters, but there are several other checks I perform. Today, I want to share a subset of those checks—focused specifically on application execution—and what insights they can offer.

Tuesday, May 20, 2025

Do You Understand the Debt You Have to Pay?

I was fortunate to start my career with people who truly cared about code quality. Early on, I learned why this matters and how continuous attention to quality positively impacts customer satisfaction. This experience made it natural for me to improve legacy code and constantly seek further enhancements.

However, at the beginning of my journey, my perspective was narrow—I saw only the code. So, my efforts focused solely on refactoring. Fast forward to today, I've learned that there are many more ways to improve software. There are also several strategies you can explore to choose the right approach for your situation.

Friday, May 2, 2025

Thursday, April 10, 2025

Why Your Brilliant Ideas Fall Flat (And How to Fix It)

We all know the drill: refactoring makes our code easier to understand, static analysis points out complex areas and code smells, tests help us track and improve our code's coverage, and Domain-Driven Design lets us build code that directly reflects the business rules. Sounds logical, right? Yet, we often find it tough to convince managers, product owners, and other stakeholders of the value in these practices. What's even more puzzling is that we usually have no problem getting fellow developers on board.

Tuesday, April 1, 2025

When 'Best Practices' Bite You

I know it's a cliché, but there's no silver bullet. Is refactoring always worth it? No. Is Test-Driven Development always beneficial? Of course not. Should you always add test scenarios to cover every known gap? No. Should automated tests be your goal in every project? Again, no.

Don't get me wrong, I'm far from advocating against these solutions. In fact, I recommend quite the opposite; you should have a compelling reason not to use them. And trust me, your project is likely not as unique as you think. In most cases, developers' arguments against these practices are excuses, not justifications.

However, we should give each decision a moment of reflection and assess whether the benefits truly outweigh the costs. Even your favorite approaches can increase costs and slow down implementation at best, or render it unprofitable at worst.

Friday, March 28, 2025

Wednesday, March 26, 2025

Dealing with legacy is more than the right architecture

So, picture this: you're stuck working on this old, massive monolith, and for years, it's the same old story – we gotta fix this, 'cause delivery's crawling, and keeping developers happy (or even hiring new ones!) is a nightmare.

Friday, January 24, 2025

Friday, January 17, 2025