Saturday, 17. March 2007
How Cool is That?
The latest version of Parallels Desktop for Mac comes with a feature called Coherence. It allows you to have MS Windows applications to be embedded in your standard Mac OS X desktop. Here you see Apple‘s Keynote and Pages peacefully side by side with MS Visual Studio 2005.

No, I'm not being sponsored by Parallels...

... link

Saturday, 17. February 2007
Coming of(f) Age
It's a fact that we all are getting older, some of us are even getting old. Nevertheless, it came as a surprise to me that in my current consulting and coaching engagements I usually am the team's number two in the (decreasing) age rank. And well yes there really are in fact and absolutely developers and testers who have a full decade or more to go to reach my blossoming seniority.

David J Anderson talks about New Rules for Old Geeks and makes a very valid point that work environments and expectations have to change when workers reach their best years. I no longer want to spent my nights programming or removing bugs. I need a full night's sleep to smooth the wrinkles. And I want to spent more than just the weekend with my family. To be frank, I never wanted to work five days in a row in the first place.

... link

Monday, 25. December 2006
Things U Never Wantend To Known in the First Place
Thanks to Eberhard it's my turn to tell you three things about me that hardly anyone knows - for a reason:
  • My programming career started exactly 25 yrs ago at the tender age of 12 when I was offered a Commodore VIC-20 for Xmas. Read on Wikipedia the interesting story of its German name...
  • I'm still waiting for my Mac Book Pro to arrive. It's the first Mac I (hopefully) will own in my life; that's by itself a fact to be ashamed of but I never owned a NEXT either, nor could I call an AMIGA mine. My hardware career went straight from VIC-20 to Atari ST to Atari TT to PC. That's pathetic, isn't it?
  • I'm sure you wouldn't want to know the looks of my bathrobe IF you had the choice. But sadly you haven't:
I'm supposed to hand on the baton to three other bloggers. It's my personal Xmas present to the blogosphere that I spare all but one: Achim just got back from holidays and thus he deserves to be the next.

... link

Monday, 9. October 2006
The Janitor's Configuration Dilemma
The right amount of configurability in software has always bothered me. Most of the time when using off-the-shelf software I've wished for LESS options to choose from, for BETTER DEFAULT configurations and for UNDERSTANDABLE DOCUMENTATION of the product's configurability. Most of the time when using programming libraries and frameworks I've wished for a special hook to extend or change a certain facet of the lib's behaviour that didn't fit my needs.

In the first case I've often decided to not use a product anymore, judging it too complex for my simple purposes. In the latter case, however, I almost always found a way around a missing extensibility hook - provided the library was doing a good job in the first place. So I personally prefer to have less configurational flexibility or - even better - to have all the flexibility you can think of but it's being hidden from me unless I really need it. A library that requires me to change properties in a few-hundred-line XML file before it can do even the simplest things is useless to my plain and already overloaded mind. Since I'm not the only one who thinks so, tools like Ruby on Rails and its countless clones (e.g. Grails) are spreading and flourishing. One of the fundamentals behind those tools is convention over configuration which is supposed to make standard usage as easy as possible - and in many cases really lives up to this promise.

The trigger to write this entry did not come from software, though. It was the electric lighting in the gym where I play basketball occasionally. During summer holidays all lights, from gym over changing rooms to lavatories, have been connected to an intelligent and allegedly power-saving central control system which is supposed to switch lights off if - and only if - a room is not being used. Installing all those motion detectors and control units was certainly no minor investement. That's what happened when we were playing basketball - well, trying to play:
  • We used the one and only light switch in the gym to bring up the overheads - bright and shining.
  • Immediately brightness slowly went down to approach complete darkness within three minutes.
  • Sometimes a motion detector decided to relight the lights after a few seconds; sometimes one of us had to use the switch again to start over.
Of course, we contacted the janitor at once only to learn that "he didn't know YET how to configure the system correctly". He did try for two weeks, supported by the responsible technicians, only to achieve a slightly better situation: The lights didn't go out any more - if we ran around sufficiently - but they were hardly bright enough to see from one end of the hall to the other. And yes, one problem couldn't be tackled at all: The missing motion detectors at the urinals offered you the challenge of a dark piss within 10 seconds after entering the room.

Yesterday. Competition day. Surprise. All lights on and bright. What I found out is that the janitor has discovered the one configuration option he's sufficiently comfortable with: Switching light control from AUTOMATIC to MANUAL.

I hope you could spot the teachings hidden in this involved story:
Getting configurability right is difficult but important for user acceptance.
Less is more (most of the time).
Have reasonable configuration defaults.
There might be more than one type of target audience for your configuration features.

