Mar 282011
 

Today I hear the Apple iPhone has been bitten by yet another bug causing alarms to go off at the wrong time. This is hardly the first time that Apple has had a problem with it’s IOS Clock application. And every time Apple rushes out a “fix” that supposedly stops the problem.

It’s now blatantly obvious that Apple is rushing out “workarounds” and not spending any time on proper fixes here. I mean come on guys, a software clock is hardly rocket science. You shouldn’t be having multiple related problems like this.

What is almost certainly happening here, is that Apple management are accepting quick fixes from the engineers, but ignoring their requests to spend more resources on properly fixing the application. Odd as it may seem, the Clock application was probably originally written by one of Apple’s least experienced engineers – it is the kind of application farmed off to the new guy who has just arrived from University.

Now that is usually fine – Notes works well enough – but in some cases you end up with an application that is riddled with inexplicable bugs and Clock’s time related bugs are inexplicable in the sense that Clock should be using APIs to do this which are ancient and robust in the extreme. This sort of problem is commonly found in the kind of code that is overly complex, inscrutable, and makes far too little use of APIs.

What Apple’s engineers have probably done is ask for time to ‘refactor’ the code. What this means is basically :-

  1. Ripping out code that implements functions that have been implemented in a library somewhere. Novice programmers often write code that implements a function that has already been written. The programmers writing the library function usually have a greater incentive to get their code right.
  2. Ripping out and replacing the worst of the inscrutable code.
  3. Shuffling around and improving the documentation.

Unfortunately when an engineer mentions the word “refactor”, poor managers think “unproductive” (or in the worst case don’t understand and don’t ask). You wouldn’t have thought that Apple was riddled with poor managers in charge of their software engineers, but perhaps they are. This is a really bad sign for Apple (and Apple customers) – all of their products rely on good software engineering, and if they can’t get a Clock application right, you have to wonder how soon the rest of their code will collapse around our ears.

Apple – it’s time to do something serious. The Clock is ticking …

(sorry)