Wednesday, November 21, 2012

Education Policy - Australia Needs More Software Engineers

Hiring top software engineering talent in Australia is hard, there just aren't enough people studying computer science degrees. We need better computer science programs in primary and high schools to encourage more people to study this degree, then we need a lot more places in higher quality computer science courses at Universities.

Over the last 10 years we've seen a large number of industries shifting online. We don't buy CDs anymore, we buy digital files from iTunes or subscribe to Spotify. We buy less physical books, instead we buy eBooks for our Kindles and iPads and when we still buy physical books, we buy them from online stores like Amazon. Newspaper and magazine sales have been declining for a decade as people go online to read their news. A similar story is playing out with TV. And of course the retail industry we operate in at Shoes of Prey and Sneaking Duck is seeing a big shift online as well. All of these new digital industries require lots of great software engineers to build the products and tools that consumers and businesses in these industries use.

The next 10 years is going to see this move towards digital accelerate. 3D printing is going to do to a large number of industries what mp3s have done to music and eBooks have done to the book industry. Rather than buying physical products we'll buy digital designs online and print them ourselves, or just scan existing products and print copies. If you haven't read up on 3D printing you have to watch this video:

.

The production of everything from tools, toys, household appliances, electronics and even human organs are going to be completely disrupted by this technology. And if Australia is to be at the forefront of game changing industries like this we need lots of great software engineers to build these technologies.

As a country, we're investing a huge amount of money in the National Broadband Network. The speed of the network is going to allow lots of cool new technologies to be developed but not without lots of great software engineers. Without software engineers to build the software to run on the network we're not going to be able to use it to it's full advantage.

5 of the top 10 world's largest companies by market capitalisation are technology companies. Apple (1), Microsoft (5), Google (7), China Mobile (8) and IBM (9). 10 years ago there were only 2, Microsoft and Intel. The future will belong to technology companies and the question for us as a country is whether we will be a significant part of this. I love the ideas put forward by Paul Graham in his article, 'Can you buy a Silicon Valley? Maybe.' In the article Paul describes how for an investment of around $1b, a city could bring in 1000 good quality tech startups potentially kickstarting a Silicon Valley type industry in the city. I think Paul's approach is highly plausible here in Australia except for one issue - there wouldn't be enough software engineers to work at the influx of startups. At Shoes of Prey and Sneaking Duck we already struggle to hire enough top quality software engineering talent, there just wouldn't be enough software engineers for another 1,000 tech startups!

So how do we get more people studying software engineering? Our co-founder and CTO Mike Knapp was inspired to study software engineering by his IT high school teacher Peter Whitehouse at St Joseph’s College Gregory Terrace in Brisbane. He loved his IT classes so when he finished school with the marks to get into Computer Science at University this was an obvious choice for him. We need more Australian students to have experiences like this. We need inspiring and talented IT teachers in high schools.

I was speaking about this issue with Finn Age Hänsel, the Managing Director of The Iconic and he was explaining that a decade ago the German government was concerned that not enough people were studying engineering. Great engineers help form the backbone of the German economy so the German government launched a program where engineers from companies like Porsche and Mercedes took their products into high schools and showed the students the great engineering work that goes into these products. The program saw a near immediate uplift of 300% in the number of students applying for engineering places at University! 10 years later and the German economy is one of the few economic success stories in Europe. We need something similar to encourage more people to apply to study computer science here in Australia.

Once students have developed a passion for software engineering we need more computer science places at University and we need to improve the quality of the education there. Mitchell Harper, co-founder of BigCommerce does a great job in this SMH opinion piece of describing how the computer science curriculum at our Universities needs a major update to keep up with modern software engineering techniques and programming languages.

The issue of more people studying computer science was a prominent one at the recent Prime Minister's Forum on the Digital Economy with everyone from industry leaders like Google to startups singing the same tune that we need more people studying computer science in Australia, and the Prime Minister took the issue away from the day as one of her 3 key points. As a follow up Senator Chris Evans, Minister for Tertiary Education, Skills, Science and Research is chairing a discussion on these issues in Canberra today. It's great that the issue is getting the attention it deserves from Government and I would urge the Minister to ensure that changes are made to computer science education in Australia so that rather than being left behind, Australia is at the forefront of the exciting new industries that are going to develop in the coming decades.

