In the workplace

Recruitment Agents, eh?

Today I received an email from a recruitment agent that seems more than a little mixed up in terms of the skills required.

Dear Colin,

Are you a C#.net developer? Are you fluent in Italian? If so then I have a client that would be really interested in hearing from you.

Due to the new venture, any potential candidate would need to be an Spanish speaker ideally bilingual in Spanish. Please note the role is based in Manchester but would involve some travel to Spain.

[Emphasis mine]

In order to spare the recruiter’s blushes, I’ve removed any identifying information. Incidentally, if you are curious the pay was absolutely rubbish!

In the workplace

Go Directly to Funky

In our office we have a notice board for the development team. It was there when I joined and I suspect its original function has long since been superseded by its new function of displaying any quotes, pearls of wisdom or witticisms of the day that members of the development team happen to find sufficiently amusing that it requires a degree of permanence.

So I give you, our notice board:

Developer's Noticeboard

Have fun looking through that lot.

In the workplace

Some advice on CVs

As a lead developer part of my job is to review CVs for developers that we are potentially going to hire. There are, however, some people that I think do put the most inappropriate things on their CV. I’m not talking about the really obviously inappropriate stuff like admitting you won some competition in an Ibiza nightclub on an 18-30 holiday, I’ve not seen anything a salacious as that. I’m talking about the inappropriate things that sound like they should probably be on a CV.

There have been various reports in the media recently about identity theft and CVs. And yet, I still get emails from people with all sorts of personal information in them. I imagine that recruitment agents get even more than I do. But, if you are sending off your CV can you really be sure that you are sending it to a legitimate source?

There is nothing stopping an identity thief setting themselves up as a fake company and posting job adverts. With a website and a number of job adverts posted around an identity thief could receive hundreds of CVs all containing some very personal information.

Recently I’ve received CVs containing details such as Date of Birth, Address, various government Identifiers (National Insurance numbers, driving license, SSN, Passport numbers, etc.), marital status and so on. Enough for someone to steal the candidate’s identity.

In the UK we have various bits of legislation that mean we are not permitted to discriminate on grounds of age, gender, martial status, race, etc. There is therefore no need to put any of that information on your CV. In fact, some hiring managers might dismiss your CV immediately if it includes information like that because they don’t want to be seen to discriminate in that area.

So what sort of information should you put on the CV?

First, this is obviously just my opinion and some of it is limited to software development roles.

I’m interested in your experience, if you have less than 5 years experience as a developer telling me about any formal education is also useful. After 5 years just some one-liners about your formal education will be sufficient. If you did a computing/computer science/software engineering degree then give some information about your final year project (and the vast majority of university course do) then give some information about that. Obviously, if your final year project was a bit vacuous then you might want to hide it.

Any recent training is also useful, and I do mean recent. If it is older than about 36 months then leave it out. Also, it needs to be relevant. Telling me about the evening classes you took in pottery last year may be interesting to you, but it has nothing to do with software development so leave it out, or move it to your hobbies section.

If you have won any worthwhile awards or if you do volunteer work put that in too. If you have given any presentations at conferences or user groups, written any articles, maintain a blog or personal website then put these things in. If you run a web site that is less than employer friendly then make sure you do that under a pseudonym that can’t be tracked back to you, it might hurt your chances, remember that includes your WHOIS entry.

External hobbies and interests can be useful on a CV, and other people think they are a waste of space. I like to see what other things you are interested in, but I’m not going to be too fussed if you don’t include it.

Finally, make sure that you actually include contact information. Just your name, email and phone number is good enough at this stage.

In the workplace

Training Developers

Software development is a very fast moving business and it is therefore vitally important to keep up with what is happening with technology. If you don’t you could be left behind pretty quickly. When the proverbial hits the fan you don’t want to be left behind.

If you remember back to your school days you might remember Æsop’s fable The Ant and the Grasshopper. The grasshopper did no work in the summer while the ant worked hard in preparation of the lean times. When the lean times came the ant was able to provide for himself, while the grasshopper starved. A lot of software developers are like the grasshopper, they are not planning for their future. You might think it unfair of me to tar all developers with that brush, but I don’t mean to. I did say “a lot” not “all”. So why do I think that?

