The beginning of 2013 saw an amazing amount of buzz around Code.org, a non-profit dedicated to growing computer programming education. I'd like to start off by stating that I personally regard the principle behind Code.org, and other organizations like it, as a very noble one. Recruiting new people, especially youths, into software-based careers is admirable and important. And, to be blunt, they have seen some real success thus far. But now, months after the limelight has dimmed, It's starting to seem that some of the messaging surrounding this movement is a bit... peculiar.
I am writing this a journalist and an observer, not a practitioner. However, I do know an important cause when I see one, and having spent the last year at SmartBear has helped me recognize just how imperative not only software, but high-quality software, is to our world and our future.
However, the more I learn about this industry the more I question whether Code.org really has the correct message. I'm not saying their message is wrong, necessarily, but I do consider it to be incomplete.
As it stands, is this really a lasting movement? Is this the best way to drive young people of all backgrounds toward technical careers? Or are there more deep-rooted problems that need to be addressed simultaneously in order for Code.org's message to be completely successful?
These are the questions I've been asking programmers, testers and product managers over the last few months. And while I've yet to find anyone who will disagree with the overall idea that Code.org is promoting, I have found a few holes that really need to be addressed if we're going to move forward and evolve as an industry.
Many people and organizations different organizations are finally standing up and pointing out that we, the United States, are not producing nearly enough programmers and engineers. The problem is that, so far, it has seemed like just a trend. The understanding that we need more engineers is now mainstream belief. It's pop culture. But, as we all know, we have the collective attention span of a goldfish when it comes to socioeconomic trends. Is this mainstream push for more engineers also just a phase we're going through? Will Code.org soon fizzle into the background noise like Gangnam Style and the Harlem Shake?
If so, we're all in trouble.
Is it really sending the right message to have celebrities, like Will.I.Am, and professional athletes, such as Chris Bosh, as major spokespeople of this cause? Sure, those names alone may draw the attention of some kids. But is this a powerful marketing strategy, or is it actually glossing over the true importance of this situation?
In an interview earlier this year, Marlon Bailey, a software architect from the SmartBear office in Florida, impeccably described the need for our country to be producing more technically minded people:
If you're looking at what's going on in the industry-- looking at what's going on with who's being produced from our schools-- we're not building engineers. We're not building computer scientists. We're not building people that are basically going to build the things that we all know are necessary.
You look at the self-driving car. A lot of people I talk to don't realize how close that is right now - that they're legal, and that they're driving on the road right now. Who's going to program the code and make those work? Who's going to work on electronics and robotics systems to make that work?
So basically you have a nation of, say, truck drivers right now. In 10 years, those guys are probably going to be out of jobs. And it's going to hit them, which is basically what's happened right now. There's a revolution in our education system to keep up.
And it's sad! It's very important. So I commend the guys pushing the code.org stuff. I just worry that it feels a little cultural right now, where people don't feel like they actually need to [learn how to code]. If a computer's too complicated, and it's this magical item, then they don't need to learn it.
Marlon's point obviously wasn't to bash truck drivers, it was just to say that the people in our society need to be ready for the changes that are coming. No longer is it okay for the average Joe to look at an iPad and see a magical piece of equipment. They need to see a tool that they understand and know how to utilize.
This is exactly why this can't just be a temporary fad. We can't leave it up to celebrities to draw the attention of children. This movement needs to start from the bottom and be organic. It needs to start with the masses, rather than be brought to them by millionaires and ball players.
Yes, sponsorship from a recognizable face will start it off with a big kick, but what happens after that? This needs to be something that starts with my generation, where everyone sees it as their responsibility to at least understand the basic principles behind software development.
Are the Jobs Really There?
Code.org makes the argument that there just aren't enough technical people to fill all the wonderful programming jobs that will be created in upcoming years. Well, that's not entirely true.
Yes, you're reading that correctly. According to the U.S. Bureau of Labor Statistics, American jobs for computer programmers will grow at a slower rate than the average occupation between 2010-2020. The text that accompanies this graph on the U.S.B.L.S states that:
Since computer programming can be done from anywhere in the world, companies often hire programmers in countries where wages are lower. This ongoing trend will limit growth for computer programmers in the United States. However, companies may continue to hire computer programmers in low cost areas within the United States.
I suppose this is a good thing for those of you reading from outside the U.S., but for American technology lovers it appears as though the pastures aren't quite as green as we've been lead to believe.
Many people, including a few commenters on a post on SmartBear blog, seem to have a pretty simple solution for those business owners and managers, some of whom are featured on Code.org promos, who are insisting they just can't find enough programmers to fill positions: Pay up!
Yes, these are simply online comments on an article. But the point these readers express is a valid one that, along with the data from the U.S.B.L.S., concludes that if businesses are really are concerned about the supply of programmers in this country they are going to need to start bringing jobs back to America and incentivize young people with higher wages.
If Code.org does succeed in generating more software engineers in the future, it is possible that we'd see technical jobs coming back to America. It's also very possible we'd continue to see salaries kept relatively low due to the potential for companies to outsource jobs to the even higher supply of technical workers in other countries. Is that really a gamble that the next generation is going to want to take?
Who's Going to Test It?
Programmers are important, but so are testers and ops people.
If we're going to be increasing the amount of software code written, how are we going to make sure all of this technology works? How are we going to make sure the apps that these programmers write aren't going to crash at the first traffic spike? Sure, some developers could probably make the transition to testing and ops, but doesn't that defeat the purpose of Code.org? If we're going to need more testers, why don't we train more testers? And what's the best way to prepare people for jobs in software testing?
Are you sitting down?
The obvious answer is for universities to start creating software testing degrees. Sure, computer science can cover some of the basic knowledge needed to become a software tester, but if programming deserves it's own degree, doesn't it make sense that testing would follow suit?
To be honest, I was shocked at how much push-back my colleague, Lorinda Brandon, received when she wrote a blog post on this topic for Network World. Not only do people not see the necessity, but many people are strongly opposed to allowing students to major in software testing in college.
I'm not saying that the people who are opposed to software testing degrees are wrong, they definitely have a right to their opinion, but I am a little perplexed as to where this kind of negativity stems from. If you don't want to be a software tester, don't sign up for the curriculum. But does it really make sense to deny those who would like to go into software testing the opportunity to fully grasp their craft before they get hired?
I understand that universities are not vocational schools. And I'm not saying that Code.org needs to agree with my opinion about software testing degrees. I do, however, believe that it would be beneficial to the software industry as a whole for Code.org to be promoting all forms of software jobs. Why leave it at programming? Software testing is an increasingly important and increasingly sophisticated career path.
And as much as companies are able to automate testing, it simply doesn't make sense to automate everything (remember, this is coming from someone who works at a test automation company). You need testers who are adept at writing test scripts, who are there to use the software in ways that it was never intended to be used and then accurately explain to the development team why it's broken. The better the tester, the more reliable the software of our future will be.
And how do you make better testers?
Let's move on.
Don't Forget About the Women
The lack of women in the software industry is an issue that has been brought up over and over, but for good reason. If we truly do want to drive as many people as possible toward a certain career path, why not create an open atmosphere that draws in a largely untapped segment of the population. And the problem isn't that the number of women in CS isn't growing fast enough, it's that it is actually declining. Yes, declining! How is that even possible when the number of female graduates and the number of females in the workforce have risen so steadily in past decades?
Yes, there are some people who are stepping up and trying to make this industry more welcoming to women - including Girls Who Code and Rails Bridge. And while I do applaud the folks who make these groups specifically for women, I feel that it's also the responsibility of broader organizations - including, but not limited to, Code.org - to advocate for this as well.
We shouldn't be content to set aside specific groups where women should learn to code - this isn't the WNBA or LPGA. Encouraging female involvement and innovation in high-tech needs to be an industry-wide sentiment. We need to make women understand that they are equal partners in this games. We should be doing all we can to encourage them to attend tech conferences, rather than discouraging them by making jokes at their expense.
One company that has made a point to make it easier for women to get into the technical field is Quantopian, located in Boston. I spent some time with two members of the Quantopian team earlier this year, and I was pleasantly surprised by their eagerness to talk about the lack of women in the field, and how deeply rooted they believed the issue really is. Here's a quick look at what Dan Dunn, VP of Product & Community, and Jean Bredeche, CTO, had to say about their efforts to make this industry more welcoming to women.
I believe the people behind Code.org have the best of intentions and I support their mission to expand programming in education. I don't believe that Code.org is against women in software, or that they don't see the need for better testers. That's not what I'm trying to say. What I'm trying to say is that they have now taken center stage in a very complex discussion, and I believe all of these points need to be addressed if we - as an industry - plan to evolve.
What do you think? Is it Code.org's responsibility to be everyone to everything? Are they doing everything they can? Will any of it make a difference in the end?