Some time ago, James Bach blogged about quality being dead. At that time I put up a response to that blog. Skip forward two years, and I might have shifted my mind. Asking the data question, what have I seen or heard that led me to this new conclusion? Absolutely worth a full blog entry from my point of view. So, here it is.
First of all I consider myself a bug magnet. I can walk around, and see inconsistencies which point to a possible problem all day long. That said, while becoming conscious about my surrounding, I saw a lot of problems in the past two years – some of them funny, some of them not so much.
One example is the fact that I booked at least twice a flight ticket for the wrong date in the past two months. Yes, that’s right, it might be me getting older, but still, it has just been flights from the Munich airports. On the other hand, I haven’t yet booked a hotel room for the wrong date. So, there might be actually a point that I book flight tickets from Munich airport for the wrong date – but maybe it’s just one of the systems in the back.
The funny thing about this, is that I switched to a different flight ticket provider after I had to rebook my flight in the morning about one hour before getting home. I blamed the first provider for my mistake. Although I switched the provider, I ran into the same problem again. Weird.
Another thing I put up on youtube a few weeks ago. There was a bug in Google Reader. When I try to sort new blogs into a folder, I run into the problem, that the list keeps on scrolling up and down, but I can never get to the right folder where I want to put it in. Here is the full demonstration:
You might think this bug got fixed in the meantime. I recorded this video back a few months. Recently I ran into the same problem again – and if I remember back correctly, I was using Safari instead of Opera this time. Coincidence? I don’t believe in such a thing.
But more weird is my phone. I got an iPhone, and I love it. Initially I was worried about applications taking too much space in memory. So, I ended them from time to time. They kept on working wonderfully. Well, in the end, Apple got this fine review process for their applications, right?
Well, a few weeks back I stopped to kill running applications. After all Apple is aiming for a concept of a program, where you don’t know anymore whether the application ran before or not, right? Well, it seems that I keep on getting crashing apps since then. For example we use yammer in our company to exchange thoughts and expertise between colleagues. They recently introduced a feature that you can now see if someone in your network replied to your message or liked it. They call this “notification”, and there is a “notification” tab in my yammer app.
The funny thing now is that my yammer application gets buggy each time I open this particular tab. It starts with missed yammer messages in the beginning, and ends with a screwed keyboard in the end. You don’t believe me? Well, here is a screenshot from within the application.
You see the keyboard? Just the Eurosign on the keyboard? Is this correct? I don’t think so. It seems to me that there is a memory leak in the application when you open the notification tab, but I don’t have enough data on that, maybe.
But that’s just one application, I hear you sayin’. Well, as I am a blogger, I also use the wordpress application on my iPhone to moderate comments and reply to them. There is a funny thing in that application, which “just” happens if you keep it running rather than shutting it down all the time. As long as you keep on moderating spam comments, you don’t have a problem. You mark the 50 comments, and hit the spam key.
But if you actually approve a comment, something weird happens. I noticed that when some of the folks replied to me by email asking for their missing comment. I had approved their comments while I was at CAST 2011 in August, and moderated some spam comments afterwards. Yeah, their comments were gone. When I realized the problem, I was really puzzled. If you refresh the comments, approve at least one comment, and then moderate the spam, you end up marking the previously approved comments as spam as well, since the checkmark on the approved comment does not get cleared. Right. Took a a day to pin-point.
This list continues endlessly. Especially as I use more and more iPhone application, I notice that there is a multitude of crashes involved. There’s barely an application on my iPhone which hasn’t crashed, yet, and I am merely using these apps, I’m not brute forcing them into problems.
Yes, that’s right. The fanciness of the new shiny world of applications has blinded so many folks on what quality actually is. There are some – very few – exceptions. But they are so rare – so very rare, that I really got sad to call myself software developer, software tester, or even software user.
When I talk to people, I also realize a similar fallacy they ran into. The shiny world of gradle, ivy, maven, Spring, Hibernate, JBoss, Java Generics, Mocking Frameworks, Testing Frameworks, name your devil has led them into a big ball of mud. It’s not only the lack of automated testing that people developing a new development framework appear to lack, it’s also their obliviousness to this topic.
Take an experience from about one year ago. A colleague and I were using the play framework for some pet-project. We searched for a problem, that didn’t make any sense to us. We referenced a variable in some text file, our code provided something for that framework that should work – we thought. After more than two hours we found out that play was instrumenting the code during runtime to keep track of all the local variable names in a function. During a seemingly safe refactoring, we found our model of the world destroyed.
I truly believe this must end. If we want to set our profession up for quality, we have to nurture every occurrence of it. So, if you see something of great value to you, go, spread the word. It’s not too late to spread the word about it, but quality still is an endangered species. So, let’s rescue it. I’m in, how about you?