I hear that the economy still sucks and lots of people are out of work, and I believe it. At the same time, I hear managers complain that they can’t find good engineers who know the tools and languages to create mobile and web software. Nick Saint published an insightful article today, “Why It’s So Darn Hard To Hire A Decent Engineer – Even In This HORRIBLE Job Market” (via @johnwoodell). I enjoyed his comment that “the media was more concerned with the largely make-believe narrative that programming jobs were all being outsourced to India.” It is true a lot of jobs are outsourced, but it seems like there is still significant demand here. A while back I wrote about an alternate approach, I call insourcing, but that’s just part of the story.
Saint also notes that college students are unaware of how lucrative the opportunities are for programmers. That problem is compounded by the fact that most people have no idea what a programmer does. Unlike medicine or law, which you learn about in grade school, kids (and most adults) have little exposure to software development. Many entrepreneurs are discovering; however, that most businesses today require (or at least benefit from) an on-line presence that often requires some software development. Even non-technical business owners and managers need to know something about software development. The knowledge and skill gap goes beyond a lack of professional programmers.
What can be done?
Over a year ago, Sarah Mei and I found ourselves in the middle of a surprising dearth of women in the San Francisco Ruby community (~3%). We decided to fix it by simply teaching women Ruby on Rails in weekend workshops. Over a year later, we have significantly changed the gender balance in the community, but more importantly the workshops created a fundamental shift in the ecosystem, furthering some of the natural effects of open source. In the past year there have been more study groups and open hack sessions for all genders.
Seeing a demand, Blazing Cloud started teaching classes, which have grown to include Javascript and HTML, as well as Ruby and Rails. In addition to teaching a range of web technologies, we also have broadened the offering to meet the demand for classes for people who have no prior programming experience. People are thirsty for this knowledge. The students are professionals who are driven to work nights and weekends to hone their skills. Some are unemployed; some are looking to switch jobs; there are always a few entrepreneurs and some who have just always wanted to learn to program and never found a way in.
Additionally, we started a cross-training program in collaboration with Captain Recruiter. This innovative program started with Honk.com, a forward-thinking company who signed up for the first session. Ali Crocket, an engineer with no web development experience, paired with Jen-Mei Wu, a Blazing Cloud senior Rubyist, on-site with the Honk team. After 12 weeks, Ali was up-to-speed and hired as a full-time employee. We are in the midst of a second session with Scribd and have already started interviewing for a new fall session.
It is a strange artifact of the ever-changing software industry that experienced engineers can find themselves with obsolete skills and unemployable, but the problem also seems eminently fixable for the folks who are willing to dive back in. The core skill is problem-solving, but it must be combined with the ability to learn quickly and communicate well for true success in this field.
The good news is that lots of organizations and individuals see the same problems and are offering solutions. In San Francisco, there is NoiseBridge, with Hacker Dojo on the peninsula. Women2 Labs offers a real-life experience for not just hackers, but for designers and marketing folks. Other cities have different programs with a similar spirit and I’m sure there are a dozen SF resources that I’m neglecting to mention. There’s a meetup every night of the week if you want to start something or learn something. Change is happening. I don’t think this kind of change is inevitable, but I do believe that a whole lot of people want it and are working very hard to make it happen.
One Comment
Businesses should probably invest more into training, but it is going to be training that helps the business not necessarily helps the future career of the employer.
Programmers (that want to move up) need to train themselves to be software developers, computer scientists, craftsmen, leaders, teachers. They need to get out from behind the keyboard for a bit and find out how customer problems are best solved, and learn that typing in code is a pretty small part of that.
They have to start learning about flow, value, and cadence in order to be able to work in a team delivering customer value in the form of software. They need to be able to learn not only how to satisfy a requirement, but how to do it in a way that keeps the code cleaner than when they started, and maintainable. They need to learn how to communicate with the customer and work in tight feedback cycles so waste like rework is minimized.
If they want to do more than shuffle data between a DB and a web page, they need to keep up with computer science, and have a tool box of algorithms that they can use to build competitive advantage by solving interesting complex problems in innovative, simple ways.
They need to learn about analysis, design and management if they want to work in a self organizing team of craftsmen rather than typing in boilerplate that some designer or architect has thrown over the cubicle wall.
The need to be entrepreneurs. They need to be passionate and engaged, they need to blog, read mailing lists, collaborate on open source projects, learn a new language every year, go to conferences and user groups. Heck they need to SPEAK at conferences and user groups.
Too many devs spending all day sitting in front of the PC, copying and pasting, and watching the compiler run, complaining about how the industry is holding them back.
Of course not everyone needs to do that. 90% of programming will always just be short disposable projects shuffling enterprise data between the DB and a web page and back, and doesn’t even require a computer science degree let alone much business acumen or even thought.
But there are shortages in the remaining 10% and great opportunities for those that care.