Yes, I’m a sinner
0I am sure that by now you have heard about Steve Jobs and his premature death. Here’s something you probably haven’t heard about.
Dennis Ritchie died this week. You probably never heard of him. I never heard of him until today, showing once again that I’m guilty of the developer sin #3. And the sad thing about it is that Steve Jobs might not have become the person we know if it weren’t for Dennis Ritchie.
How come? Wikipedia sheds some light:
Dennis MacAlistair Ritchie (September 9, 1941 – October 8, 2011), commonly known by his username dmr, was an American computer scientist notable for developing C and for having influence on other programming languages, as well as operating systems such as Multics and UNIX.
MacOS and Linux derive from Unix. They are mostly written in C. Either of those might not exist if it weren’t for Dennis Ritchie.
I can understand why the public wouldn’t know the names of great software engineers. I don’t understand how we, software developers, allow ourselves to not know their names, lives and principles. I don’t understand how we allow ourselves to forget history and why we have no heroes.
There’s still a hope: maybe I‘m the only one who didn’t know him. Maybe I need to learn history. Maybe I need heroes.
Somehow, I doubt it.
UNIX is very simple, it just needs a genius to understand its simplicity.
C is quirky, flawed, and an enormous success
– Dennis Ritchie
Passion Moves the World
0Something about special people always moves me. That something is passion.
Steve Jobs was from the beginning in the middle of a revolution that completely changed the world. At that time, it took real courage and burning passion to push for ideas that most people didn’t understand – and yet everyone uses today.
I admire him for keeping the passion alive over the years. His push for quality inspires me. I watch his keynotes because of how he talked.
Most people think of Apple when they think of him. I am not one of their fans, and I believe Steve Jobs created something even better than Apple. He was the artisan who unleashed the creative people of Pixar to create wonderful, touching animated movies: “Finding Nemo”, “Ratatouille” and “Wall-E”, to name just some of my favourites. I for one am very grateful for his gift.
He is an inspiration for me, even though he left us too early. I know something he had moves many other people.
That something is passion.
We don’t get a chance to do that many things, and every one should be really excellent.
–Steve Jobs
The 7 Sins of Software Developers
7I’m trying to assemble a list of sins for software developers. Ideally 7, since, well, this is the normal number of sins one would expect.
I’ve come up with the list below. It is by no means final, and hopefully I can get enough feedback to improve it greatly.
Some caveats:
I don’t say that all software developers exercise all the time all these sins. Just that most software developers are guilty of at least some of them at least sometime
A few yeas back, I was guilty as charged on all 7 sins. I still find myself guilty many times of at least 3.
Anyway, here it is:
We, software developers, suffer from the following 7 sins:
We are not dependable
1.1. We ship with bugs
We (think that we) are perfect and have nothing more to learn
We don’t learn (or forget) our history
We don’t value our experienced peers
We develop a high tolerance to pain
We don’t manage time effectively
We don’t take enough care of personal health
Anything to add, remove, fight for or against? Please let me know in the comments.
Games and Me
0Last night, my friend Felix asked me for an article for No Time To Play, and since I owe him and this time I knew I can do it, I started thinking about games once again and my history with playing. And I thought about sharing with you as much as I can in a blog post. So, this is it: my (incomplete and far from final) story with games.
I used to be quite a gamer. I was playing around 2-3 hours a day on average, and I had 5-6 hours sessions at times. I loved it. I was escaping to alternate worlds, exploring different situations and having a wonderful feeling whenever I was winning.
Not anymore. Now, when I play games from time to time I can’t help myself analyzing them. I see most games as repetitive, dull, without substance. Maybe I learned too much about how my brain works. Maybe I’ve seen more of the real life and games seem artificial. Or maybe games are not what they used to be.
Read the rest here.
Information based backlog prioritizing
0The general rule for prioritizing the backlog is that you do it based on business value. From the business perspective, this makes a lot of sense: you maximize the ROI by doing first the things that create the most value in the context of your product, be it monetary or non-monetary (e.g. number of visitors on the website, number of registered users etc). You define the objectives during the release planning and then you make sure that you’re going in the right direction.
The second level of prioritizing happens during the sprint planning meeting. The team looks at each story and tries to see if the story is ready-ready, meaning if the Product Owner says it’s ready for the team and if the team thinks it’s ready to start. So actually the highest business value is not useful at this point anymore; instead, there’s something else.
It’s about information.
The business value is a very good indicator for which stories should the Product Owner work on next. However, the team will waste a lot of time if they start to work on stories that are not ready for development, and potentially be unable to finish them. Doing this also creates a high variation in velocity, since the learning time is different for each story.
So, when is a story ready-ready?
And the best answer I came up with until now is:
When all the questions related to “what are we doing”, except for the trivial ones, have been answered
Here are some examples of questions that you need to look for:
- Why would the user need this?
- What happens if the user does [action]?
- What if the user goes through [another screen]?
Here are some examples of trivial questions:
- What color should the button be?
- What style should the text have?
These last questions are easy to implement during the development because they require very small changes.
So, when prioritizing your backlog, take into account that you will use the information based prioritizing as well, not only the business value.

