I was explaining to my wife yesterday why I might not want a certain contract I was thinking about bidding on. She is not a programmer, but she is a musician, so I explained that being asked to code professionally in PHP would be like being asked to lead a piano concerto on a cheap Casio keyboard. Technically possible but probably it is the instrument you started out on, and now you have moved on to other things.

(For what it’s worth, I do work on projects in PHP as there are some cases where it makes sense or there is a legacy codebase to work with, it’s just not my favourite and does have an unfortunate but not unjustified reputation.)

Anyway, thinking about this tickled me, so if it tickles you, I present If Programming Languages were Musical Instruments...

30th May 2018

This is part two in a series on how Scrum destroyed agile. Starting where we left off last time, one of the problems with Scrum is that product has an owner, the Scrum process itself has a master, but no-one is empowered to advocate for development priorities.

The invention of the two day Scrum master training course is probably one of the worst things Scrum has done to agile...

30th May 2018

Scrum lacks technical craft and fails to compensate for natural organisation tendencies to prioritise short-term product and management priorities. As as result, teams adopting Scrum are generally not getting the benefits agile is meant to provide. Couple that with the fact that it is, de-facto, the only agile methodology in use today, agile as a way of improving software development is being destroyed by Scrum.

(Of course, there are agile teams using Scrum and successfully running good software projects. Unfortunately, they're succeeding largely in spite of Scrum, not because of it.)

In this series, I’ll briefly describe the history of Scrum and agile. I’ll then cover what I see as the three main issues with Scrum: it is too process-oriented; it is too management centric; and it lacks technical craft. I’ll look at where it all went wrong and how Scrum’s own popularity has turned into a cargo-cult of itself. Finally, we’ll have a look at what’s next.

So, without further ado, I present the short, probably incomplete and certainly biased history of Agile and Scrum...

8th May 2018

Rather than trying to exhaustively test every possible path through complex algorithms, with a little thought you can often generate random examples and verify your code handles them correctly.

Ready? Let's go...

19th April 2018