Friday, April 8, 2022

Product configuration complexity

 I was once told a story about a software company that existed in the '90s and worked, among other things, on a GUI library that was meant to be so deeply configurable and customizable as no other GUI library in the world.

If they had a slider being built, they wanted the slider to work not just linearly from value A to B, but they wanted the developers to be able to assign a function (not necessarily linear) to the slider, so that when the user moves the slider, the resulting value comes from the function.

And the same with any other control they wanted to built. There was so much complexity involved that the company had never actually shipped the library.

This example is on the high end spectrum of making a product configurable. Let's take a look at a simplified picture of the spectrum.

Thursday, October 22, 2020

Let's now group the similar ones together - run away from that meeting!

After attending really many retrospectives, meetings related to lean initiatives, process improvements, etc, etc. I developed an observation I want to share with you. This is an anti-pattern.

On many of these occasions, after asking the participants to put their thoughts on sticky notes (and it can be about anything, problems, ideas, improvements, etc.) the meeting facilitator says: OK, so now that we have read all the sticky notes, I guess maybe let's group similar ones together.

This is exactly the moment when I say to myself (and this is also my advice to you): run away from that meeting!

Sunday, April 28, 2019

Code Kata: the card game of war

The card game of war is a very old, but still popular game. I used to play it when I was a child. The game is very suitable for small kids, because it has simple rules and the players don't need to make any decisions - it's enough to follow the rules. In this article, we will try to go through the process of modeling the game of war as a computer program. And as we will see later, the modeling may have some very practical uses. Let's start.

The game is usually played with 24 cards of four colors. The cards are as follows, next to each card there is a single letter that will represent the card for us.
  • Ace - A
  • King - K
  • Queen - Q
  • Jack - J
  • 10 - T
  • 9 - N
The colors do not matter in the basic version of the game. The 24 cards are distributed randomly between two players. Each player starts with 12 cards. The player who loses all the cards loses the game. Main steps of the game will be executed by the function:

nextMove (cardsA, cardsB)

See also