A guitar tutor once told me if you learn how to play the guitar you will listen to music a whole new way. I wasn’t convinced; however, after a few months of strumming I believed the statement to be true. Instead of simply chilling out to my favourite tracks I found myself scrutinizing the strumming patterns and chords progressions. I am sure the same is true of software development. If you develop a reasonable level of programming knowledge you begin to look at computer programs in a different light: albeit subconsciously. Be it computer games, applications, iPhone apps or websites, if there is an issue to be found a sharp developer will spot it.
I recently experienced a few examples of how becoming a software programmer has change the way I think.
FIFA 12 bug!
While playing FIFA 12 on the iPad I became rather frustrated with the response of the controls. The players movement is sluggish when performing a sharp turns – it’s just not realistic. And, the AI is inconsistent when passing the ball! On occasion it will pass the ball to a random player, even though you have a player placed in more favourable position. No mater how hard you press the controls in the direction of the player you want to pass to, it still randomly chooses a worse alternative. Furthermore the game includes one or two slightly odd moments. Take the following:
One shoots! The following screen-shot shows the ball is going wide of the goal:
If I spin the camera angle my disappointment is compounded (Definitely wide).:
What? Why is the player jumping for joy?
It’s a miracle. The ball teleports through the net! Goal given. What happened?
This is what’s known as a software bug. In short the test case that determines whether the ball has crossed the line has a flaw!
WordPress – iPhone/iPad app bug
As an author of this Blog I use WordPress and having access to a couple of Apple devices I decided to install the WordPress iPad app. You may have noticed the name of this post is Geek’s Retreat – with an apostrophe. Anyone who has encountered the inner workings of HTML will understand the apostrophe character is classed as a special character. This character is special because it is used in the HTML mark-up syntax; therefore, you cannot use these special characters within your text because the browser will mistake them for mark-up. To inject an apostrophe into the content of a HTML page you must use the HTML code ”’. OK, assuming this is understood you would not expect to see any HTML codes with the iPad app? However, somehow it has sneaked in, or, in other words I’ve spotted another bug:
SkySports football results
Another football related bug. This time the SkySport’s page that shows the scores for the UEFA Champions League. I accessed the page to check the final result of the Read Madrid vs. Bayern Munich which Munich won 3-1 on penalties. The night I checked the scores I left my computer powered on with the browser still running. About 24 hours later I logged onto my machine. It was then that the SkySport’s page informed me that Guatemala had beaten Paraguay in the UEFA Champions League semi-final; however, Bayern Munich had beaten them both one penalties (very odd, 3 teams in one match). Another bug!
Weather iPad app
Another iPad app. The purpose of the app is to display the current whether at any given airport. This app has a few things wrong within a single area. I have highlighted the offending areas:
The highlighted areas show two problems. The first is obvious, in that the text for various parts of data are cropped. As a result of this the data is unreadable. One assumes the Winds section should say at the end “30kts Gusts”. Another flaw is the omission of the pressure field. I have a little bit of knowledge within the aviation field and I know the text “Q1015″ refers to the pressure at the airfield. The app has fallen fowl here as they are expecting the pressure to be record using the America method e.g “A3006″. They are simply ignoring a perfectly acceptable alternative. If you are interest in the decode of the METAR (weather observation) Wikipedia has a nice article here
Software is full of bugs because humans are not perfect! If we could write perfect programs I think Judgement Day would arrive (Terminator reference). The examples highlighted only scratch the surface. What programmers can do is build test scripts for their code to reduce the number of bugs. Software companies can also employee teams of dedicated testers to assist the developers. And what users can do is provide constructive feedback. If you see a problem do not be scared to report it. Most of the big companies have support emails – use it! They might fix your issue. I think the industry has slipped into tolerating bad software which should not be the case. Would we accept the same level of faults with our cars, cookers or televisions? I also think developers can take feedback way too personally! All feedback if good feedback. We should encourage feedback not fear it. If it improves the product it benefits everyone.