11 comments:

  1. I went back to my Uni recently, for a "what do you think about your IT degree now you've been out in the workforce for a couple of years" night.

    The consensus was it's hard to find jobs as an IT grad, the work straight out of Uni is for very long hours, and at a much lower level than grads expect. There were employers there too, who emphasised the difficulty of getting a job in Sydney/Australia and gossiped about the people in IT they know who've just been laid off.

    So yeah, I agree with your persepctive: future jobs will increasingly be online, we need more Aussies skilled in IT and from younger ages. But, there's a definite gap between ideas and reality.

    Yes, I read the SMH article, but I'm not sure I fully agree. '25 years old' is a good sound bite, but only partly true (the emphasis was on how computer languages work, underlying concepts, what makes code good or bad? etc, not on learning a specific computer language).

    Also, my partner has been looking for an IT testing job for a year. He'd be great as a tester, has junior-level experience and OK people skills but can't sell himsself in interviews, so yeah, unemployed. Not the only story I've heard like that, too.

    ReplyDelete
    Replies
    1. Interesting thoughts, and perhaps it's our part of the industry and the type of people we're looking for that makes hiring for us harder. To be fair, we've been able to hire the people we need up to now, but not without a significant investment in our hiring process to ensure we're getting exactly the right people, because there aren't that many of them. Best of luck to your partner finding a good IT testing job, that must be tough taking a year to find something. If you have a link to their resume online etc. feel free to post it here in case others are looking for a junior tester!

      Delete
  2. Part of the problem is the mediocre pay and conditions in Australia for a software engineer relative to elsewhere in the world, particularly in the US. Also comp sci is _hard_ - I know a lot of people who enrolled who then dropped out because it was too difficult or they found it just wasn't for them. So the trick would be to target people who are genuinely excited about software engineering, but I'm not sure how many would already be slipping through the cracks here.

    Btw if you're struggling to hire in Sydney, have you tried luring developers from Melbourne? There seems to be fewer programming opportunities there and quite a few people looking for a good role.

    ReplyDelete
    Replies
    1. Hi Miles, good thoughts and comp sci is definitely a hard degree, but I think too many smart people go and study law, finance and similar degrees (as I did) when as a country we'd be better off with more of these people studying software engineering. I and my high school classmates got next to no exposure to software engineering in high school so it was not something I even considered. That needs to change.

      We're ok with hiring for the moment, but luring good developers from Melbourne sounds like a good plan for the future, cheers!

      Delete
  3. If you had a choice between Mining Engineering or Software Engineering, which would you choose? It's a bit more difficult to offshore a Mining Engineer to Mumbai...

    ReplyDelete
    Replies
    1. Hi Grant, you make a reasonable point but the sort of work our software engineers are doing can't easily be outsourced and we do everything in house in our Sydney office. We find having people all in the one location is a massive plus for productivity, so I don't think there's too big a risk here.

      Delete
  4. A couple of thoughts:
    The Australian CS degree I am doing has Java, PHP, C and C++. If you cant make a business run out of that you are in trouble.

    If I am a top flight software engineer am I going to work for someone else or execute on my own ideas? Both?

    Programming changes rapidly (every 4 years or so), can a university university degree (at least 3 years) ever reflect industry wants (as opposed to needs)?

    IT jobs are getting laid-off/outsourced in many industries. So where is the practical, non-theoretical experience that makes a great engineer going to come from?

    Which hiring organisations actually have the infrastructure to foster expertise in "hot" fields like agile, big data etc?

    ReplyDelete
  5. > The Australian CS degree I am doing has Java, PHP, C and C++. If you cant make a business run out of that you are in trouble. Programming changes rapidly (every 4 years or so), can a university university degree (at least 3 years) ever reflect industry wants (as opposed to needs)?
    All good points, but teaching needs to stay relevant to be interesting for students. Mike graduated 10 years ago but he tells the story of speaking with his career counsellor in his first year and saying he wanted to take lots of courses in web programming because he thought that would be big. His career counsellor said, 'Why would you want to do that? Don't you want to learn to code real software?' That sort of attitude isn't ideal.

    Having said all that, the grads we've been hiring are excellent and learn what they need to very quickly, so the University system has served them well. But then we've also been fortunate to hire the best of the best from UNSW so the smartest students are probably always going to perform well despite the teaching.

    > If I am a top flight software engineer am I going to work for someone else or execute on my own ideas? Both?
    I think both are excellent options. Mike worked as a software engineer at Google for 3 years before starting Shoes of Prey. He learnt a lot at Google which has helped us at Shoes of Prey and Sneaking Duck. I hope we're able to teach our software engineers lots while they work for us and if they go on to found their own companies I'd be stoked. With the massive amount of change going on in so many industries, there will be huge opportunities to start new and successful businesses over the coming decades, and those with software engineering skills are well placed to take advantage of them.

    > IT jobs are getting laid-off/outsourced in many industries. So where is the practical, non-theoretical experience that makes a great engineer going to come from?
    Some lower level IT jobs might be getting outsourced but higher levels ones definitely aren't. Google and Atlassian, both large employers of high quality software engineers both can't get enough good people in Sydney.

    > Which hiring organisations actually have the infrastructure to foster expertise in "hot" fields like agile, big data etc?
    That's a fair point, but perhaps we need more software engineers who can start businesses in these fields? Any big data business is going to need at least one, if not more software engineers as co-founders.

    ReplyDelete
    Replies
    1. You nailed it re: teaching interesting things, I have very little interest in calculating network encryption protocols (its all automated these days) but its a prerequisite of a CS degree. Perhaps CS needs to split into fields into majors like engineering, networking, data etc?

      Re talented engineers, its very hard to attract people to a field in where only the top talent can get employment. Other fields like accounting or finance (not so much law granted) have an abundance of low level jobs for those who dont excel for the 3 years after high school can enter a workforce and see what segment/department truly interests them. If we get rid of low level devs, BAs and testers how will people actually identify real-world passion?

      Delete
  6. This comment has been removed by the author.

    ReplyDelete
  7. Hi. I am a Software Engineer from the Philippines and I want to work in Australia with this profession. If ever I can move there, will I have the security of not loosing my job from outsourcing? What kind of IT jobs should I apply for and how can I do that considering I am still outside of Australia.

    ReplyDelete