Category Archives: Musing

Software bug causes prisoners’ early release

BBC News reports that 3200 US prisoners were released early over a 13 year period due to a software bug.  It’s hard to fathom how this could have been released in the first place, how it remained undetected for so long, and finally why it’s taken so long to fix.

The bug miscalculated the sentence reductions prisoners in Washington state had received for good behaviour.  It was introduced in 2002 as part of an update that followed a court ruling about applying good behaviour credits.

Ok, we know that there’s always room for mis-interpretation of requirements when developing software, and every program needs some period of user acceptance testing.

The Washington Department of Corrections (DoC) added that it was made aware of the problem in 2012 when the family of one victim found out that the offender was getting out too early.

Huh? It took ten years for someone to notice? The average mis-calculation was 49 days and a maximum of 600 days – and it wasn’t noticed? What sort of testing did they do – surely some worked examples were provided?

Despite this, the faulty software was not corrected until a new IT boss for the DoC was appointed, who realised how serious the problem had become.

This is the crux of the matter – if you’re writing mission-critical software, you have to test accordingly. Here, prisoners released early may have committed further crimes – that’s a hefty penalty that could have been avoided by professional software practices: code reviews, test coverage analysis, user acceptance testing.  Surely some regression data tests existed when they were releasing the upgrade – someone must have signed off that all these differences were fine “because the rules have changed”.  Yes, but not by that much!

Mr Inslee said he had ordered the DoC to fix the software as quickly as possible.   An update that applies the correct formula for calculating sentence cuts is due to be in place by 7 January.

Let’s hope they’ve thoroughly reviewed their test coverage now and that the release goes smoothly.  Also, they should review any other software developed by the same team in that 2002 period, it’s unlikely to be an isolated mistake.

 

Leave a comment

Filed under Musing, Programming

Programming is…

Bruce Dawson described programming as follows:

When I’m describing what I do for a living to non-programmers I sometimes say that I solve puzzles. I solve fascinating puzzles that are different every day, and there’s no answer key, and very often nobody else knows the solution. Whether it’s figuring out why code is slow, or why it is crashing, or how to make code simpler and better, it’s all puzzles, and I love it.

I think that’s a useful point of view.  Whilst programmers need knowledge of some particular programming language and platform, it’s often the ability to solve puzzles that makes the star programmers stand out from the rest.  An average programmer will often make a meal out of a simple task (whether it’s development or testing) because they can’t see an elegant way to a solution.  The best programmers just get on with delivering quality, testing solutions without making a fuss – and they’re having a great time doing what they love!

Leave a comment

Filed under Musing, Programming

Rosetta’s Philae lander – a real personality

Good news that all is on track for Philae to attempt to land on a comet tomorrow. Even better, it seems to have developed a personality:

For some reason, when the lander is powered up, it switches to the back-up computer briefly before changing to the main one. Accomazzo says that this is just part of the spacecraft’s “personality”.

Sounds like something from the Sirius Cybernetics Corporation.

Leave a comment

Filed under Musing, Technology

Usability woes

When working remotely, I am able to log into my desktop machine and work pretty much as if sitting at my desk in the office. Unfortunately, though, whoever wrote the remoting layer thought that “SHIFT+F3” would be an inconspicuous shortcut for logging out immediately, without even a confirmation dialog box.

20140922-093736.jpg

My main applications include Visual Studio and Excel – so I log myself out several times a day when in-the-zone and either searching code or editing functions respectively.

I’ve resorted to taking the key out to avoid the reconnection penalty every time this happens.

Leave a comment

Filed under Musing, Programming

Flow – the secret to happiness?

Interesting TED talk on “Flow”, that sometimes elusive state in which you feel incredibly productive, in which hours fly by and seem like minutes, and when the activity in which you’re engaged is a joy.

20140914-215717.jpg
It appears that when Sony was founded, they got the idea of flow and set up the company to best achieve it for their engineers. This slide is also interesting:

20140914-215810.jpg
It claims that flow is only possible for high skills, high challenge tasks. That would explain why I regularly achieve a flow state for harder development tasks that require an extensive skillset, yet a more mundane period of bug fixing is less challenging and so is unlikely to lead to flow.

1 Comment

Filed under Musing

Apple Watch – the new old watch

Apple have finally announced the Apple Watch. Based on the publicity photographs and rushed reviews that have been published so far, I’m a fan and will probably buy one. But it struck me that the grand new innovation, the Digital Crown, is hardly ground-breaking – my current Tissot watch has had it for ten years!
Tissot classicApple Watch

You see, the functions on my classic Tissot watch are entirely driven by the bezel. As well as the analogue time, it has a stopwatch, timer and digital date/time display.
The bezel acts in several modes:

  • Rotate slowly to change hours
  • Rotate quickly to change minutes
  • Press to start/stop timer or stopwatch
  • Pull out to change the time

What’s really clever is that, when the digital functions are hidden, the watch looks completely analogue. And the bezel reacts according to mode – it only bleeps when you press in stopwatch/timer mode, and ignores the press otherwise.

So whilst the Apple Watch is my next watch, my classic Tissot watch was there first.

1 Comment

Filed under Musing, Technology

Birthday Paradox

Nice write-up of The Birthday Paradox on the BBC today.

It’s puzzling but true that in any group of 23 people there is a 50% chance that two share a birthday.

Some bright spark noticed that, with exactly 23 players in each World Cup 2014 squad, here was a topical example with which to test the theory, by which at least half of the 32 squads are expected to have a shared birthday.

Using the birthdays from Fifa’s official squad lists as of Tuesday 10 June, it turns out there are indeed 16 teams with at least one shared birthday – 50% of the total.

Leave a comment

Filed under Musing