Mar 10

Continuing Professional Development – does your company do enough for you?

This is something that has bothered me a lot over the last few years and the last few companies. Most of my original classmates who specialised in Civil or Mechanical Engineering take CPD as a given. Whatever company they went to would be expected to provide CPD for them in a structured way, and to support them in their progress towards the C.Eng accreditation. The company would be expected to provide mentoring, and to send employees on accredited CPD courses (like those run by the IEI).

But it wasn’t just civil and mechanical engineers, it was in all the professions. Barristers (since 2005) are required to undertake CPD work. Doctors (since 2007) are required to undertake 50 hours a year (or 250 over 5 years) of CPD work. Teachers are going to make it compulsary in the near future. Accountants have to do it. Auctioneers do it.

So what about computer engineers and programmers and the IT sector as a whole, Ireland’s second-largest industry and the claimed saviour of our entire economy, an industry characterised by continual change and with the shortest period to technical obsolescence of any of our industries, where CPD is so obviously needed?

Personally, I can say that none of the companies I ever worked for (and granted, I’ve not racked up several decades of wide-ranging experience yet) were involved in a structured way with CPD. In fact, none of them ever mentioned it at all. The closest I saw in the last seven or eight years was when one company (after much lobbying by the coding team) begrudgingly agreed to buy some reference books from amazon.com which the coders could use (and take home if they signed for it, and it was someone’s job to track who had what book). It was pitiful – they were using time from one coder (a commodity they usually charged clients around €100-200 per hour for) in order to track which of their employees had a book worth maybe €30, which they were trying to use to improve their skills (something the company would only benefit from).

At best, in companies like that, CPD is an individual responsibility. Courses, conferences, seminars – they have to happen on your time, whether it be a weekend or a holiday. Books, admission fees, subscription fees, they become a living expense shared only by others in our field. And given our industry’s counterproductive love for masochistically long hours, you’re talking about working ten hours a day during a slow week, then trying to grab an hour here or there to read any CPD material you can, and that’s never light reading. Small wonder then, that as far back as Peopleware, it’s been known that the industry average for CPD work in IT is not even one book. Not one book a month or one book a year, but not one book, ever. In fact, just by reading this blog, you’re one of the technical elite (not that this blog is special — if you’re reading any blog on programming, you’re one of an elite group in our industry).

Worse yet, in several of the places I worked in in the last few years, asking for CPD support would have been a black mark against you; it would have been seen as an admission of incompetence and nothing more. The attitude was, effectively, that you should have learnt everything in college, and now it was time to stop with the time-wasting of learning and get on with billable hours. CPD was something you did at home and didn’t mention at work. Supporting CPD in those places was seen as the company spending money to improve the employees’ CVs so they could flee elsewhere. Oddly enough, not supporting CPD (and generally treating employees like second class citizens) often prompted that flight, leaving the company to scramble to replace the loss of expertise and data that such a moving-on represented to them.

The really depressing part of all of this is that studies have shown that CPD benefits the company dramatically. It’s well-known. Even Fred Brook’s classic, No Silver Bullet, mentions CPD mentoring as a vital step in finding great developers. It’s a primary difference between the top 100 companies in a field and the field as a whole, when done properly and assessed correctly. But in Ireland, only 10% of companies are involved in CPD to a high level, and only 40% even get involved at any level at all. Looking at the IEI’s list of participating organisations in its CPD programme is telling – in the Tech section of the list there are only nine companies (out of a total of 94) and most of those are large multinationals (BT, IBM, Intel and so on). Of our native SME sector, there are, basicly, none.

Nor are there many courses for the IT sector in the IEI’s lineup of CPD courses. There are non-technical courses in common with other sectors of course – Project Management, Communications and so forth; but for technical courses there’s only one, on iPhone apps.

Nor is there much in the way of third-level support, at least from my limited vantage point. I certainly never encountered any mention of CPD during my undergrad degree, nor the C.Eng qualification. Some universities like DIT are now running CPD courses with the IEI, so hopefully this is changing.

But the companies are where this all has to start. Why do we never see recruitment ads looking for specific CPD accreditations? Why is there such poor support for the C.Eng qualification? Why do so few small shops go for the IEI CPD Accredited Employer standard? As I said on this thread on theboards.ie Development forum, if a company is not willing to take on CPD in a proper manner, it has no business complaining about the standard of potential hires, because it is part of the problem. And a critical part, at that.

I think myself that in the startup sector of our industry especially, this is a side-effect of the buy-in to the cult of the ‘rock star developer’. Watch TWISt sometime, especially the DHH interview, and ask yourself — when so much focus is put on being one of the top developers around — when we don’t have any objective way to measure how good someone in that field is, but rely instead on how often people are talking about them — would people this arrogant and unprofessional ever take part in a process like CPD which is based on the idea that you don’t know everything? Would anyone looking for a new role ever mention CPD to them? And how do we expect companies will treat us, when we publicly espouse such unprofessional viewpoints?

Mar 10

Smartphone data traffic eclipses Feature Phones but the iDevices are coming up fast…

Admob released their Mobile Metrics for February 2009-February 2010 a few days ago. The most interesting information there is well summarised in one graph:

Traffic Share by Handset Category, worldwide, from the Admob Mobile Metrics report February 2009 - February 2010

Traffic Share by Handset Category, worldwide, from the Admob Mobile Metrics report February 2009 - February 2010

