Posts Tagged ‘development’

Do we really need to teach our kids to code?

September 9, 2011 2 comments

There is currently a petition on the UK Government’s e-petitions website:

Teach our kids to code

Start teaching coding as a part of the curriculum in Yr 5. If it can be introduced as a part of the central curriculum in Year 5, then by the time those kids are drawn up through the education system, there would be far less of a disparity between the sexes – and maybe even an increased number of young people with an ability to manipulate open data, relate to code and challenge each other to design and build the digital products that we have not even begun to imagine. Year 8 is too late, we are losing the female coders and we need this generation to help us code a better country.

Petition #15081

Although I agree with the sentiment behind it, there are fundamental flaws that lead me to disagree with this petition. I have stated this on Twitter, and have been asked by several (quite surprised) people why I, as a developer who grew up in the environment of the home computer boom, am objecting to other people potentially following my career path. This post is for me to explain my objections.

Open up the code to any software and what you will be presented with is, fundamentally, sets of algebraic functions. So my first objection starts with a simple question: at what age did you learn algebra?

If your schooling was anything like mine, it was taught at the end of year 6, or in the first year of secondary school (since relabelled year 7).

Now, the QCDA guidelines for Key Stage 2 state the following requirement for level 5:

They construct, express in symbolic form, and use simple formulae involving one or two operations

Attainment targets for Mathematics, QCDA

These guidelines are written by Government advisors – people who have spent their entire lives dedicated to understanding and educating children. Level 5  is the level that these experts would expect the higher-ability children at the end of year 6 – that is, 11 year olds – to achieve, yet this petition is based on the majority of children having the ability (not the teaching) to go far above and beyond that almost two years earlier.

My second objection is a common one when discussing teaching, and related to resourcing. For teaching children up to the age of 11, a teacher has to have a wide range of knowledge about a vast number of subjects: not just mathematics, but history, geography, religion, chemistry, physics, personal development and a whole host of others. On top of that, they also have additional responsibilities that are not generally recognised outside of the schooling environment. (You honestly think they have 6 weeks off in the summer? Get real.) They simply do not have time to learn how to program on top of all of this; the most they can offer, and many schools do, is an ICT club that allows those with an interest to pursue the subject in their own time.

This, incidentally, is quite a common theme of petitions. I’ve seen previous calls for teachers to teach all three sciences separately. If every single request were met, by the time the school day ends it would be time for the next to start; what we have currently is a workable balance.

Move on to secondary school, and the teachers become more concentrated around individual subject areas. Who remembers their science teacher or their history teacher? That’s because they had a subject.They are specialists, and – if programming is to become part of the curriculum – this is where it should be introduced.

Do not start teaching children to program at year 5. Teach them about computers by all means and show them what they can do, but fundamentally teach them problem solving skills, and that the computer is a mere tool.


The Concentrated Developer

February 24, 2011 1 comment

As a rule, developers are keen on some level of structure. Not the type that enforces so many constraints upon them that they are spending more time meeting development guidelines, more the type that means that, for any given day, they at least have an idea of the project area they are working on, and the final result they are working towards.

On a personal level, I like my days broken up into two separate periods of time: before lunch, and after lunch. Within those periods, ideally I:

  • Would not have to deal with (non-urgent) support queries on systems that have worked exactly the same way for six months now;
  • Could ignore the legions of recruitment consultants and outsourcing companies assuming that they are the only people who have ever called me, and always start each call with “Hi, how are you?”;
  • Would not have to deal with the setting up of new projects, or contacting random people on the offchance that I would be the only person capable of dealing with them; and, most importantly,
  • Will work on one project, with clear requirements that don’t need me to refer back to project managers and clients constantly.

Joel Spolsky wrote that it can take 15 minutes to get up to maximum concentration, at which point any developer is at their most productive. Don’t think of a phone call, or a “quick chat about another project”, as being a minor inconvenience; your developers don’t. It is breaking their flow, and as a result it is costing you money.

Gorilla in the Mist

February 17, 2011 Leave a comment

In software development, there is such a thing as a stupid question. It’s the question that every developer asks a millisecond before they suddenly realise that the answer is staring them in the face.

