Is This Really a Top Priority?

As a country we are currently facing billions of pounds worth of cuts, cuts in local services and funding, and as part of that thousands of redundancies for staff across the country including one hundred locally, and what does Eric Pickles (@ericpickles) choose to launch a crusade on? Not the damaging effects of widespread cuts to communities across the country, no, he launches a crusade over unnecessary roadsigns, railings and advertising hoardings.

Now admittedly there are quite a few examples, Flickr have a group with a few gems, indeed the BBC has today highlighted a few including one just down the road from us where Wokingham Borough Council Highways department have, rather than replace an out of date sign, just stuck a new, bigger sign in front of the old one. Messy, but I guess it saved a bob or two, and the council is of course under pressure due to the swinging cuts coming down from central government.

There are numerous, serious problems facing this country – should unnecessary road signs really be a top priority for the Secretary of State for Communities and Local Government?

Replace the Replace

I grabbed this screenshot during an online conversation about some of the more bizarre coding people have seen that came about as a result of the ongoing nasty surprises Phil Winstanley (@plip) keeps turning up in his current work.

Replace the ReplaceThis picture however shows some code that used to be in one of our systems, but was swiftly coded out when we found it. It was written by a contractor who amongst other things claimed to have worked with Microsoft writing parts of the .Net Framework.

Looking at this, if you’re a .Net Framework user you’d be forgiven for thinking that he didn’t have anything to do with the string classes, however one of his other regular complaints was how inefficient parts of the .Net Framework were, hence why he needed to spend time rewriting stuff that was already there! We could find no evidence to indicate that this function was any faster than the built in string.Replace, and since having this was a confusion and maintenance overhead it was removed.

Aside from the function being unnecessary there are a couple of other things I wouldn’t do. First up is the use of “” rather than string.Empty – Brad Abrams explains why on this short blog post. Secondly the whole routine uses systems Hungarian notation which is explicitly discouraged by the Microsoft naming conventions – ironic as it was their programmers that created systems Hungarian notation in the first place. Joel Spolsky (@spolsky) has an excellent blog post here that amongst other things discusses Hungarian notation. The third thing, which is more a matter of my personal taste is that there is a single line if statement which I would usually surround with {}, partly to make it clear, and also to help with maintenance – I’ve come across one or two difficult to spot bugs caused by missing braces, so I tend to think it’s better to use them all the time.

The Mythical Ground Zero Mosque

There has been quite a bit of a furore of late over plans to “build a mosque at Ground Zero” in New York, the problem being that what’s proposed isn’t a mosque, and it isn’t at Ground Zero – not that that has stopped the American loony right from kicking up a fuss.

Over the past couple of days I’ve come across a couple of good links exploring what is going on. Charlie Brooker (@charltonbrooker) wrote an excellent piece for the Guardian that was published on Monday that is well worth reading, however today thanks to my friend Jonathan (@digitaljonathan) I came across this great clip of Keith Olbermann (@KeithOlbermann) talking about the mosque, and what the unfounded opposition to it could mean for the USA – it’s a little long, but very well worth watching.

The iPad for Education

It’s no exaggeration to say that we love our Apple iPad. I have to admit to a little bit of skepticism when it was first announced, but having tried one out and subsequently purchased one it’s combination of superb battery life, form factor and general ease of use make it a lovely tool. Whilst iPhone apps have had to make a number of compromises to cope with the form factor, the larger size of the iPad really open up so many more possibilities. The ease of use can easily be demonstrated by handing our iPad to Lucy, who has no trouble finding her way around to what she wants – usually a video of “Big Chris” – the video of the Children in Need 2009 song.

As such, it is with great interest that I’ve been watching Fraser Speirs (@fraserspeirs) – probably best known as the author of the excellent FlickrExport plugin for iPhoto and Aperture – as he has prepared for and successfully rolled out an Apple iPad to every child in the school where he teaches, through his excellent blog postings.

Admittedly, the school where he teaches is a small private school, so they have a good deal more flexibility in deployment, and much less in the way of costs and issues to deploy to an average state run comprehensive, however even taking that into account a big step like this hasn’t been without issues. However reading the postings has certainly left Beth (@tahbepet) wishing even more she’d had access to Apple iPad’s when teaching, not least as an English teacher some of the abilities in iBooks!

Fraser has already picked up a bit of coverage from both specialist Mac sites and more general sites – hopefully some more mainstream media will pick up the story and highlight what is a very interesting experiment in bringing technology into the classroom.

The Problems With Public Sector IT

Last night Mike Hadlow (@mikehadlow) posted a great blog about how he thought public sector IT could be fixed, coming from his perspective of a software developer working on public sector projects.

Public sector IT projects in the UK are renowned for overrunning, not working as expected and generally being an expensive drain on resources. Successive governments talk about taking IT projects in hand, but nothing seems to get done, and all the time there are a succession of high profile embarrassments, flops and cancelled projects.

I’ve had some experience working on government IT projects, and also come across people who have worked on them before and swore never again. In particular one contractor I worked with had just come off a large scale project for the NHS.

Like many big contracts it had been outsourced to one of the big corporate IT firms, who had put relatively junior project managers onto the project. They had the project plan, and were timeboxing – the problem being that at the end of each period they would just have the team move onto the next timebox, whether or not the previous one was finished. As this went on, they reported back to the civil servants in Whitehall that the project was proceeding according to plan, but when they reached the end, nothing worked as many of the deliverables for the many preceding timeboxes had been met. My contractor friend, who had many years of experience had tried early on to point out the issue to the project managers, but had basically been sent away as “just a contractor” by the young newly graduated project managers. As I said, after that experience he had sworn never to work on a public sector project again.

My experience was working on some defence projects. One in particular the company I worked for was called in for a second opinion on a system that the Army was purchasing and was being developed by a major defence IT contractor. Basically the project had hit major problems and we were consulting on what had gone wrong. On the Army side a quite senior soldier was running the project, and whilst I have no doubt he would know what to do in a battle, in an IT situation the defence contractor had taken him to the cleaners. Essentially they had got him to agree to a contract that left all the risk, and all the costs with the MoD, they basically paid for time and materials whether or not the fault that was being fixed was a bug in the software, or whatever. Again the company seemed to have put pretty inexperienced incompetent programmers who had made some fundamental programming and design errors, but as a result of the contract, the MoD were paying to fix the lot.

Many of my experiences chime with what Mike has said – the civil servants in charge of IT projects lack basic IT knowledge, and as a result don’t understand and can’t see when things are going wrong. They also rely extensively on outsourcing, something which in a number of private companies I have worked for is something to be avoided.

My experience has been that outsourcing works well if you have a clearly defined specification of what is needed. However in reality the vast majority of custom development projects are a moving target, as a result it needs a group of in house developers who are experienced developers but who also understand the business, working closely with the end users on an iterative basis. Working that way generally produces a system that more closely meets the requirements of the users, but at a lower cost. Mike highlights one such project working in that way that he has worked on that has successfully delivered, but unlike the high profile failures has largely gone unnoticed.

I can thoroughly  recommend reading Mike’s excellent piece, we can only hope that a few politicians read it too!