Right there, in October last year, the smartphone finally eclipsed the feature phone. This is something that every data provider in the mobile sector has been screaming about for quite a while now – the upcoming mobile data ‘apocalypse’. A mere three or four smartphones can generate enough data to swamp an exchange from only a few years ago; the only reason networks like AT&T’s haven’t been falling over more often than they have been is a lot of fairly rapid work on the part of the technical teams in charge of the backhaul for their networks. But the rise in the demand for mobile data, as game-changing as it has been, is only just getting started, and this report points that out.

Ignore for a moment the swapping of places between the smartphone and the feature phone — look at the growth rates of demand for smartphones and the third category of device – the mobile internet device (currently this is predominantly – ie. 93% – the iPod Touch). This category’s demand for data from the Mobile Network Operators has seen growth of almost 400% compared to the 193% of smartphones. But surely that has to top out, right? What could possibly maintain that level of growth?


Yup. When the iPad debuts, it’s going to be in this sector. And it’s a content consumption device almost by default – newspapers, youtube, you name it. Granted, only the more expensive model has 3G, but you know that’s not going to last – Apple has a pattern with their hardware which tells us that however slick the iPad is today, it’s only going to be refined and become more compelling as a device. And meanwhile the iPad clones like the JooJoo which will get to customers even before the iPad, will only add to the increase in growth rate that the iPad is going to drive.

And LTE isn’t going to save things. Ericsson’s latest figures indicate a 1000-fold increase in over-the-air capacity is needed and LTE will only offer around a 10-fold increase. To make up the 1000-fold, plans include introducing LTE in combination with taking over more spectrum, building nearly ten times as many basestations for cell towers as exist today, and three or four other impossible things before breakfast. And even if the MNOs can pull all that off, you still have to have backhaul to attach to that over-the-air network. But it cost $16 billion for last year’s backhaul in the US alone.

The pressure just got turned up a notch on the data teams in MNOs…

Mar 10

Nagios notifications via clickatell

Nagios SMS AlertThe most robust solution for sending SMS notifications of server issues detected by Nagios is well-known – plug a GSM modem (or a mobile phone) into your server directly and use that as the delivery mechanism. It’s true out-of-band communications, so if the backhaul fails completely, you still get notified.

However, for someone who has a small server like mine, in a geographically remote location (like Germany, in my case), that may be overkill. Especially as the cost includes both the initial cost of the hardware and the ongoing service charges. And for true out-of-band notification, you need far more admin time than may be appropriate for a small site; you have to have scheduled test of out-of-band notifications lest the hardware fail without detection, and so forth.

In my case, the requirement is far lower-spec; I just want to get a quick ping if the server starts to die so I can log in and try to effect repairs. If it’s an actual hardware failure, or an actual backhaul failure, odds are good that I can’t fix it from my end in a few minutes anyway, and we’re past the “fix it” part of the disaster recovery plan (you do have one, right?), and into the “get another temporary webhost and redirect using DNS” part of the DR plan (you do keep regular backups of your site locally, right?).

So my solution is equally lower-spec. I got an account with clickatell.com (there are several other web SMS gateways, I chose clickatell.com because I’m most familiar with them, not because of any objective evaluation) and enabled the HTTP/S API on the account and then wrote the following additions to the Nagios /etc/nagios3/commands.cfg file (again, this is for Debian, your file location may vary…):

[cc lang=”bash” escaped=”true”]define command{
command_name host_notify_with_sms
command_line wget “http://api.clickatell.com/http/sendmsg?user=INSERT_USERNAME_HERE&password=INSERT_PASSWORD_HERE&api_id=INSERT_API_ID_HERE&to=$CONTACTPAGER$&text=’$NOTIFICATIONTYPE$ Server is $HOSTSTATE$ ($HOSTOUTPUT$) @ $LONGDATETIME$'”

define command{
command_name service_notify_with_sms
command_line wget “http://api.clickatell.com/http/sendmsg?user=INSERT_USERNAME_HERE&password=INSERT_PASSWORD_HERE&api_id=INSERT_API_ID_HERE&to=$CONTACTPAGER$&text=’$NOTIFICATIONTYPE$ Server : $SERVICEDESC$ is $SERVICESTATE$ @ $LONGDATETIME$'”

Then tell Nagios to use these new commands in /etc/nagios3/conf.d/contacts_nagios2.conf :

[cc lang=”ini”]define contact{

service_notification_commands   service_notify_with_sms notify-service-by-email
host_notification_commands      host_notify_with_sms notify-host-by-email

pager                           INSERT_MOBILE_PHONE_NUMBER_HERE

And now Nagios warnings and alerts are dispatched both by email (in a longer format) and by SMS. All very simply done, needing only wget to be installed. It’s easily testable as well – just call the wget line from the command line, like so:

[cc lang=”bash” escaped=”true”]wget “http://api.clickatell.com/http/sendmsg?user=INSERT_USERNAME_HERE&password=INSERT_PASSWORD_HERE&api_id=INSERT_API_ID_HERE&to=INSERT_MOBILE_PHONE_NUMBER_HERE&text=’This is a test message. If this was a real message, you would be panicking right now and desperately looking for a terminal.”[/cc]

Given the pricing structure in clickatell, it’s quite affordable – at the rate of normal usage, I should get a year’s coverage for around €50 or so, with capacity to spare. So it’s easy, cheap and testable. It’s not true out-of-band, but as 80% solutions go, it’s not too shabby.