My copy of IT Now, the magazine of the British Computer Society arrived earlier this week. I’ve only just got around to reading it. Their careers section got me thinking. There is a link to http://www.jobstats.co.uk in there and I had a little look around. According to that site roughly 10% of all IT jobs are for C# while 7.5% are for VB (any flavour). Staggeringly 1% of jobs still require VB6!
For C# developers the UK average is £39K. On the face of it, you could say that it is lop sided because it includes the salaries in the south east of England. However, you also have to remember that the figures will include graduate salaries from across the rest of the UK also.
If you want to drill in to Scotland and Glasgow the rates naturally come down. £33K seems to be the average. After all the interviewing we’ve been doing recently I’ve come to the conclusion that average means the ability to push buttons on wizards and copy and paste code snippets and then spend hours wondering why it doesn’t work. Average means not being able to read a simple 3 table ER diagram with some relationships. Average means not understanding a UML static class diagram with a base class and two derived classes on it.
In April this year, an article was published on the BCS website that stated that “Employers are finding it increasingly difficult to find job candidates with the right IT skills, putting the candidate in a strong position.” We are finding exactly that. We are getting quite a few candidates that are just in to get a second offer to play two companies off each other. However, after two months, we’ve not found anyone suitable enough to put an offer out to. I can’t help but think that there are some companies that are taking on board people that really don’t have the necessary skills to do the job properly.
I am increasingly of the opinion that software developers need to be licensed, at least for certain pieces of development, due to the risk of fraud or damage if the system breaks.
Earlier this week I was going through some code as part of a migration. The code was written before my time and by an outsourcing company. This was before the company I work for decided it was getting such a raw deal that it wanted to in-source its software development. I was searching the code base for a reference to a stored procedure that failed to script properly… And I found it… In the presentation layer!
Not only that, but it was referenced on line numbers exceeding 1500! Hadn’t these people heard of custom controls, user controls, 3-tier architecture, and the like.
What really got me was that the application was very much like another one that was being migrated. There were several places where some common functionality could have been extracted out, put in its own class then referenced from both projects. But where’s the profit in that! No point doing anything sensible like that when you can charge twice to fix the same bug.
I wonder how much it cost to get these things developed. I wonder what the TCO (Total Cost of Ownership) actually is.
No one should be developing new apps in VB6 and existing apps using it should be getting migrated ASAP. Security holes are being reported in VB6 and they won’t be fixed since it is now out of support. Warning, warning to anyone still using applications written in VB6. You don’t need to license developers since screw ups and legal action against you will affect your professional indemnity insurance! Licensing won’t stop fraud and bad practice in the software industry IMHO.Stored procedure references in the presentation layer. Surely you mean the Powerpoint layer :-D. Goodness, I’m beating that codebase is going to be a right pile of pooh! You may end up scrapping it and rewriting from scratch.You’ve hit on a great point, paying for the initial software development is only the start of the costs… TCO means that cheap initial development is going to cost you a load in the long run.
Essentially, the recruitment process for some disciplines within our domain does ensure a degree of “licensing” and authentication – the security industry, for examples, does typically require candidates to hold expensive certification…thus ensuring that it at least gets candidates of a particular standing…e.g. CISSP, etc.
There is an opposing rant in the BCS’ magazine IT Now’s letters page. Someone is complaining that the BCS keep harping on about a skills shortage and how recruiters are looking for 2 years experience in what ever technology.Although we are looking for a C# developer, we do interview people with strong CVs in other technologies where there is a good chance of easy cross training. We’ve interviewed people with Java, Smalltalk, Cobol, VB.NET and so on. If they can talk about OO and design patterns in the interview we think it would be easy for them to pick up C# sufficiently quickly. If we can get them to talk about unit testing and so on all the better.From our point of view if they’ve got experience with one OO language they should be able to pick another one up fairly quickly. If they have experience with one RDBMS they can pick another one up fairly quickly.
You mention licensing, the problem I see is whether our industry is mature enough yet to have the agreed body of knowledge to teach our student engineers (and I mean engineers not computer scientists). In the other licensed professions such as medicine, accountancy or structural engineering there is more agreement in best/safe practice than we have as yet, but they have many more years of experience to draw upon.Anyway I wrote some stuff on this a while ago for a course paper I was doing (a bit of a bug bear of mine) and posted it a http://blogs.blackmarble.co.uk/blogs/bm-bloggers/pages/232.aspx
Even certification doesn’t prevent numpties getting into the food chain! Looks at things like MCP, MCSE and MCSD, etc… how many times have you met someone with these qualifications and wondered how the hell they done it. More than that, these proprietary certification programmes end up with people answering questions in the Microsoft/Oracle/Sun/”A-n-other” way, which may not necessarily be good engineering or best practice.Qualifications and certification should allow you to filter out the real duff CVs, but they should be discarded for the rest of the interview and hiring process. Colin’s point of asking about technologies and methodologies that show advanced understanding and best practice should be a key metric in the hiring process.
You are right about certification. We interviewed one guy that was certified up to his eyes but couldn’t cut it in the technical test. In fact, no one cuts it in the technical test. We stress that we are looking to see program structure and don’t necessarily want to see a fully working application, but no one listens. When the time is up they all say they were trying to get X or Y working then they were going to restructure it. What??!!?!Didn’t they pay attention to the instructions? We want to see how they STRUCTURE the program. I’d rather they didn’t get it working, but it was well structuredAlso, they always seem to go for the most difficult option. The spec calls for data external to the application to be loaded. They all elect to get the data from a database and then manage to get themselves tangled up somehow (often fiddling with wizards!?! WIZARDS for Falkirk’s sake! They are supposed to be professional software engineers)
I should add, in case I’m misinterpreted when I say “no one cuts it in the technical test” that all the developers and contractors that we have working for us HAVE passed the test. I’ve passed that test. Frank (my boss) has passed the test. It is as simple as that. If you cut code you must have passed the test.