Tomorrow is the general election day in the USA. If you've seen any of the debates or the rhetoric leading up to this year's election you've probably noticed that there are a lot of important issues that don't get talked about. A lot of those topics are frequently discussed among the developer community, but not so much in mainstream political speeches.
So today, I'm going to present a new presidential candidate... A software developer candidate. This candidate is going to address the issues that the IT world cares about, unlike the current candidates, who may have only lightly discussed one or two of these points during the debates. I'll hand the article over to the candidate now...
The Presidential Programmer: Oh hi there! I know I'm a little late entering the race but I felt that some of the issues relevant to the tech industry, and really the US economy as a whole, were not getting appropriate consideration from Mr. Romney and Mr. Obama. So, without further ado, here is the political platform I will be running on as a candidate for the President of the United States:
Issue #1: Teach Programming at an Early Age
Since the leading issue of this election has been 'jobs and the economy', let me start with one piece of the solution for getting more jobs and a stronger economy: Education. Specifically, programming needs a much larger place in our educational system. There is data indicating that we are automating jobs faster than we can create them. This is, in large part, due to software. It's the software developers who are now in demand and that industry may be where many of the jobs are shifting. It's clear, I think, that the US needs to meet that demand if it wants to ensure economic growth. Meeting that demand starts with education.
Ask any programmer how old they were when they first started coding. A survey done on that very question shows that programmers who were still coding well into their thirties started learning, on average, at age 13 with a standard deviation of about 5 years, which is a window from age 8 to 18. This suggests that many of the programmers still coding today got their starts in Middle School and High School.
Therefore, I believe we need to require all Middle School students to take a course that equips them with a basic understanding of computers and computer programs. I absolutely agree that not everyone needs to program, but everyone in the US needs to be prepared for the constantly growing role of computing in our job market and our daily lives. An early start program like this would ensure that everyone gets a taste of what it's like to code, giving us a greater opportunity to inspire more kids to become developers.
Just look at what Estonia is planning for their students. A new pilot program will introduce students to computer programming at age 6. The US should keep an eye on this.
I'm also not forgetting the important contributions of organizations outside the public school system. The public school system needs to be fixed on a more general level than just programming. More early preparation for career skills would be my focus along with ending the focus on current standardized testing as a form of evaluating students. But in regards to organizations outside of the public sector, we want to help support them in any way the government can. The public sector will be much more supportive and collaborative with the numerous programmers who create free tools for learning code (examples: 1, 2, 3) and organizations like Code Now, that help underrepresented students learn to program.
Technology is a great equalizer that, once harnessed fully, can bring excellent economic opportunities to even the most disadvantaged members of our society. I believe that another potential effect of these proposed changes could be to help children lift themselves out of impoverished situations by learning skills that offer huge economic potential. Can't afford to go to college? That's ok, you can still be successful in a programming position without a bachelors degree. Some people have been very successful, in fact.
Issue #2: Fixing Immigration
Right now I can't offer definitive data that tells us we need to fix our immigration to improve the prosperity of our tech industry and other industries, but I'll start with my best argument for smarter, less stringent immigration laws. Simply put, our country shouldn't maintain an immigration system that makes it harder for creative, highly skilled, and productive people live and work in the USA. Although they may be the exception to the rule now, there are many stories that you and I have heard about the US laws blocking many promising programmers and entrepreneurs from living and working in the US. Certainly there are more instances of recruiting remote workers to join US companies from abroad, but in most cases, being able to work with your colleagues in person is preferable. And if we prevent entrepreneurs from living here, then they'll have to start their business somewhere else. Let's not lose an opportunity to have talented people live, work, and start businesses in the US.
My plan is to implement a system similar to Canada's where there are no quotas on H1-B visas and more priority is given to skilled workers. Another priority is to fix the H1-B "handcuff" situation that can sometimes unfairly tie immigrant employees to their employer. Also, it might be worthwhile to consider giving expedited green cards to immigrants who complete masters or PhD programs in the US and want to start a business.
Issue #3 Abolish Software Patents
I've listened to many programmers and computer scientists and one issue that nearly all of them agree on is the lunacy of current patent law and how it is applied to software. While many other fields of science and manufacturing are able to use very concrete terms in their patent applications, in software, ideas are described with phrases like "point of sale location", "material object", or "information manufacturing machine". The End Software Patents website has created a wiki that explains why software patents are inherently problematic for our IT industry. Here are three reasons why software fundamentally doesn't fit into the patent system:
- Abstract algorithms can be described in so many ways.
- Jargon and lack of tangible components can make a mundane software idea sound technical.
- It's impossible for a patent examiner to judge obviousness. Software developers use so many ideas during their work, only a tiny percent ever get submitted to the patent office or otherwise published.
Another review summarizes Director of Foundry Group Brad Feld's position:
The system has spun completely out of control, with the vast majority of filings not passing the fundamental tests of a patent (that it be non-obvious, novel, and unique innovation). Copyright and trade secrets have historically been the primary protection mechanisms for software intellectual property, and they are still the best solutions. Feld notes that technology companies are now forced to divert huge resources to defend themselves from patent trolls rather than advance their innovations.
Many software engineers have been in favor of changes to US copyright and patent laws. My peers in the software community mostly agree that software patents are actually hindering innovation, not preserving it.
New Zealand has already made the progressive move to abolish most software patents. While I expect to see evidence soon showing that it was a wise decision for innovation in New Zealand, I also believe that there is clear evidence from the history of 19th century Germany showing that a lack of copyright laws was the key factor in that country's intellectual and industrial expansion. Copyrights will be another thing for my administration to look at.
This change in patent law needs to be enacted soon, otherwise we're going to see more industry-damaging cases like Oracle v. Google and Apple v. Samsung.
Issue #4: Internet Freedoms
In the US, we love to invoke "The Founding Fathers" and then argue that they would have intended to support whatever position we happen to be proposing. Personally, I believe that the founding fathers were smart enough to know that they couldn't predict all of the situations we would run into in the future when they drafted the Constitution, so they put a clause into that document allowing us to modify our Constitution and make it adaptable in a changing world.
Right now we have not adapted the Constitution to address all of the personal freedoms at stake in the Internet age. We've seen a new wave of laws like SOPA and PIPA that have jeopardized a set of Internet rights that many people have conceptualized over the past few decades. If we want to protect our collective ideas about internet freedom, then I believe amending the Constitution is the only way to prevent future attacks on these freedoms. Already, there is another proposed law, CISPA, that lacks many confidentiality and civil liberties safeguards.
My solution is to bring representatives from law enforcement, military, and civil rights groups together to discuss this new amendment and answer questions like:
- What information should private companies be required to share with the government and law enforcement?
- Should the government have any power to shut down private sites?
- Should ISPs be held to standards of Net Neutrality?
- How does our Bill of Rights transfer over to the realm of the internet? (Freedom of Speech, Unreasonable Search and Seizure, Due Process)
- How can we provide as much support to crucial investigations without infringing on civil liberties?
- How will we protect privacy on the web? "If you have nothing to hide then you have nothing to worry about" is not an acceptable argument.
- How do we enforce the protection of privacy throughout the private sector and among browser-makers?
- Is the internet a form of political organization?
- Are computers extensions of our minds? Ourselves?
Answering these questions to the best of our ability now will save us a lot of court battles and bad laws in the future.
Issue #5: Cybersecurity
This issue has a lot of overlap with Issue #4. I think the current administration has made great strides in organizing a much better cybersecurity defense force for the US. Just a few years ago there was evidence that the government was completely unprepared for events like the emergence of the Conficker worm. The US undoubtedly needs to improve the organizations that are tasked with defending our government and industry systems against major cybersecurity threats. A big part of that is probably going to require the recruitment of better security talent and a more palatable organizational style, which may be the one key thing preventing great hackers from working for the government.
What our cybersecurity forces don't need to be doing is going after organizations like Wikileaks, Pirate Bay, and Megaupload. The film and music industries need to focus more on adapting to a new consumer environment and focus less on piracy sites that keep coming back .
Issue #6: Refactoring Congress and Agencies
If Congress were a software product, customers would have abandoned it long ago. If I am elected president, I intend to bring a set of fresh eyes to every little process in congress, the executive branch, and our many government agencies. I will treat them like a legacy application that needs to be rewritten with modern tools and best practices. And if necessary, we should consider outsourcing government agencies to more qualified entities, much like outsourcing major software projects.
Right now, I believe that many of our government agencies are bloated, top-down, incredibly hierarchical organizations that could learn a thing or two from the likes of Google and Facebook. Also, if the government wants to attract talent for agencies like Cybersecurity, they can't make them feel like a cog in the machine. The government must become more agile and organizationally flat.
Issue #7: Improve Government UX
Once we've improved the organizations in the government, we'll need to improve how citizens interact with those entities. Right now people feel disconnected and powerless to affect their government. They also are frustrated by the lack of clear information and transparency in government.
My mission will be to use the same philosophy that UX designers and developers use to help customers interact with online businesses. Make it dead simple, and even a little fun to participate in government. There are local coders that have already made an impact in their community by taking this approach.
Issue #8: Space
Developers care about space. Maybe it has something to do with an appreciation for inspiring innovation in the fields of engineering, but either way, I think we see potential for future economies to be built on innovations in software, and in space exploration.
Neil deGrasse Tyson puts it quite eloquently:
Perhaps more than any other field, space exploration has an intoxicating effect on the American psyche (software development may begin to have that effect too). It inspires us to innovate and become "makers". This is the key to our nation's prosperity, and world prosperity.
Whether NASA needs increased funding, or better management, this cannot be allowed to happen again:
I believe that the goverment should do more to support and embrace private space exploration, like we're seeing from Space X. There are probably some areas where they can do better and potentially still some areas where the government is more appropriate for space missions.
Either way, the industries and government of the US need to motivate innovation through business and not the fear of impending war. We've moved past that.
Thank you for hearing my positions on these issues and I hope I have your vote on election day.