Flimsy digital ownership

Last Christmas I received a voucher from my employer to watch a film of my choice through the Pathé Thuis, the on-demand service of the major cinema chain. I knew we had the app on our smart tv, but with a Netflix subscription I hadn’t got round to check out a service where you have to pay per view. We still have plenty shelf space of dvd’s we seldom watch. The arthouse offering was not bad at all compared to Netflix, and reasonable at 3 to 4 euros a pop.

Apparently Seinfeld is coming to Netflix, but it won’t stay there indefinitely. Friends will clear the way, as rumour has it.
Continue reading

Never split the difference in Scrum estimations

Never split the difference is a fascinating book by Chris Voss, which has nothing to do with coding or even with software. Voss was once a hostage negotiator for the FBI. The stuff of high-octane Hollywood movies starring Samuel L. Jackson, only for real. Understandably he has since switched to a more lucrative and less stressful career of giving corporate advice and writing said best seller.

Splitting the difference seems a legitimate compromise when the parties can’t agree on their final offer, but in fact everybody gets a bad deal, albeit equally bad. The buyer overpays while the seller is underpaid. The better option would be to walk away. Here’s a mildly amusing footwear example. If you really can’t decide on the black or bron pair, choose the grey pair. Don’t wear one of each. There’s a 50% chance it might rain on our hike. So let’s wear one waterproof boot to be on the safe side.

Continue reading

The definition of what: regular increments of valuable software. That’s all there is to agile.

In agile development we don’t like to specify to the tiniest detail before we begin coding or estimate the cost down to the last euro. It is a pointless exercise because building complex software is like travelling uncharted territory on foot: you cannot tell how hard the journey will be from a reconnaissance flight. Until you get your feet wet you cannot predict how hard it will be or how long it will take. That’s the definition of a complex, adaptive domain. Like the time I decided to climb Table Mountain in Crickhowell (Wales). It looked a lot less steep from our holiday cottage (left photo).

Table Mountain in Crickhowel (Wales)
Continue reading

Most software is not fit for dog food. How do we fix that?

Every so often we hear that developers would do well to use the products they create. You probably know it as the not very appetising inducement to eat your own dog food. Do so and you will gain a better sense of what you’re doing it all for, and for whom. Even cat people can’t argue with the benefits. You don’t even have to enjoy the product; it can be a necessary evil like a tax return app. Be aware though that dogfooding is a mixed blessing, especially when the developers are a bit too passionate about the product. They are not your average users. Make them the sole masters of the product’s destiny and they will only build what tickles their fancy and over-engineer the hell out of it.

Brussels, 2004

That’s why there’s so many WordPress code highlighting plugins: tools made by techies for other techies. As a hobby it makes perfect sense. You can be your own stakeholder, code whatever floats your boat and get kudos from your peers. You can scratch a personal itch and give back to the community, all the while doing what you like. You don’t even have to pretend you’re doing it for selfless reasons.

Continue reading

Artwork for my new site

Over the Christmas holidays I created a new home for my open source projects and articles: Aligilo.com. The name is made-up Esperanto word, meaning something with which to join things. It can be glue if you want. Feel free to stick around.

My wife Sandra drew this cartoon figure ten years ago when I was working a lot with Google Web Toolkit. I removed the GWT logo from the box and repurposed it. These days, with my reading glasses and streaks of grey hair I’m actually a better match. Being a coffee lover as well as an amateur photographer I made coffee-themed photos for each entry. Enjoy!

Continue reading

Failure part 2 – tunnel vision

Yesterday we watched the Netflix documentary The Ripper about Peter Sutcliffe, a.k.a. the Yorkshire Ripper, who was found guilty of thirteen unspeakably violent murders and seven attempts between 1975 and 1980. Last November he succumbed to covid, 76 years old. I am not a particular fan of true crime stories, but it ties in with my previous post about failure

The police authorities failed miserably. The huge workforce dedicated to cracking the case was plagued by tunnel vision, herd mentality and sexist attitudes that frustrated the investigation, costing millions of pounds and probably several lives while looking for the wrong man. At first it was roundly assumed and put about that the killer only targeted prostitutes, giving rise to the callous sentiment that decent women had nothing to fear. It turned out the attacks were in fact indiscriminate. Even more harmful was the misguided attention given to a number of letters and tapes the police received, allegedly recorded by the killer himself, in which he taunted the force for their lack of progress. Dialectologists pinpointed the very pronounced accent to a region in Sunderland. The tapes turned out to be a hoax. Anyway, read the Wikipedia page if you have neither time nor Netflix, and prepare to be amazed.

