Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Skill Shortage in Irelands IT sector

Options
2»

Comments

  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    I think you'd find the IEI's C.Eng program is a bit more involved than a once-off exam; you're meant to undertake a course of CPD studies and be mentored by an accredited mentor for this, and after that, there's an exam. The thing is that the C.Eng has huge support in civil and mech. engineering, to the point where getting it means a raise; but it has next to no support in software engineering, and like I said, I can't help but think that that's at least in part attributable to this whole 'cult of the rockstar programmer' thing. You get buffoons like David Hansson putting up 'f*** you' as a slide in a conference, you get Joel Spolsky posting utter tripe about best practices, and all of it is about getting noticed, being the guy talked about in the field. Because while we know that there's a large productivity gap between the best and the median in our field, we have no way to tell where on that spectrum a programmer falls.

    So if the best get a massive financial and professional boost for being the best; but we have no good way to objectively identify who the best people are (other than "wait ten years, see what they build"); then you can be sure that every snake oil salesman out there is going to be pushing the tabloid sensationalism buttons to try to get talked about because that's the only metric we have - how much gossip is there about you.

    For example, I say "DHH" and people think "37signals" or "Rails". Mainly because he acts the unprofessional eejit in public and picks fights wherever he can, to boost his image and therefore increase his odds of professional success.

    It's an appalling system - and it's why CPD and the accreditation that goes along with it are so vital (ie. I'm not just meandering from topic to topic here). If you have an objective, supervised, real-world assessment of professional abilities, you can dispense with the 12-year-old's way of deciding who the best people are. That's what Civil and Mech. engineering did quite a while back, and it's where we'll end up going, we just aren't there yet because there's about 126 years of a gap between civil engineering and software engineering.

    But it's something the IEI and the SME IT sector really ought to be helping along, because they're the ones with the most to gain, financially speaking.


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    The ICS do have a CPD program of sorts although I'm not a member so I can't comment. I am a member of the BCS and they've a very good CPD program.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    fergalr wrote: »
    On a separate, but related, point, in some sense software eng is a little different than the other engineering fields traditionally are. Developers move around more, and there's less of a 'job for life' mentality. Also, the tools and tech used changes very fast. The way we build software changes from year to year - much more so, I think, than the way we build bridges.
    See, I don't buy that mindset.
    Yes, there's a difference between civil and software engineering, but what would you expect when one has a 126-year headstart on the other?
    And yes, we move around more, but (a) that's true of everyone these days, the move away from "job for life" has been a social phenomenon, it wasn't just restricted to IT; and (b) there are enormous parallels between software engineering today and mechanical engineering a century ago. All this talk of how we'll never be a real engineering discipline, how we're too different, too fast-moving - it's not new, it's around a hundred years old. It was said when mech.eng started up out of steam engines, and it was said when electrical engineering started up out of natural philosophy experimentation with magnetics, and I have no doubt it'll be said again when the next thing comes along.

    What takes us from art to science to engineering is nothing to do with the actual subject matter, and everything to do with how critical it is to society and how much it's depended on. When society decides that it needs trains to be a bit more reliable, or bridges to not fall down, then something that was a lot less rigorous winds up being pushed into being an engineering discipline. And given the dramatic improvements you usually see once the more personality-driven approaches are retired, that's not a bad thing (it's not just how engineering got started, btw, it's how all the professions got started. Once you get to the point where society judges your work to be too important and critical to be playing about with, rigour and regulation and accreditation and so forth all show up in a hurry).
    a lot of people are doing a lot of learning on their own time and dime anyway - and structuring their careers around it.
    Sure, now. You're what, early twenties?
    What happens when you're in your late twenties/early thirties and have kids and a family to worry about? Do you say "well, can't have a career and kids" or do you remember that this isn't a question that even arises in most engineering fields because not everyone is caught up in a madcap scramble to look good to the boss (who doesn't know enough to judge anyway) compared to the latest crowd of coders who're in their early 20s and will happily spout bull to that boss on how they can do all that you do, but better in a new language that's been out for around three months, and for far less salary?

    The whole "judge the best by the amount of gossip" approach only works well for those who have no life outside of their career - and I mean no life at all. People whose social circles never extend past other programmers, whose idea of a great holiday is three days in a mid-level hotel in the back end of brussels at a conference on yet another web framework, and who get wound up arguing over whether HTML5 really was a superior approach than XHTML2 would have been. People can't live their entire lives like that. Sooner or later, the teenagers become the twenty-somethings, who then go on to become parents and by that point, the lifestyles are utterly incompatible with the demands on those trying to live them.

    It's just not a humane way to live.


  • Registered Users Posts: 6,978 ✭✭✭wyrn


    Sorry to barge in here but I found this discussion fascinating.

    First off I'm not in the IT sector. There was a time when I was a wannabe programmer (I blame the movie Hackers!). When I did my degree (Science) we learned QBasic and C++ and that was fine. It was rushed through and there was plenty of help from the postgrads/lecturers to help modify code for whatever reason. We learned the basics and what we needed to learn, sort of learning verbs and how to conjugate them and being told off you go. Which was fine. However some people took to programming like a duck to water (sadly I was not one of those people).

    Anywho when I finished I realised that science is a tricky career to flog to a HR person. Also on most websites you can either apply for the Engineering or IT section. I sort of fell between the two. I agree with previous posters about jobs descriptions being made by HR are misleading. Also I was applying for "Graduate" positions when x years experience required. It was extremely frustrating to say the least.

    Fortunately I was able to go back and take up computer science. I thought this would enhance my chances of getting a job and finally being able to programme. I did well and out I came with a bit of everything under my belt (Java, C, SQL, PHP etc...) and off on the job hunt I went. It wasn't going well and thankfully something else popped up.

    Anyway my longly awaited point is I think the Universities/Colleges need to change tactics. From what I can gather back in the day programme (before we knew what IT was) was seen as a "nerdy" thing. Students would write their own programs and code. Then along came the college courses and IT was taught and before long we'd HTML, Networks, Hardware, Software etc... lots and lots of choice and lots and lots of courses to do. So invariably students stopped writing codes to do x,y and z (because someone else had it up on SourceForge.net) and became bogged down in a multidisciplinary IT area.

    There's a few routes that you can go down with Computer Science. I think a distinction needs to be made (languages, databases etc...) and people study and PRACTICE this for at least two years. Specify after 1st/2nd year and stick to it. I think there's so much emphasis on learning the history or background and writing an essay or some small program in a lab isn't useful in the real world. I think computer science students need to be pushed to make a portfolio of their own programs just like artists so that when they go for an interview they have something to show for themselves AND it shows that they are interested in this area.

    Basically I think if universities made computer science separate out into more distinct areas such as programming and had more of an emphasis on writing lots and lots of creative, imaginative, legible and elegant code then we'd be heading in the right direction.

    My two cents from a non-existent, ex-wannabe programmer!


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    Sparks wrote: »
    I think you'd find the IEI's C.Eng program is a bit more involved than a once-off exam; you're meant to undertake a course of CPD studies and be mentored by an accredited mentor for this, and after that, there's an exam.
    The thing is that the C.Eng has huge support in civil and mech. engineering, to the point where getting it means a raise;
    Yes, but that's sort of what I'm getting at.
    If there's a qualification that means a raise, and a set of hoops to jump through to get it (a set of courses to sit, companies to work for, someone you need to mentor you) - then people will jump through those hoops - regardless of whether said courses, companies and mentoring are in fact the best 'CPD' for them.

    Sparks wrote: »
    but it has next to no support in software engineering, and like I said, I can't help but think that that's at least in part attributable to this whole 'cult of the rockstar programmer' thing. You get buffoons like David Hansson putting up 'f*** you' as a slide in a conference, you get Joel Spolsky posting utter tripe about best practices, and all of it is about getting noticed, being the guy talked about in the field.
    As an aside, I think Spolsky writes a lot of interesting good stuff. I don't at all agree with everything he says - sometimes I think he's writing rubbish - but sometimes he's excellent.

    Sparks wrote: »
    Because while we know that there's a large productivity gap between the best and the median in our field, we have no way to tell where on that spectrum a programmer falls.
    I'm surprised to read this - you really reckon that's true? I'm actually of almost the opposite opinion to this.

    I'm fairly firmly of the opinion that I could put most people in the roughly the right part of the spectrum after having a 20 minute interview/chat with them. I find that if you drill down and start asking people technical questions, you get a pretty good sense of what level they are at fairly fast.

    Now, you did say productivity - I can't of course tell if they will actually do anything when they come into work, and have to rely on their references for that - but overall I would have thought that software was one of the fields where it was actually easier to figure out roughly how good someone was?
    Plus, I can get the candidate to talk me through their previous projects, show me samples of their work, have them work through a software problem etc - I think these things are particularly easy to do in software.

    What's your take on this - you mean something more specific?
    Sparks wrote: »
    So if the best get a massive financial and professional boost for being the best; but we have no good way to objectively identify who the best people are (other than "wait ten years, see what they build"); then you can be sure that every snake oil salesman out there is going to be pushing the tabloid sensationalism buttons to try to get talked about because that's the only metric we have - how much gossip is there about you.
    Are you talking about the best software engineering methodology salesmen here, or the best individual developers?
    Again, whatever about during an interview, if I work on a project with another software person, it absolutely won't take me the aforementioned 'wait ten years, see what they build'. I'd expect to have an extremely good idea of their productivity after a month - no?

    Sparks wrote: »
    For example, I say "DHH" and people think "37signals" or "Rails". Mainly because he acts the unprofessional eejit in public and picks fights wherever he can, to boost his image and therefore increase his odds of professional success.

    It's an appalling system - and it's why CPD and the accreditation that goes along with it are so vital (ie. I'm not just meandering from topic to topic here). If you have an objective, supervised, real-world assessment of professional abilities, you can dispense with the 12-year-old's way of deciding who the best people are.
    But the C.Eng. accreditation is something someone either has or doesn't, right? How does this really help you place them on the spectrum? Are you telling me you don't think there are any unproductive/idiot chartered engineers out there?

    I'll put it to you like this - I can't think of any qualification - certainly including C.Eng. - that I would trust in hiring a software candidate over and above the assessment I'd make interviewing them for 30 minutes.
    Would you disagree with this? Would you hold C.Eng. (or another similar qualification) in such esteem?

    I really have met or seen people with all sorts of wonderful qualifications (phds, professors, highly successful CEOs, mds, solicitors, C.Engs) that honestly were not that good at what they were supposed to be good at.
    Am I too jaded here?
    Sparks wrote: »
    That's what Civil and Mech. engineering did quite a while back, and it's where we'll end up going, we just aren't there yet because there's about 126 years of a gap between civil engineering and software engineering.

    You're focusing in on calendar years here - I'm not sure it makes sense to look at the length of time a discipline has been around, and use that as an important figure to reason about.
    The total number of person hours spend in that discipline, the size and scale of its application globally, etc are important too?

    Sparks wrote: »
    But it's something the IEI and the SME IT sector really ought to be helping along, because they're the ones with the most to gain, financially speaking.


  • Advertisement
  • Registered Users Posts: 1,922 ✭✭✭fergalr


    Sparks wrote: »
    See, I don't buy that mindset.
    Yes, there's a difference between civil and software engineering, but what would you expect when one has a 126-year headstart on the other?
    And yes, we move around more, but (a) that's true of everyone these days, the move away from "job for life" has been a social phenomenon, it wasn't just restricted to IT;
    True, it is not restricted to IT - but I'd say that IT was perhaps the poster child of the change, and that its very much part of the IT culture.
    Sparks wrote: »
    and (b) there are enormous parallels between software engineering today and mechanical engineering a century ago. All this talk of how we'll never be a real engineering discipline, how we're too different, too fast-moving - it's not new, it's around a hundred years old. It was said when mech.eng started up out of steam engines, and it was said when electrical engineering started up out of natural philosophy experimentation with magnetics, and I have no doubt it'll be said again when the next thing comes along.
    That's a very interesting observation - I'm not familiar with the history of mech eng. (did vanilla CS).
    Sparks wrote: »
    What takes us from art to science to engineering is nothing to do with the actual subject matter, and everything to do with how critical it is to society and how much it's depended on.
    That statement is a very extreme position.
    ( Here I present Exhibit A: Economics. )

    But in general, I agree with what you are saying here.
    Sparks wrote: »
    When society decides that it needs trains to be a bit more reliable, or bridges to not fall down, then something that was a lot less rigorous winds up being pushed into being an engineering discipline. And given the dramatic improvements you usually see once the more personality-driven approaches are retired, that's not a bad thing (it's not just how engineering got started, btw, it's how all the professions got started. Once you get to the point where society judges your work to be too important and critical to be playing about with, rigour and regulation and accreditation and so forth all show up in a hurry).

    I think we already know (mostly) how to write reliable software, and develop reliable software systems, when the cost of failure is high. Aerospace is pretty good at that.

    What we can't do is produce them cheaply - or at a price people would pay.
    When non-software people asked me why their Windows 95 crashes, I often asked them if they'd pay 5k for a version that doesn't, and the answer was 'no'. (Now a days they can just buy a mac - but surprisingly, the answer is often still 'no'.)

    A lot of the reason that consumer software is not written in the hardcore engineering way that NASAs software is is that the market - or society - just won't pay the cost of development. They are happy with the current tradeoff.
    I don't think software engineering will change in the way you describe until this economic balance changes - and that may or may not change.

    I don't think its necessarily just a question of time.
    Certainly, time could change it - if in the future cascading failures show up in the interweb, and take us offline regularly for a few weeks - or there are 'cyberwar' events etc. society and business will probably be forced to revise this stance.

    So, mostly I'm agreeing with you here. I think a lot of the driving forces are external to the field of software. But I do think that if society decides it needs more reliable software, software will get seriously more expensive to produce.
    I don't buy the standard academic software engineering argument that all these companies are just doing it wrong and aren't saving themselves the megabucks they could be, if only they followed methodology X. The companies do *a lot* of stuff wrong, but they are striking a balance between cost and quality, and they are doing a much better job than many software engineering 'gurus' would admit (not necessarily a 'good' job - but not as bad as it seems when you consider the thing holisticly).
    Sparks wrote: »
    a lot of people are doing a lot of learning on their own time and dime anyway - and structuring their careers around it.

    Sure, now. You're what, early twenties?
    Quite late 20s now, actually (eek!).
    And back in college, studying for a PhD, choosing learning more over moneh, for better or worse... ...learning an awful lot more, though...
    Sparks wrote: »
    What happens when you're in your late twenties/early thirties and have kids and a family to worry about?
    Yeah - its a very relevant question. Work/life unsustainablity may be partly the reason I didn't follow a career in the games industry, which I used to be interested in (among many things). Not that doing a PhD is easy going either, though...


    I phrased that particular 'time and dime' sentence badly.
    I wasn't intending to say that people should be spending all their weekends or holidays attending conferences, to learn more.

    I guess I'm trying to get at the idea that people can, and do, move between jobs, and choose career paths that expose them to new technologies and new skills, and ideally would continue to do this, even if they have commitments.
    When confronted with two jobs, one which pays a bit better, and the other thats more interesting in terms of learning new skills, I'll almost always take the more interesting one, and I think a lot of people do that, and so continue to learn while working.
    In addition to that, I do think most tech people can and should be reading around within their fields. Maybe this happens when they read someones software engineering blog during their lunchbreak, or the podcasts they listen to when going for a run, or whatever.

    I do agree though - and said it in my earlier post - that employers should facilitate continuous learning. And some really do - often the exploratory phase after a project is completed, or a milestone is hit, when trying to design the next piece of work serves to allow people to go and learn about new technologies in order to best investigate how to solve the next problem. You can't do that if you are in a company that's constantly behind schedule, and constantly firefighting - but thats really a whole other set of problems.

    Sparks wrote: »
    Do you say "well, can't have a career and kids" or do you remember that this isn't a question that even arises in most engineering fields because not everyone is caught up in a madcap scramble to look good to the boss (who doesn't know enough to judge anyway) compared to the latest crowd of coders who're in their early 20s and will happily spout bull to that boss on how they can do all that you do, but better in a new language that's been out for around three months, and for far less salary?

    There are plenty of toxic companies out there, sure, where the workers are essentially setup to try and out compete each other, younger workers used to pressure older workers etc - and everything suffers as a result. Hopefully I'll be able to try and not work for them- but yes, we should have less of them if we can.

    Sparks wrote: »
    The whole "judge the best by the amount of gossip" approach only works well for those who have no life outside of their career - and I mean no life at all. People whose social circles never extend past other programmers, whose idea of a great holiday is three days in a mid-level hotel in the back end of brussels at a conference on yet another web framework, and who get wound up arguing over whether HTML5 really was a superior approach than XHTML2 would have been. People can't live their entire lives like that. Sooner or later, the teenagers become the twenty-somethings, who then go on to become parents and by that point, the lifestyles are utterly incompatible with the demands on those trying to live them.

    It's just not a humane way to live.

    Yeah, there are a lot of people working in bad companies and bad conditions. I'm not sure its a particular problem in the software field, in general, though (certain sections, notably the games industry, aside)?

    There seem to be plenty of companies around that are smarter about these things too? I think the quality of life is much higher in software companies, than, say, accountancy firms, or law firms, or most of the other similar office jobs? And some software companies are very enlightened too.

    Hey, aren't we discussing this skills shortage, that's going to lead to more respect for the more experienced devs anyway?


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    wyrn wrote: »
    Sorry to barge in here but I found this discussion fascinating.

    First off I'm not in the IT sector. There was a time when I was a wannabe programmer (I blame the movie Hackers!).
    A very respectable start.
    wyrn wrote: »
    [...]
    There's a few routes that you can go down with Computer Science. I think a distinction needs to be made (languages, databases etc...) and people study and PRACTICE this for at least two years. Specify after 1st/2nd year and stick to it.
    http://www.youtube.com/watch?v=WWaLxFIVX1s

    wyrn wrote: »
    I think there's so much emphasis on learning the history or background and writing an essay or some small program in a lab isn't useful in the real world. I think computer science students need to be pushed to make a portfolio of their own programs just like artists so that when they go for an interview they have something to show for themselves AND it shows that they are interested in this area.
    Work portfolios are good - college projects are a great way to build them. Final Year Project is generally enough in its own right to talk about at an interview...
    wyrn wrote: »
    Basically I think if universities made computer science separate out into more distinct areas such as programming and had more of an emphasis on writing lots and lots of creative, imaginative, legible and elegant code then we'd be heading in the right direction.

    My two cents from a non-existent, ex-wannabe programmer!
    I really don't agree with this perspective.
    I think undergrad CS should be much more like maths. Ideally with some physics fundamentals thrown in. And much more theoretical computer science, and much less hardware.

    Maybe a course or two on all the technologies and tools du jour - but nothing more than that. It just changes so fast, that if you tech people Ruby on Rails in college, by they time they graduate everything they'll have learned will be outdated, and they won't know enough fundamentals to learn the new stuff.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    fergalr wrote: »
    Yes, but that's sort of what I'm getting at.
    If there's a qualification that means a raise, and a set of hoops to jump through to get it (a set of courses to sit, companies to work for, someone you need to mentor you) - then people will jump through those hoops - regardless of whether said courses, companies and mentoring are in fact the best 'CPD' for them.
    Except that it's not just a case of doing CPD - that study I mentioned in my blog post was talking about assessment of the CPD, in terms of what it contributed to the business. Once you start measuring that, once there's a report going to the CEO saying "Jimmy did a Course X so our profits rose by Y this year", then the question of 'best CPD' is a self-solving one. It's not intractable at all - we just aren't measuring it yet. Others are, it's far from impossible.
    As an aside, I think Spolsky writes a lot of interesting good stuff.
    Oh, there's a whole other thread in that one ;)
    I'm surprised to read this - you really reckon that's true? I'm actually of almost the opposite opinion to this.
    I'm 100% of that opinion, I've seen too many good programmers (people I'd seen working for months) blow an interview on a bad day; and faaaaar too many idiots BS past an interviewer. You can catch the latter with coding tests, but you can lose the former that way as well. And unless you do something like open-source projects as a kind of portfolio, NDAs keep your work away from the eyes of interviewers. I know it's tempting to think that 20 minutes of a chat is enough time to spot a BS artist but it really isn't - I've learnt that the hard way. You can filter out the worst cases, but the ones who get past you are just good enough to do real damage.
    Plus, I can get the candidate to talk me through their previous projects, show me samples of their work
    How do you get past the NDAs? How do you find out how well they work with others, how well they use the workflow tools (hg, trac, etc), and so on? Most of the things that make the difference between a team and a bunch of people sitting in the same room are things you can't spot fast or are specifically prohibited from asking about.
    Are you talking about the best software engineering methodology salesmen here, or the best individual developers?
    Best developers, but the former's true as well.
    Again, whatever about during an interview, if I work on a project with another software person, it absolutely won't take me the aforementioned 'wait ten years, see what they build'. I'd expect to have an extremely good idea of their productivity after a month - no?
    Under stress, maybe (two months is better, and they push that out to six months for management for some reason) - but now what? Unless you have a probationary period (a good idea) you're stuck and even if you have, it may not matter - you're down time and money and tempo and if you drop them and rehire, you risk falling behind deadlines. And since writing a bad reference in this country is a fast way to get sued, you can't even warn someone about someone - and unVarnished isn't a solution to be frank, because I've worked for places where I wouldn't be shocked to find they lied in my reference or did other nefarious things out of spite.
    In other words, it's not very simple.
    But on the upside, other engineering branches have been doing this for longer, and have solved these problems already (these aren't software problems, they're people problems).
    But the C.Eng. accreditation is something someone either has or doesn't, right? How does this really help you place them on the spectrum? Are you telling me you don't think there are any unproductive/idiot chartered engineers out there?
    I won't say no, but since that's the scenario that it's specifically set up to avoid, and since their existence devalues an accreditation that's worth a lot of money to all parties involved, I'd say you're looking at a very low p-value there :D
    I'll put it to you like this - I can't think of any qualification - certainly including C.Eng. - that I would trust in hiring a software candidate over and above the assessment I'd make interviewing them for 30 minutes.
    Would you disagree with this?
    Yes. Not just from experience, but because it would set off all my "your ego is BSing you again" alarms :D
    Am I too jaded here?
    No such thing :D But those qualifications you listed (bar the C.Eng) are not down to merit or mentoring...
    You're focusing in on calendar years here - I'm not sure it makes sense to look at the length of time a discipline has been around, and use that as an important figure to reason about.
    The total number of person hours spend in that discipline, the size and scale of its application globally, etc are important too?
    Important, yes, but skewed. For a start, at our rate of population growth, there's no way something a hundred years ago can ever compete in manhours; but that doesn't mean we can compress 100 years of progress into 1 year :D
    Perhaps more useful is counting time in generations. It usually takes a minimum of one generation to truly change work practices, so that seems a good idea as a rough rule of thumb. Taking that, and allowing for some influence from manhours and greater communications ability, I'd say we're definitely not as far behind civil as the 126 calendar years suggest - but we're definitely not caught up with them either. Give us another forty or fifty years, maybe less. I reckon we'll see it in our working lives.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    fergalr wrote: »
    True, it is not restricted to IT - but I'd say that IT was perhaps the poster child of the change, and that its very much part of the IT culture.
    It's definitely part of some parts of the IT sector - but others are far less ephemeral. I think we base too much of our mental model of the sector on the tiny but vocal part of it that the web represents. For example, the largest deployed codebases out there right now are not web-based stuff or windows-based stuff, they're not even the cobol code in financial houses; the largest codebase is in embedded systems and most of those are thirty-year old chips that have been in active use all that time.
    And the guys in the financial houses could tell you that they don't go changing job every six months (well, up until lehmann brothers anyway).
    That's a very interesting observation - I'm not familiar with the history of mech eng. (did vanilla CS).
    Well, we're at the stage Mech Eng was at back when cars were first coming out. Look at the model T sometime - heralded as the greatest innovation in manufacturing, but the user interface was appalingly bad and starting it could kill you (the starter handle could swing out of your hand when the engine caught, and the engine would then drive it round and into your head, most people dying a few days later from sepsis from badly broken facial bones - it's why the starter motor was invented). We're all looking at trying to build a Ford factory or an Edison invention factory at the moment; but history didn't stop with Ford or Edison, and sooner or later we're going to get past that stage and keep on progressing. It's just amusing to see the parallels (for example, Edison ridiculed electrical engineering degrees, which were just starting up at that time as being an attempt to teach the unteachable, same as some folks today say that you don't need a CS degree to work in IT -- Tesla was one of the first graduates of those programmes Edison would have encountered, and we all know what kind of current is in our wall sockets today)
    That statement is a very extreme position.
    Well, yes, but point out a profession it's not true of (and Economics isn't a profession, it's an academic study and while it's important to society in an abstract sense, you don't see an economist's work directly in your day to day life the way you see a bridge or clothing or your car or a building or electric lighting or a doctor or a lawyer).
    I think we already know (mostly) how to write reliable software, and develop reliable software systems, when the cost of failure is high.
    comp.risks disagrees, with examples, every fortnight for the last decade or so...
    Aerospace is pretty good at that.
    Er, no, it's really not. NASA's human-rated stuff is famous, but not representative. Ariane 5, Genesis, Mars Polar Observatory, the Reaper control software, Airbus's control software - all of them have shown that aerospace software is as flawed as the rest of our software.
    I don't think software engineering will change in the way you describe until this economic balance changes - and that may or may not change.
    Actually, I think it won't be the economic balance that triggers it - I think it's going to be a mix of the iPad and lawyers.
    By which I mean that when people start thinking of computer systems as appliances (which is what the iPad is designed as -- and others too but the iPad's the best current example in the market) and not as big, complicated computers that are all mysterious and sometimes just crash (and which they'll accept) - well, that's when they start looking for decent warranties and start suing for damages. So when your GPS turns you into oncoming traffic on a one-way street and you reach for the solicitor's number after you wake up in intensive care - that is the turning point. And embedded developers are starting to worry over that point a lot of late.
    if in the future ... there are 'cyberwar' events etc. society and business will probably be forced to revise this stance
    I'd say that this is the first step on that road myself.
    I do think that if society decides it needs more reliable software, software will get seriously more expensive to produce.
    I don't doubt it - but on the other hand, it'll become cheaper in some ways.
    For example, today a civil engineer could get a church designed and built in a matter of months for not too much money - two hundred years ago, it would have taken years and most of the resources of the town it was being built in. So normal buildings have gotten much much much much cheaper and faster to build and safer.
    But Cathedrals, which used to be the work of entire lifetimes in several generations and which represented mind-boggling sums of money... well, we haven't actually got the setup to build those at all anymore, not the way they used to be built. Building a sydney opera house we can do, but finding enough talent to carve stone in situ and that kind of detail work, that's not really possible anymore. We've gone from the point where everything's handmade (and hugely expensive) to where a subset of everything is standardised (and cheap enough for all to have them) but the rest isn't made at all anymore.

    I think that's the model we're going towards. We may well see a large falloff in startups, but a corresponding increase in standardisation. If we're lucky, we might finally convince a few developers to stop reinventing the bloody wheel while we're at it :D
    I don't buy the standard academic software engineering argument that all these companies are just doing it wrong and aren't saving themselves the megabucks they could be, if only they followed methodology X.
    That's not just academia though, it's a lot of the companies as well - all the agile subsets, all the nosql stuff we're seeing today, all the pro-object oriented stuff we saw ten years ago... this isn't a new thing, it's our process!
    Quite late 20s now, actually (eek!).
    Not long left now my friend ;)
    Yeah - its a very relevant question. Work/life unsustainablity may be partly the reason I didn't follow a career in the games industry, which I used to be interested in (among many things). Not that doing a PhD is easy going either, though...
    Nope, and the PhD is an interesting one because it's really only useful if you're headed for R&D (and I say that as someone with half a thesis sitting in his /home ...)
    When confronted with two jobs, one which pays a bit better, and the other thats more interesting in terms of learning new skills, I'll almost always take the more interesting one, and I think a lot of people do that, and so continue to learn while working.
    I know I always used to do that. Today, I'm looking at the €4500 each of us has to now pay per annum to pay for the interest on the nama loans and wondering if that's an option anymore when the cost of raising children and morgages have to be dealt with as well.
    Maybe that's a perennial question, and maybe that's why most engineers leave technical work for management within a decade or two of graduation...
    In addition to that, I do think most tech people can and should be reading around within their fields.
    Maybe they should; but as Peopleware pointed out, they don't.
    There are plenty of toxic companies out there, sure, where the workers are essentially setup to try and out compete each other, younger workers used to pressure older workers etc - and everything suffers as a result. Hopefully I'll be able to try and not work for them- but yes, we should have less of them if we can.
    That would be a bloody good thing - but I worry that there's not just more of them than you're thinking, but more that even I'm worrying there are!
    I'm not sure its a particular problem in the software field, in general, though (certain sections, notably the games industry, aside)?
    In general? I'm not sure, we're a bloody large sector. But the games field, the small web companies, those are absolutely plagued by this.
    There seem to be plenty of companies around that are smarter about these things too? I think the quality of life is much higher in software companies, than, say, accountancy firms, or law firms, or most of the other similar office jobs? And some software companies are very enlightened too.
    I wish I could say I'd encountered enough to be happy about that, but even the best places I've been in weren't consistently good - they'd be great in one area, for a while, then make up for it elsewhere :(
    Hey, aren't we discussing this skills shortage, that's going to lead to more respect for the more experienced devs anyway?
    *hehe*
    I wish. Some folks think it makes more business sense to hire new graduates fresh from finals, who don't know enough to demand decent conditions or to say no to unreasonable demands (or even enough to recognise either of those), work them like dogs for 11 months (not a year, because that's when permanency sets in), then fire them on a pretext and get in new graduates, all the while churning out code that looks like the worst stereotypical example of code from India or China. And those folk aren't going out of business...


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    Sparks wrote: »
    Except that it's not just a case of doing CPD - that study I mentioned in my blog post was talking about assessment of the CPD, in terms of what it contributed to the business. Once you start measuring that, once there's a report going to the CEO saying "Jimmy did a Course X so our profits rose by Y this year", then the question of 'best CPD' is a self-solving one. It's not intractable at all - we just aren't measuring it yet. Others are, it's far from impossible.

    I dunno - I followed that link to the IEI article, and I couldn't find anything convincing in it. Maybe if I tracked down and read the articles it was talking about in turn - dont have the time at the mo - but most of the claims it seemed to quote were just correlations.
    I'm totally willing to believe there's a correlation between companies supporting CPD and companies that perform well and have good staff - but I'd be extremely sceptical of anyone claiming to produce a report saying 'Jimmy did course X, our profits rose Y'. I believe its very difficult to measure these things... selection biases, whats an adequate control, the Hawthorne effect, etc.
    Even figuring out a single employees baseline contribution to the company's profit, in an engeering discipline, is a very hard thing to do. (Easier if they are in sales.)
    Sparks wrote: »
    Oh, there's a whole other thread in that one ;) I'm 100% of that opinion, I've seen too many good programmers (people I'd seen working for months) blow an interview on a bad day; and faaaaar too many idiots BS past an interviewer.
    Yes, I've seen good programmers have a bad interview day too, absolutely.

    But, while I've also seen idiots BS their way by less technical managers, I think it's pretty hard to BS past someone that's technically skilled and is conducting a thorough technical interview.
    Like, if I ask someone to explain to me how binary search works, and they are chancing their arm, I'm going to know pretty fast. I'll be patient, and encouraging, and not look for quick answers, but at the end of the day, if I drill down enough to the technical topics I'll start to get a good sense the persons overall level.
    I may not be able to tell a super good developer from just a good one, but I'd hope to be able to tell who has copied their CV from the internets.
    Sparks wrote: »
    You can catch the latter with coding tests, but you can lose the former that way as well. And unless you do something like open-source projects as a kind of portfolio, NDAs keep your work away from the eyes of interviewers. I know it's tempting to think that 20 minutes of a chat is enough time to spot a BS artist but it really isn't - I've learnt that the hard way. You can filter out the worst cases, but the ones who get past you are just good enough to do real damage.

    Maybe there's a category of excellent technical BS'r out there, that have a good understanding of core CS concepts, that I haven't met yet. But if they are that good, surely the company can find a use for them in sales?!

    If you could describe about situations in which such a BS artist fooled you, how they fooled you, and what sort of damage they went on to do, then that'd make a really interesting blog post...
    Sparks wrote: »
    How do you get past the NDAs? How do you find out how well they work with others, how well they use the workflow tools (hg, trac, etc), and so on? Most of the things that make the difference between a team and a bunch of people sitting in the same room are things you can't spot fast or are specifically prohibited from asking about.
    You are right about the NDAs - I've been a candidate before and had to tell people that I couldn't talk about certain projects in more detail, because of NDA concerns.
    People generally put something on their CV. The important thing I find is just to have a conversation with them, and drill way down - ask them to name one technical area they really understand, and then get them to explain exactly how it works, and keep asking more detailed questions - in the discussion, you learn a lot.
    Ask them how they write code. Can they even have a conversation on developer productivity? What tools would they use, if they were restructuring the team? You don't need to ask them to break NDAs to find the answers to those questions.
    Sparks wrote: »
    Best developers, but the former's true as well.
    Under stress, maybe (two months is better, and they push that out to six months for management for some reason) - but now what? Unless you have a probationary period (a good idea) you're stuck and even if you have, it may not matter - you're down time and money and tempo and if you drop them and rehire, you risk falling behind deadlines. And since writing a bad reference in this country is a fast way to get sued, you can't even warn someone about someone - and unVarnished isn't a solution to be frank, because I've worked for places where I wouldn't be shocked to find they lied in my reference or did other nefarious things out of spite.
    In other words, it's not very simple.
    But on the upside, other engineering branches have been doing this for longer, and have solved these problems already (these aren't software problems, they're people problems).
    I think you are putting too much faith in how well other engineering branches solve these people problems. I may be wrong. Next time I'm hanging out with a bunch of civil/mech engineers, I'm going to have a chat with them about this sort of thing.
    Sparks wrote: »
    I won't say no, but since that's the scenario that it's specifically set up to avoid, and since their existence devalues an accreditation that's worth a lot of money to all parties involved, I'd say you're looking at a very low p-value there :D

    Yes. Not just from experience, but because it would set off all my "your ego is BSing you again" alarms :D No such thing :D But those qualifications you listed (bar the C.Eng) are not down to merit or mentoring...
    Really?
    Surely something like a PhD is supposed to have a large chunk of both (peer-appraised) merit and mentoring? And solicitors must pass exams, and have a mentoring period too? Same with medical doctors, etc.

    I have to say, your faith in the C.Eng. qualification makes me wonder if I've underestimated it. I don't know though, I've met some C.Engs that were fine at what they did, but you know, they do their job, they've gone through the training, but if they were software people, they wouldn't be what you'd consider the really good ones. Hmm... food for thought.
    Sparks wrote: »
    Important, yes, but skewed. For a start, at our rate of population growth, there's no way something a hundred years ago can ever compete in manhours; but that doesn't mean we can compress 100 years of progress into 1 year :D
    Perhaps more useful is counting time in generations. It usually takes a minimum of one generation to truly change work practices, so that seems a good idea as a rough rule of thumb. Taking that, and allowing for some influence from manhours and greater communications ability, I'd say we're definitely not as far behind civil as the 126 calendar years suggest - but we're definitely not caught up with them either. Give us another forty or fifty years, maybe less. I reckon we'll see it in our working lives.

    Predicting the future is indeed a tricky business.
    Sure, in 40 or 50 years, we'll have computers that do the software engineering for us...


  • Advertisement
  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    fergalr wrote: »
    but most of the claims it seemed to quote were just correlations.
    Correlation isn't causation, but a correlation that strong (92% of the top 100 do CPD to level 4, against an 11% median for the whole industry) definitely merits investigation.
    I'd be extremely sceptical of anyone claiming to produce a report saying 'Jimmy did course X, our profits rose Y'
    Depends on what course X was I'd guess; but you're generally able to measure various things in the workplace and observing changes in those metrics is what they're talking about. For a bad example, Jimmy does a course in project management and estimation; afterwards his deadline breaks fall off dramatically. For a better - if trivial - one, Jimmy does a series of courses in Python programming; afterwards the coding group hauls in €Y in Python contracts compared to €X beforehand.
    Like, if I ask someone to explain to me how binary search works, and they are chancing their arm, I'm going to know pretty fast.
    Yeah, but how can you tell the guy who will chase after the latest fad idea for a design from the guy who'll check the numbers and do some testing first?
    Like I said, you can find the worst cases (eg. the guy who doesn't get binary search or tries or whatever) fast, but not the cases who're just good enough to do real damage (I may be biased, but I've been called in more than once to fix that kind of mess).
    But if they are that good, surely the company can find a use for them in sales?!
    They tend to end up in Sales allright, or Marketing, or as the trophy CTO. You know the character in Dilbert that promises the product can do six things that are physically impossible and will be shipped on tuesday even though you've not gotten off the whiteboard yet? That's the guy...
    If you could describe about situations in which such a BS artist fooled you, how they fooled you, and what sort of damage they went on to do, then that'd make a really interesting blog post...
    It'd also make for a really expensive libel lawsuit :D Our whole industry is basing hiring off reputation to one extent or another - have you ever interviewed someone without googling them (in the last few years at least)? And if you wrote a blog post slating their work practices, that's going to impair their right to earn a living and you're in front of a High Court Judge...
    You are right about the NDAs - I've been a candidate before and had to tell people that I couldn't talk about certain projects in more detail, because of NDA concerns.
    Yeah, it's something that continually irks me when writing for the blog. "Wow, that was a PITA of a bug, I ought to write that up for the blog... oh crap, NDA" :(
    Ask them how they write code. Can they even have a conversation on developer productivity? What tools would they use, if they were restructuring the team? You don't need to ask them to break NDAs to find the answers to those questions.
    No, but all you get is talk, and those are the things that you can't just talk the talk on. Hell, the worst offenders I ever met were able to give you the best conversation on those topics - and then they tie the team up in knots because of bad documentation (another bugbear of mine from past experiences) or not using version control or not listening to clients or whatever.
    I think you are putting too much faith in how well other engineering branches solve these people problems. I may be wrong. Next time I'm hanging out with a bunch of civil/mech engineers, I'm going to have a chat with them about this sort of thing.
    Well, I wouldn't say they've got perfect solutions - but they do have workable ones, which is a long way past us (and I don't think a perfect solution to a human problem is really possible anyway).
    Surely something like a PhD is supposed to have a large chunk of both (peer-appraised) merit and mentoring? And solicitors must pass exams, and have a mentoring period too? Same with medical doctors, etc.
    MDs are probably an exception allright ;) But then, they're required to undertake CPD by law. Barristers too - not sure about solicitors. PhDs are, I'm afraid, more about endurance and tenacity than brilliance and competence (that's not to say any idiot can get one, just that you don't have to be outstanding in your graduating class in college or get played by Russel Crowe in a movie :D ). Professorships are more an administrative/political role here than in the US (where they're really a different animal alltogether - their professors are more akin to our Lecturers and Fellows). And successful CEOs... well, there it can go either way really. Some are really good, some are just lucky, and telling them apart isn't trivial.
    I have to say, your faith in the C.Eng. qualification makes me wonder if I've underestimated it. I don't know though, I've met some C.Engs that were fine at what they did, but you know, they do their job, they've gone through the training, but if they were software people, they wouldn't be what you'd consider the really good ones. Hmm... food for thought.
    Thing is, what defines a "really good" developer and what defines a "really good" civil engineer? There's the nub of the question.
    Predicting the future is indeed a tricky business.
    Sure, in 40 or 50 years, we'll have computers that do the software engineering for us...
    :DTo err is human... to really screw up, you need a computer. :D


  • Registered Users Posts: 1,428 ✭✭✭MysticalRain


    As the saying goes, don't believe everything you read in the papers. A lot of Irish "journalists" just simply regurgitate press releases from various business lobby groups and publish meaningless statistics that count up all the IT jobs on the main Irish recruitment websites without taking account of the fact that the same job might be posted on multiple websites and that the same websites are flooded with fake jobs these days. Even in the boom years, you still had 50-100 people applying for a single job.

    I think a career in programming is more of a vocation than a job, so maybe there will always be a shortage of who are really good at it. But the fact is employers could do a lot more to encourage people to go into the industry. Employers don't want to hire graduates which hinders people from entering the industry in the first place. It's hard to be optimistic about a career if your work can be outsourced to cheaper location in India. Long hours and anti-social work practices discourage women from joining the industry. I wish employers would simply stop whining and actually do something to make IT a more attractive career people who are not just geeks.


  • Registered Users Posts: 3,766 ✭✭✭Reku


    I wish employers would simply stop whining and actually do something to make IT a more attractive career people who are not just geeks.
    But did the bible not say "Blessed are the geeks for they shall inherit the earth"? :p

    I wish employers would just shut up with their BS about the quality of Irish graduates when they don't even give those who achieve top grades a chance. They also regularly complain there aren't enough science graduates, yet most science graduates I know are either employed in the financial services (yup, I'm sure there's lots of scientific knowledge needed there.... They could've dropped out in third year since most of the science courses stop worrying about a person's maths education after that.), have emigrated, or gone back to college because their science degree (even those who recieved a 1.1!!!) is useless in Ireland. The only science graduates I know who are still engaged in science are working/studying in the universities as there quite simply aren't the jobs for them. Unfortunately government figures tend to just take these statements about there not being enough science graduates as gospel, and don't bother looking into the figures, and so they in turn repeat the claims that we need more science graduates.


Advertisement