... link

Wednesday, 6. September 2006
Everything. Everyone. Everywhere. Ends.
I've stolen the title from one of the best TV shows ever: Six Feet Under. Although "Everything ... Ends" sounds like a truism, the way and speed at which things sometimes do end surprises me...

Being an IT consultant is sometimes hard. Customers often expect the utmost flexibility as for the time you invest in your current project -- flexibility being a euphemism for "working as much as necessary at the necessary time". The recurring problem is that the exact terms of necessary are never being spelled out, let alone negotiated with the consultant. It's taken for granted that the daily rate - despite having eight hours per day in the contract - comprises anything and everything and your soul on top.

Well, you don't have to give in to the customer's pressure by obvious expectation, but I wonder how many customers will "set you free" regardless of your competence and your contributions to the project if your availability time-wise cannot keep-up with the expectance. It happened to me recently -- although this particular customer would rate my contributions differently, I guess.

In the aftermath of this incident I tried to rethink and re-evaluate what makes my personal work life balance sane and sustainable. The result of this careful consideration was probably as surprising to me as it was to my employer: I quit my job more or less overnight.

Summary: I am available for software development and alike.

... link

Friday, 28. April 2006
Farewell, My Lovely (*)
My not so private tech life has been rather quite during the last weeks. That's mainly due to the fact that I'm in the midst of changing my employer, i.e., I'm on holidays with the old one and haven't yet started work for the new one.

Leaving a company and its people behind after seven successful years is quite an emotional experience for me and it made me wonder why I had decided to join andrena objects in 1999. Thinking this over revealed my tiny little "pattern" of how to decide on the right employer: I had chosen the previous jobs because I wanted to find a place where I'd be taught how to do things right. Although I got to know really smart people from whom I learned tons of useful stuff, all in all, no one succeeded in showing me how to do software development - as a profession - right.

With andrena I had changed my tactics: andrena seemed to be a place where I could try out ideas of my own and see if they would work. This was definitely a much better approach which eventually provided me with at least some basic insights into how software development - as a profession - can be done right. Thank you, andrena!

Hopefully, this approach will pay off with 100world as well.

(*) book title by Raymond Chandler, definitely one of my favourite American writers.

... link

Sunday, 26. March 2006
Crossing a Line
Today it's not about software. Today it's about violence. My violence.

Do you have kids? Imagine yourself sitting on a bench in a public children's playground watching your 5-year-old offspring climb whatever seems climable to him. There's also a bunch of older and unattended children who are constantly stretching the limits of what you consider to be the appropriate kind of game on such a place, like throwing around pointed sticks and shooting each other off with a leather ball from a one-meter-distance. You remain perfectly quiet and peaceful; after all, you're not in charge of the lot nor the playground.

Dog poo enters the scene. Dog poo that's being transferred from the bushes outside the ground onto the ground by the supposed-to-be leader of the group. It's being thrown around on sticks and distributed over the place.

Now you start feeling responsible. Neither do you want to step into flavoursome excrements nor do you want to watch toddlers feeding each other sh..! So you get up, walk over to the boy-in-charge and request (well, tell) him to clear away what he so boldly dared to procure. He's very clear about not being in favour of your wish and continues with whatever he did before you disturbed him.

Here is my question: What is a proportionate means to show a youth the limits of publicly accepted behaviour and when do you cross the line towards violence against someone so much weaker. Would you grab the boy's ball announcing that you're gonna give it back as soon as cleaning up will be finished? Is it okay to rub the ball into the stinking mud to inflict upon the boy what he was willing to inflict on others? Perhaps you would leave the playground including your son and the ball - committing minor theft - just handing the boy a note where his parents can contact you?

To be frank, I don't have anything close to the right answer. From hindsight, though, it is obvious to me that I definitely had stepped beyond proportionate sanction when I found myself struggling with a 10-year-old who was clinging to my bag because it contained his ball. Eventually, I gave in when a man watching the scene threatened to call the police since it was his "duty to act when a kid is obviously suffering."

Well, I've felt baffled ever since about the discrepancy between acting responsibly and acting in a disproportionate and violent manner. Even though distorting Paul Watzlawick's famous sentence, I believe that one cannot not be violent - not when living in a human society, that is.

So maybe all that is a little bit about software development, too. I can remember times when my intention to pursue a allegedly good goal, i.e. being a responsible developer or team lead or project manager, made me act in ways not compatible with the most important rule of agile software development "People over Process". Disregarding and disrespecting the humans involved in our projects is violence.


... link