Former police station in Tilburg
Continue reading

The helpful road to failure

We like success stories. Dished up well and accompanied by a slick Ted-talk they turn into best seller books, heaping success upon success. Tales like that make generous people feel good and jealous people feel miserable. Anyhow, I think we should read more about failure, especially in IT. It has much more to teach us.

Failure is everywhere and the longer you live the more failures you can chalk up. Half of all marriages fail. Most professional actors and musicians fail to make a decent living. I failed my driving test three times. Before his glorious revenge Steve Jobs failed pretty badly as a father and Apple founder first time round. The 1984 Macintosh was a commercial flop. In fact, most products fail. Clever people with a terrific track record can still fail spectacularly. Sometimes their road to failure is documented that we might learn from it.

Margate, October 2012

Dreaming in Code (2007) by Scott Rosenberg is one of such books, and an all-time favourite of mine. Written for a non-technical audience Rosenberg follows the inception and first releases of the open-source Chandler project – not related to Friends, but named after the author Raymond Chandler.

Continue reading

There is no value in story points.

Read the original Dutch post.
How often do we need to hash it out as Scrum practitioners that you shouldn’t translate story points into hourly estimates? Well, often enough to make me wonder whether there isn’t something inherently fishy about this obsession with numbers. Should you now feel the urge to wield the Scrum bible and explain what it says about story points and velocity: the 2020 edition still makes no mention of these concepts. Surprised? The developers who are doing the work are responsible for the sizing is the closest match. Alternatively, there are eighteen variations on the root of adapt-: adaptability, adaptative and adaptation. More than anything the guide stresses value and values: the value that the product represents to stakeholders and end-users, and the values that we should commit to in order to make the process a success.

The added value of a software increment is easy to express in a figure if it directly translates in increased revenue or reduced cost. But it’s never that straightforward. How do you value a better user experience, better service, attractive design, let alone a combination of all these? You can’t, at least not within a single increment. Consider the ways you can reward the people creating that value with more than just a pay check. Is there value in better equipment and more modern technologies when the end user does not see it? How about humane working conditions, instead of an annual death march to make it to the Christmas shipping deadline. The debacle with Cyberpunk 2077 has shown that it is hard to make good on your promise of the coolest game ever, and very easy to ruin your reputation with a shoddy first release.

Continue reading

Scrum story points zijn zinvol maar waardeloos.

This post in English.
Hoe vaak hebben we er als Scrum-beoefenaren niet op gehamerd dat je story points niet mag zien als een ureninschatting? Nou, zo vaak dat ik mij begin af te vragen of er misschien toch iets schort aan die obsessie met punten. Mocht je zoals ik de aanvechting voelen om met het Scrum-bijbeltje te wapperen en eens haarfijn uit te leggen hoe het ook alweer zit met punten: ook in de editie 2020 rept de Scrum guide nergens over velocity of story points en hoe we die horen te interpreteren. Met geen woord. Ook verbaasd? The developers who are doing the work are responsible for the sizing, komt nog het dichtst in de buurt. Daarentegen zijn er wel 18 variaties op aanpassingsvermogen en flexibiliteit: adapt, adaptation, adaptive. Verder gaat het vooral over waarde en waardes: de waarde die het product vertegenwoordigt voor opdrachtgever en gebruikers, en de waardes waar je als individu en organisatie aan hecht om het proces succesvol uit te voeren. 

Continue reading

The obsession with building a better screwdriver

I was ever so excited to join a team working on a major Scala codebase for a suite of in-house reporting tools. My only experience with the language up to that point were self-study, hobby projects and a Coursera course. Two years on and I am mainly doing Java again, at my own request I might add. Has the love affair reached its end? Not entirely, but it has cooled.

There is a pretty big gap between the conceptual soundness of a language and the grim reality of building working software with it. However well designed, it can never be a joy to work in without a stable and extensive support system, starting with the IDE through to testing frameworks, proofing tools, etc. No JVM language can match the range and maturity of the tooling we have for Java, especially when you go beyond mere IDE support.

Continue reading