I’m a big advocate of knowledge sharing; any of my team being hit by a bus would be extremely disruptive to our business, and not just because we’d have to take the day off for the funeral. Each person is welcome, even encouraged, to talk through code problems and possible solutions with anyone else in the office. However, we are aware that often the problem we’ve hit is so simple that all we need to do is explain it to someone else; and, it may not be appropriate to interrupt a fellow developer’s concentration.

Jambo, the Development Gorilla


Hence Jambo, the Development Gorilla. Jambo, formerly a resident of Jersey Zoo, sits with the developers. If anybody has an issue that they know can be solved simply by explaining it, then they are welcome to explain it to Jambo safe in the knowledge that he will not judge, will not demand credit for solving the problem, won’t disappear off for a loo break part-way through, and most importantly will not offer up any opinions that may sidetrack the developer from their particular problem.

That’s the theory, any way. Jambo has been in our office for a sum total of an hour so far. It remains to be seen if he’ll stay.

We are not Microsoft

February 15, 2011 Leave a comment

An attribute common to most small software developer companies is that, at some point in their existence, a potential client will ask for their system to work ‘just like Facebook’. Or a messaging program to have ‘all the features of Outlook’. Sadly, the client rarely has the tens of millions of dollars that Microsoft, Facebook and their ilk spend on some of the most highly-paid developers in the world, sitting in front of what can safely be assumed to be the highest specification workstations in existence.

Never discount the abilities of developers working in a small company. The fact that they alone can often keep a company ticking over when all other income streams dry up means that they are often the best, hardest working, and dedicated in the business. They choose to work in an environment where they can stand out, even if that means sacrificing the access to resources – hardware, dedicated test setups, MSDN subscriptions – and job security that being a small part of a bigger machine would give them.

Yes, we can write it. It just might take a bit longer. How does five years sound?

The Developer’s Dilemma: WP7

February 13, 2011 2 comments

Microsoft’s Windows Phone 7 has had developers in a dilemma for several months now. Previous versions of their mobile operating systems had, in no uncertain terms, been dire. Trust me, I owned a Windows Mobile 6.5 phone and its eventual death was hardly a tragedy.

The smartphone market had grown slowly for several years, with operating systems such as Symbian and PalmOS. This all changed when Apple launched its iPhone onto the market and thousands of applications – nattily entitled ‘apps’ to make them trendier – made it the premium phone to have, and therefore iOS the operating system to develop for.

In addition, gaining ground since 2005 had been Google’s Android, which finally in the fourth quarter of 2010 overtook Symbian as the world’s best-selling smartphone platform with approximately 33 million units shipped. Symbian still sits in second position with 31 million, and iOS with 16 million (source:

Windows Phone 7? A mere 2 million. Earlier that year, Microsoft had quickly dropped its ‘Kin’ range due to low sales. Why bother developing for a platform which could never fly, one merely stapled to its perch?

Last week, everything changed.

In September 2010 Nokia appointed a new CEO, a former Microsoft executive named Stephen Elop. Elop sent out a memo to all staff, quickly leaked to the media, in which he equated Nokia with a rig worker faced with staying on a burning platform or taking a leap into the unknown. On Friday 11th 2011, that ‘unknown’ was revealed to be another platform: Windows Phone 7.

Commentators fell into two camps: those that dismissed the combination of a dying platform (WP7) with a past-its-glory-days company (Nokia), and those that saw the potential for a partnership between the world’s top marketing company and one of the world’s top handset manufacturers.

Personally, I fall into the second camp. I believe that smartphone sales are pushed, not exclusively but significantly, by the availability of apps. Those apps aren’t available for WP7 yet, but that’s not because of the lack of developers with the potential to develop for the platform; more, there’s been nothing to indicate that it is worth a developer’s time in learning how to.

But with Nokia behind the operating system, it means that someone other that Microsoft believes in WP7. It means that a wide variety of handsets, at a range of prices – some high, some low – will be available. Those apps, written to a framework that only requires a little education over and above the knowledge that any competent C# or VB.Net developer already has, will work on these WP7 devices.

And you know what else? It means that there’ll finally be people out there to buy them.