Last year I spent three months trying to hire a developer. I was shocked at the number of developers that I saw had the attitude that they didn’t need to learn anything unless their employer put them on a training course. Some seemed surprised when I asked how they kept up to date with the industry they are in. Most just mumbled something about reading books and articles online. Given the answers to other questions I don’t think they spent all that much time reading.

Software development knowledge fades faster than ever these days. It seems like only yesterday that I was learning .NET 1.0, yet .NET 4.0 is just around the corner. In a couple of years I’ll be using it commercially. Technologies like LINQ to SQL which has only been released will be dead soon, if recent reports are to be believed. That’s a lot of new information to take in only for it to go stale. This week I’m immersing myself in ASP.NET MVC. I’ve been to a talk on the subject at it looks like that’s the way forward so I want to be at the head of the pack. I’ll also be taking a first look at Subversion this week also. On top of that I’ve got a stack of other things to get through.

When I left university I had the arrogance to think that I knew it all and for a few years I worked on that principle. But that attitude eventually caught up with me and I spent some time unemployed partly as a result of that attitude. I am determined not to let that happen again. These days I am acutely aware of what I don’t know. I think that now I am more aware of my limitations I am a better developer. Because I’m more aware of what I don’t know I strive to fill those gaps by ensuring my own education – I don’t let an employer dictate what I should be learning. I am pro-active and go out there and ensure I’m educated. Of course, if my employer wants to put me on a specific training course I’ll accept it.

I did a little calculation last weekend that surprised me. Actually it shocked the heck out of me. Last year my employer spend roughly £200 on training materials for me. However, I spent a lot more. Of the things that I can remember (so I suppose the things that were worth it) I spent £2500 on my own education.

So, who gets the benefit out of this? For the most part my employer gets the benefit. While I enjoy developing software, it is my employer that profits from it at the end of the day.

Most employer attitudes to training developers are that it isn’t worth it because the developer will just leave with the additional knowledge they’ve received for a higher salary else where. Well, I suppose they will if the employer has that kind of cynical attitude. Employers think that they have to find a replacement soon so why bother training a developer only for another company to take advantage of that. But the a lot of the knowledge that is walking out the door cannot be replaced easily. A lot of the knowledge walking out the door is about the employer’s business and that is unique. You can’t hire that in.

There are a number of “solutions” to this problem. Some employers go for the stick method. “If I train you up and you leave within X months then you have to pay part of the training costs back.” The disturbing thing is that I used to think that was an acceptable solution. But it really isn’t. It is a form of financial handcuffs, and the developer being trained is going to resent it. Quite possibly they’ll be off as soon as the handcuffs are removed or simply not accept the training.

The more reasonable attitude, I think, to take about training is to realise that the developer that’s just been trained has increased their market value. So, pay market value for the developer. You don’t necessarily have to do it straight away, give the training time to sink in if you want, but do increase the developers salary within a few months and don’t tie it to anything else. Don’t roll it in with inflation based increase, an annual increase, or other bonus schemes. Make it very clear that the increase is solely as a result of the greater ability or productivity as a result of the training previously received.

In the workplace

Friday was my last day…

Colin and the Evil MonkeyFriday was my last day at Barbon Insurance Group Ltd. A company named after the guy that invented Fire Insurance, Nicholas Unless-Jesus-Christ-Had-Died-For-Thee-Thou-Hadst-Been-Damned Barbon. I kid you not! (Incidentally, the change of name to BIGL, for short, had nothing to do with me handing in my notice. Although I have to admit, I had an urge to come in on my last day with a set of flying goggles, reminiscent of the famous fictional pilot, Biggles.)

Just after I handed in my notice, I left my desk for a few moments and when I returned I discovered an Evil Monkey sitting on my PC. (see right) Oops! My bad! He left again shortly afterwards. No doubt after realising that I wasn’t Chris Griffin.

My boss, Steve, (strictly speaking my boss’s boss) gave a wonderful farewell speech that talked about the projects I worked on and my accomplishments since I started with Lumley, which was then bought over by Erinaceous, which was put into administration and split up, and ultimately became Barbon. He also said that it would have been nice if the business had actually allowed most of these projects to come to fruition and be put live. I completely concur with that sentiment, perhaps I would have felt more useful if it had. As it happens, only one of my projects went live (and it works very well I’m pleased to say). I have to say that I’ve enjoyed working with everyone in the development team immensely. I’ll miss the camaraderie most.

