Category Archives: Software

Whatever has to do directly with software: Architecture, implementation techniques, patterns etc.

The truth about the truth, and why it matters for software development

Ever wondered why there is so much friction between software developers and product managers? I wouldn’t claim to have found the philosopher’s stone, though I’d offer the following partial solution, partly rooted in philosophy. In a nutshell: they are using different types of truth, and once these two are distinguished consciously, everything becomes a lot easier.

Continue reading The truth about the truth, and why it matters for software development

Three types of bad design decisions

A long time ago, I had to think about architecture trade-offs and design decisions when building widely adopted frameworks. Surely you’d tell me that one just shouldn’t do such trade-offs, but in a corporate world that may or may not be an option.
At that time, it appeared to me that there are three types of bad design decisions (also known as work-arounds), and they mostly differ in their cost, and how that cost scales. So far, in every discussion I was told that it’s trivial. Still, it’s usually not observed.
Continue reading Three types of bad design decisions

The importance of respect in the business of software

I found a reference to the article “Opinion: The unspoken truth about managing geeks“.

The reference is from Awasu’s “Anti-stupidity“. Thanks for drawing my attention to it!

Thanks to both your articles, I have nothing to add.

Hmmm… there’s always something to add, so how about this: The IT geniuses I’ve had the good fortune to meet all behave like that. But with IT becoming more of a profession and less of a vocation, I see first signs of IT pros turning “normal”. I don’t like it. Respect is – for all people involved – a better currency than credit.

I’ve been fiddling with the notion of trust, especially in distributed teams, for quite a while now, but respect is something that matters as much. I guess that – keeping honest respect in mind – even the quote “Unlike in many industries, the fight in most IT groups is in how to get things done, not how to avoid work. IT pros will self-organize, disrupt and subvert in the name of accomplishing work…” is not correct: I believe where mutual, honest respect is handled well, it will lead anybody to accomplishing their best and a little more. Which in turn tells us a bit about “most industries”.

“Thinking Product”

The other day, a friend gave his parting presentation titled “Thinking Product!”. One really nice metaphor he used was: Making standard software is, in many ways, like making cognac:

  • First, we try to bring the essence of market demand into the product, along the entire value chain – very much like good cognac brings the essence of the grapes through the distillery.
  • It’s the essence of the market (not just the wishes of one individual customer) that we are trying to realize – very much like no cognac fan is looking for the taste of a grape – that can be achieved by eating the grapes individually (or making custom development, respectively)
  • Eventually, when the time comes, cognac is sold by emotion, not because the company has the best chemical processing equipment. In the same way, we shouldn’t sell the how the software was made but the benefit it brings.

One may like brandy or not, but I do like this example.