I Survived...My colleagues in Glasgow had a whip round and signed a card (see below) when I was down in Lincoln training up the developers there in how to use .NET. They raised much more than I expected so when I left they gifted me with an Ubuntu Linux 8.4 64-bit server install DVD, a Granny-Smith apple (the only apple I would accept [for the uninitiated it was a joke on my opinion about Apple Computers]), a T-shirt with “I survived Lumley Erinaceous Barbon” written on it (see left), and a Wii Fit. I felt really appreciated that gift because I know that Duncan had spent a lot of time phoning around and ultimately queuing for ages trying to get one, and his wife was most understanding also.

After work, we went to the pub for a couple of drinks where Frank, my immediate boss, joined us after returning from holiday. We headed off to The Spice Garden, an Indian restaurant just across the Clyde to have an excellent meal. I have to say that the staff there are very pleasant and helpful and the food is great. I have to admit that my experience of Indian restaurants has generally not been good, but this place really makes up for it. The only thing that I would give as a negative is that it is directly under the tracks for Glasgow Central Station so you have trains rumbling overhead every two minutes. The best thing is that they do take-out as well. Did I mention the food was great!

When I returned home I was full, but the Wii Fit was beckoning. I decided that I would watch an episode of House first in order to let my food settle, then I could at least set it up and start using it the next day. When I went to set it up, I discovered that it would only give me measurements in imperial units. I don’t understand those but I could not discover a way to change it. After going on line I discovered that by changing country it could change units. Apparently the United Kingdom is set to imperial. There were many forums of irritated people complaining that to use the units they wanted they had to change the language to Spanish – so they had a choice, a language they could not understand, or a set of units they could not understand. I eventually discovered that by going into the Wii Settings (for the whole console) and changing my country to “Australia” I could get the Wii Fit to display kilos and centimetres. However, that wiped out my settings for the Weather and News “channels” on the Wii. Apparently it was freezing in Sydney last night. Well, it is winter over there…

Leaving card (outside)

 Leaving card (inside-left) Leaving card (inside-right)

In the workplace

How I got started in Software Development?

There is a meme going around at the moment and I thought I’d join in even although I’ve not been specifically tagged by it, it looks good fun. I spotted it on Phil Haak’s blog with his response.

How old were you when you started programming?

I was 8 years old.

How did you get started in programming?

When my dad bought a ZX Spectrum in 1983 (It was a Mark II, 48K RAM). I started by typing in programs from the manuals, then by creating my own programs. One of the first I remember creating was to stop my sister using the computer. She was younger than me and the program was something like this:

10 PRINT “How old are you?”
20 INPUT a
30 IF a < 8 THEN PRINT “You are too young to use this computer.”; GO TO 10

What was your first language?

ZX Spectrum Basic

What was the first real program that you wrote?

The first real program that I wrote as part of a job was a tool to summarise and format certain data in a database. What today would be handled by a few drag & drop operations and some mouse clicks in SQL Server Reporting Services took me about a week or so back then. It was written in a language called Magik (yes, with a K)

What languages have you used since you started programming?

Well various flavours of BASIC (ZX Spectrum, BBC, Visual Basic, VBA, etc.), COMAL (used by my high school), PASCAL, C/C++, COBOL, Magik, javascript, C#. There are probably a whole slew of other languages that I’ve touched over the years but not spent any significant time with that I’ve missed out here.

If you knew then what you know now, would you have started programming?

Yes, I would still have started programming. I probably would have done it a lot better though. There are a lot of things I’ve learned along the way that I wish I knew earlier. But, then again, if I never made those mistakes what lessons would I be learning? I guess I would be answering this questions pretty much the same way, but thinking of a different set of mistakes. Or would I? Maybe, since I didn’t make those mistakes in the first place I would end up being an incredibly arrogant insufferable arsehole.

If there is one thing you learned along the way that you would tell new developers, what would it be?

Last year, I interviewed for 3 months to hire a developer. From that, the one major thing I think people need to understand is that in software development you must continue to learn constantly. I was interviewing candidates with 10+ years experience that had pretty much never learned anything since leaving university. Sure, they were using new languages since leaving, but they never learned about how to really use this fancy new object oriented language, or how to defend against SQL Injection Attacks. Most of them couldn’t even write a fizz-buzz program for goodness sakes.

So, my answer would be life long learning. If you don’t want to do it then do something else.

Who do I tag?

It is an interesting set of questions, and I’d like to know the answer from the following people: