While personally I think this is a great idea, it's nothing new.
In a technocratic society; specialists rule. It wouldn't matter whether the President would be a programmer, engineer, or theorist. Any scientist would do an equally good job at re-factoring the government's inefficiencies.
But sadly, a FPTP voting process means it's a popularity contest. Fix the voting system, and open up this possibility. My vote's on this: http://www.youtube.com/watch?v=3Y3jE3B8HsE
Instant runoff voting has the problem of nonmonotonicity. A simpler ranking system without rounds of elimination and vote shuffling would be better, IMO.
You are proposing a Borda system. The problem with Borda is the effect of "tactical voting" which would encourage people to not vote how they truly feel, in order to obtain their desired outcome. A better method would be a selection method where a voter can select multiple candidates (one or many).
Proportional representation might work until we have a runoff system of some kind. So for example at the state level, if 40% vote liberal, 40% vote conservative, 10% vote green and 10% vote libertarian, then that percentage from each party would go into office.
So out of 100 representatives, 10 of them would be green and 10 would be libertarian, instead of the 0 (or maybe 1 if we're lucky) that we end up with now. They use this system all over in Europe and even though they have their own unique set of problems, they're able to stay on top of issues that the US seems perpetually unable to grasp.
I think the author greatly exaggerates the assumpitions he makes about "programmers", just because you know how to write computer code doesn't mean you will want to spend more money on the space program or be opposed to software patents. Furthermore this list isn't the benefits from a technical person running the country its someone who agrees with his ideology. How about we need a engineer to be running this country so that
* They understand how to break down large problem to small ones
* Are efficient and always looking for ways to make other parts of the system efficient
* Understand the technical issues facing the country
* Knows the value of having, and the benefit of relying on expects in each problem domain
* Knows how to plan and implement solutions to complex problems
* Knows how to map problems across domains to leverage existing knowledge
* Isn't afraid of getting into the details of problems.
I actually like Herb ( I named a fish after him ). I think he was handed a poor hand when he came into office ( unless you think his 8 months in office is what triggered the Great Depression ) and he did the best he could to get out of it. He was a republican who not only raised taxes, but laid the groundwork for recovery under FDR. He was so good BTW that he was brought back into Washington after he was voted out to help run things. Like I said we need more engineers running the country
You are aware he was only in office for a few months before the stock market crashed ? If you think it was his fault then I don't think I can convince you otherwise, however If you also feel that the problems we had in the late 20's could be fixed in a few years then also good luck with that. There is a reason why it took decades for the stock market to rebound after the crash and a World War to kick industrial America back into gear.
Cause and effect are difficult to figure out, though we have the benefit of lots of hindsight. When you get into a problem so crazy and horrible, you sometimes have to experiment a bit to figure out how to fix things (aka "doing something"), and some of these experiments will invariably go backwards. Hoover's problem was probably he underestimated and misidentified the causes of the crash. Roosevelt experimented a lot also, and had just as many failures as successes, but he was like General Grant during the Civil War who wasn't afraid to loose troops in order to win.
Well, I understand he didn't knew about the Keynesian macroeconomic framework, or was understandably suspicious of it's validity, as new as it was. Microeconomic theory just couldn't model an event such as the Great Depression, at the time. And even FDR, who had the correct framework, had a very unlikely event happen to the world that relieved the economic pressure of the depression. Wouldn't find blame on him for that.
I'm not much of a fan of Hoover. Mainly because of his handling of the crash and how he should have know better. Calvin Coolidge kept taxes low and held spending which had a positive effect on the economy. Hoover was his Commerce Secretary and did the exact opposite as President. He got bad results and a broken economy. FDR didn't recover the economy, he was dead and Truman was President when the economy recovered. Some would even give credit to the Congress of the time for cutting taxes and removing price controls.
Calvin Coolidge remarked on Hoover "for six years that man has given me unsolicited advice—all of it bad.".
In defense of Herbert Hoover, he wasn't a terrible president. The chaos caused by market speculation was out of his control. It's always possible to point out something that someone could have done differently in hindsight. More than anything, he was made into a scapegoat for problems that were caused by others.
As an engineer president, Hoover did a decent job. I don't think that a stock market crash is any proof that engineers don't make good politicians.
This is what I thought (and wished) the article would be about. I think a software developer would make a good president in that we understand how to structure different "modules" to get to an overall end goal or solve a problem.
I suppose there's a lot more involved with being a president, but if one didn't have to deal with all of the politics I would feel very comfortable having a software engineer as president.
When casting programmers in such roles, it is necessary to gain a balance of perspectives. I recommend the book "logic of failure" by Dietrich Dorner for such a perspective. In that book, he presents simulation based studies on the psychology of dealing with systems with many interconnected parts and details how normally "smart" people who can "break down problems and solve them" fail in consistent ways while others succeed. In the studied cases, "failure" is leading a community of nomads into famine and "success" turned out to be a very gradual improvement in their condition. In particular, he points out the dangers of standard heuristics like "one thing at a time" when dealing with such interconnected systems. IIRC, he concludes that our "standard" reductionist heuristics may not work in the areas of administration and public policy.
I like the sentiment, but wouldn't a lawyer (which our current president and many other, perhaps most, politicians are) also exhibit each of these qualities?
I think the more interesting distinction between engineer and lawyer is that of the engineer being a "maker" versus the lawyer being a "protector" or "enforcer," or something more of that nature.
Yep. To be chief executive, one needs to have executive experience in managing large organizations of diverse talent. Except for the last election cycle, the US of A went for about 40 years of electing a president with executive experience (governors mostly, but also some people who had been Vice President, or ran the CIA).
The last cycle was an aberration, in that both major party candidates were legislative politicos (disregarding McCain's officer status in the Air Force), and there was no clear large organization management experience in the field.
Build a computer model for an internet forum, no problem. Build a computer model for a military and economic superpower with numerous distinct regions within it's massive boarders, diplomatic histories, and all of the personal neuroses of all the people you are going to be trying to get anything done with... well, let's just say being able to actually work with people are the most important thing.
I reference people I just don't use the term people. A big part of being an engineer is know that there are others who know more then you about different parts of problems. Hence look for experts in other domains.
I'm not American but i think saying a programmer should be President is just as bad as saying a lawyer should be President, which pretty much all politicians are. I'd rather see a world leader and their Government use an approach like a meritocracy. To me, old white guys that cant turn on a computer shouldn't be making laws that govern the internet and that's applicable to any subject. Assign those that know their shit in that field to administer it.
On another note, I cant remember what country it was, i think either Japan or China, the majority of the higher tier politicians are engineers, rather than lawyers, which i think is a good thing, but again, over abundance of one profession hurts other issues.
This article isn't something I take seriously, but FWIW Herman Cain has a BS in Math and an MS in Computer science. It didn't seem to help him in the primaries.
I'm pretty certain that Herman Cain is not a programmer. I live in Atlanta and he's had an obnoxious talk radio show here for years. I don't think it's the education that is relevant, it's the profession and world view.
According to wikipedia he has a Masters in computer science, did ballistics analysis for the US Navy and worked as a computer systems analyst for Coca-Cola before becoming a business analyst and later a manager. So while he probably hasn't programmed for a couple of decades or more he has done so in the past.
I always find these sorts of articles ridiculous. Its like those people who always say "we need an businessman president!" A regular profession is largely irrelevant to the skills needed to be an effective President. The relevant limitation isn't someone who has the right ideas. It's finding someone who can savvily spend political capital to achieve particular ends.
Working in a given profession for an extended period of time imparts a certain world view. Most politicians were lawyers, and I think it shows. Maybe we need a "hacker" president, not just a programmer, but I do believe that a programmer president would have a point of view very different from those currently represented in the government--one that can understand and appreciate the technological challenges that will continue to grow in importance. The Internet and its effects on business, war, civil liberties, and everyday life is very much uncharted territory and understood by very few. Until someone in a position of sufficient influence, perhaps the president, understands software, I think the government will remain in the dark ages.
Having been both a programmer and a lawyer, I don't think the world views are really that different. They are both detail-oriented and analytical. I think lawyers have a stronger inclination towards fairness and programmers have a stronger inclination towards correctness, but I think most good lawyers would be good programmers and vice versa.
You don't need to be a programmer to understand the impact of the internet on civil liberties, etc. How does knowing about how TCP provides reliability on top of IP help you understand the impact oF the Internet on civil rights beyond just using the Internet? I think that's an old/young thing, not a programmer/lawyer thing.
I don't think shuffling among different highly analyrical/detail-oriented professions will achieve sea-change. I'd much rather see someone in office with a legitimately different world view. Maybe a social worker. Somebody whose job requires empathy, communication, and being able to work with people in the toughest situations.
The problem is that we'd need everyone involved in the political process to be changed similarly. A "hacker" President surrounded by thousands of lawyers is going to get precisely nowhere.
Certainly. Prior professions may help define a candidate's initial campaign platform and narrative, but they rarely explain political activity once in office. Politics is a game with very few reliable rules but where even minor actions have overwhelming consequences.
Maybe we should get someone with a CS degree running for president. If HN is any indication, it is the only degree to qualify you as an expert in economics, history, politics, various forms of science, religion, and sociology.
Heh. What percentage of people on here do you think have CS degrees? What percentage do you think use them in their careers? What do you think the overlap is between those who have and use CS degrees and those who you think would qualify to be president?
Most CS programs don't teach you anything about "economics, history, politics, various forms of science, religion, and sociology". They may give you the foundation to learn on your own (though from the people I have known that's not the case in even 50% of the time), but so do other degrees. My field was Physics, before I switched to software engineering after graduation. Other good fields that woulds seem to qualify well would be (IMHO): Psychology, Economics, Civil Engineering, Philosophy, etc. In other words most of them.
Lastly, 5-10 years after graduating, the amount of experience you gain in the workforce is going to completely overshadow what you've learned in during your stint in higher education. So unless you are proposing only considering fresh college grads, your degree makes no difference.
I'll give you one concrete example: when I worked at Boston University, the President there had a degree in Chemical Engineering. He did extraordinarily well, especially during the financial crisis.
The already existing Bill of Rights covers it nicely.
That we're getting laws and executive orders that nullify civil rights isn't a problem with the internet, but with the guys writing the laws and executive orders.
I believe we are going to need a second Bill of Rights to overrule all the Supreme Court cases that have dampened the 4th and 5th amendments plus put in some explicit privacy protections. I had some hope of them going the other way given the 2nd amendment cases and Citizens United, but it looks like thats not a trend.
This administration is worse than the last and that one wasn't any friend of civil rights either. The thought process that a GPS can be attached to someones car or data kept in the cloud can be searched without warrants is going to be a killer for civil rights.
Layering on an a second layer of rules to the already existing rules doesn't work so well for computer systems. I doubt it will work as expected in real life.
At least my experience is the more rules you have, and the more rules clarifying the rules, the more wiggle room you leave people to exploit loopholes.
What we need aren't more rules but actual enforcement of the existing rules. 'Congress shall make no' and 'The government may not do anything not enumerated herein' are pretty clear.
Well, layering (really replacing or adding) is really the only option with regards to the Constitution. It needs to show a modern intent to some of the amendments that have suffered in the modern era.
I disagree. The judges don't sufficiently understand the Internet or software to interpret the relevant laws and parts of the constitution. There is too much room for the Justice Dept. to continue defending what should be considered unconstitutional attacks on our civil liberties.
Programmers make good programmers. Programmers who make good project managers are not that common. Programmers who make good CEO's are rare. I don't think I've met a programmer who would make a good president.
Sure, if you re-think the world to some utopia where the president only needs to figure out what the problems are, design new laws and implement them by pushing a button, then yes. But you don't need to watch a lot of West Wing to realize that the skills required are primarily people-skills: communication, diplomacy, delegation and negotiation. Some programmers have these, sure, but they are not their typical strengths.
Programmers who make good CEO's are rare. I don't think I've met a programmer who would make a good president.
Agreed, but have you met a lot of lawyers who would make good CEOs or presidents? I think you may be talking about rare people.
Just as an interesting reference point, people with undergraduate engineering degrees are actually represented as CEOs in the fortune 500 far out of proportion to their percentage of the undergraduate degree population. I believe it's reverse for government, though.
Of course, programming != engineering, though a lot of the programmers I know did major in some kind of STEM field.
I worked for 25 years in house techie/programmer for a child development agency. I had discovered that the best leaders are the ones who know how to lead, set the course and work with all the groups. From having a good staff to rely on as well as be an effective communicator with drive and empathy. Definitely good to to be a people person.
I think having a programmer oriented person in the cabinet staff would be a good thing, but not as a leader.
Sounds more like a party platform. First organize a pressure group inside one of the major parties. (Even Ron Paul eventually decided he's more effective inside the GOP.) Win a couple of primaries. Get a speaking spot at the convention. Then you can start dreaming about the presidency.
I remember in philosophy class in college learning that ancient philosophers thought philosophers should lead society. I think there is a quote from Thomas Jefferson where he says the best president would be one who was a farmer.
I think the best way for our people to change the government is through the House of Representatives. I think we could get an engineer elected in SV, NoVa, Boston, Austin, RTP... maybe a few other places if we really tried. That would be a good place to start.
To any programmers looking to work in Congress, there's a job opening for a "Software Technician" in the Office of Legislative Counsel[0]:
MEM-098-12
The House Office of Legislative Counsel is looking for a Software Technician to
augment their existing IT staff. This position is a support position that solves daily
software issues as they arise and performs preventive maintenance routines.4
Core Responsibilities:
To troubleshoot and maintain office drafting software, document management
software, and related supporting software. To monitor nightly scheduled jobs for
errors and fix as needed. To work with systems administrator in solving problems
when underlying operating system or network permissions may be part of the
problem. Assist end-users with resolution of system related technical challenges
Duties:
Check logs from nightly automated scripts on SQL server, and utility file servers
for anomalies; assist in deploying/installing software written by office
programmers as well as outside vendors; provide backup assistance to the system
administrator on desktop and operating system issues when necessary;
create/modify utility scripts in DOS batch and VBscript ; test certain software on
new desktops and laptops before they are assigned to users ; perform SQL queries
to assist in troubleshooting; performs or commissions network, personal
computer, and peripheral maintenance; adds, updates, and deletes users from the
document management and authoring systems; eventually provides computer
software training to staff; document tasks and fixes in internal wiki used by
office; attend weekly staff meeting to discuss present and potential upcoming
issues; Performs other duties as assigned.
Qualifications:
At least 4 years technical training or equivalent work experience with computers,
software and hardware; at least 2 years experience working with Windows
networks (LAN); strong academic credentials; knowledge of current Windows
software and applications; ability to work with technical peers and users of
computer systems;
some knowledge of SQL queries, XML markup language, PERL programming
language, and VB programming language helpful; strong oral and written
communication skills; abilityto work cooperatively and courteously with others;
and
availability to after hours and as needed (a few times a year generally)
Applicant Instructions:
Email resume and cover letter with subject line “Software Technician” to
legcoun@mail.house.gov.
I have been thinking about a similar idea for a while now. Would love to get some feedback. Basically, one can view the government (as a concept, not the specific people) and the set of laws, from the Constitution down, as a complex software system. To justify this analogy, I think of the fact that the laws define the behavior of the society (the system), and interact with each other in ways both expected and unexpected. There are scalability issues, e.g.: laws that were meant to be applied to only certain circumstances bleed over to others impeding progress (software patents), and the people of the government are supposed to act as a sort of CPU that both executes the laws/code and enforces integrity constraints when a fault happens (typically done by the judicial branch in the US).
Now that we've established that... what a poor way to write software. First of all, making laws in the US is an additive process. As a developer, you approach a system that is large, intertwined and sometimes contains large streaks of spaghetti and you are asked to make a small tweak. You can refactor the system to accommodate the new paradigm, or you can simply hack on the feature on the peripheral. On top of that, you are not the permanent maintainer of the system; you are a contractor how is only working on it temporarily. Lastly, you won't be the one using the feature (maintaining the law or affected by the law).
Next, everything is a law in the US. I will use a made-up example here to not stir up controversy with actual examples: the legislative branch may pass a law that says "the Federal Highway Administration" shall oversee the construction of I-999, a new highway through states XX and YY". That's not a law, that's the FHA's job. The law should delegate, and not worry about what the FHA is doing. It should of course include the integrity checks: if the FHA does a poor job, the people responsible will be held accountable. Less laws leads to less complex system and less unintended consequences.
There is also lots of legacy code, that nobody seems to want to clean up. First, there are the ridiculous laws like "In Missouri, It is Illegal To Drive With An Uncaged Bear (Caged Bears Are OK)". Legacy code weighs you down and makes things more complex. There are also laws such as the "stand your ground" law in Florida where you can get more of a sentence for discharging a firearm into the air (warning shot) than shooting someone dead.
The solution seems to me to be in getting some system architects into the White House, Congress and Senate. The system architects, developers and ops people in charge should think long-term. Yes, we are in a recession now, and yes, a large number of these individuals have to start worrying about campaigning in less than two years, but while they may be in and out, we are stuck with the laws they pass and enforce for pretty much an indefinite amount of time. In fact, encouraging reduction of the lawbase should be a part of the system. Refactoring should be encouraged, so long as it is done properly; I know that's a vague term, but currently, so much of the system is off-limits/a third rail, that nothing seems to get done about major issues.
Another solution would be to add expiration dates to laws, and the more specific the law, the sooner it expires. That way, pain in the ass laws that keep coming up should be done away with.
I'm waiting for some of those rich Googlers or Facebookers to get into politics with a platform based on an incredibly objective data-driven policy agenda. Bring on the technocrats!
Programmers can't even make proper choices when designing software for people, how would they do while designing government?
I would say, being a programmer might even make you a worse president:
1) There are no advantages to being a programmer while responding to significant issue questions regarding abortion, health care, gun control, etc. Programming profession is oblivious to these human concerns.
2) Software is infinitely flexible and costs little to change. Government, might look like just a bunch of sentences written in laws and rules; but changing them are infinitely expensive. Being a programmer puts you in a mindset that is far from advantageous in this setting.
Programmers (or engineers) could perhaps make good bureaucrats, creating mechanisms that will realize the specifications given by people.
My main concern with having a programmer in office is that technicians don't always have a deep understanding of concepts like civics, or psychology, or the contexts that groups use to arrive at the opinions that they have.
An effective public servant is just that: someone who is able to save and spend political capital in a way that best serves his or her constituency (the people) instead of choosing merely the most technical sound or inexpensive solution to a problem.
So in that respect, usually more socially minded people like teachers and nurses make good politicians. They understand that the electorate is more capable than it realizes and can rise above problems that on paper appear to be too complex or expensive to solve (for example by spending its way out of a depression instead of choosing austerity which shrinks an economy).
Imagine that you are given a massive code base, full of bad practices, code duplication, no uniform coding style, lots of it written written in COBOL. Most parts of it are written by average or incompetent programmers. If you attempt to refactor or get rid of something, you are met with a stiff resistence by people who don't want to lose their jobs or just don't like change. Would a programmer want this?
Most of the listed responsibility items would not fall under the purview of the Executive (the President) but rather the Legislature (Congress - the House + Senate).
There seems to be a persistent expectation in the United States that the President is an all powerful position that can dictate laws, etc. Remember that he can merely suggest to the legislature what should be done. While executive orders are available they often have limited scope and can be easily challenged (or even ignored).
In fact, legislatively the only real power the US President has is negative, not positive - he can say no to a legislation (by vetoing it).
Let's take a look at a few of the proposed items here:
* Issue #1: Teach Programming at an Early Age
The majority of curriculum decisions are deferred to a LOCAL level in the United States - mandates from individual states & school districts primarily decide what is being taught. Worse, because Texas is one of the largest text book markets many manufacturers simply print the textbooks used across the US to the Texas educational standards.
The only major influence I've seen in recent years on a national education standard is No Child Left Behind which, by many reports, has simply pushed schools to focus on test taking. By many reports, "Race To The Top" (http://en.wikipedia.org/wiki/Race_to_the_Top) has made this no better.
If you look at Wikipedia's article on the Department of Education, they do not really set policy in the US. Instead, 'The primary functions of the Department of Education are to "establish policy for, administer and coordinate most federal assistance to education, collect data on US schools, and to enforce federal educational laws regarding privacy and civil rights."[10] The Department of Education does not establish schools or colleges'
* Issue #2: Fixing Immigration
Again, this is primarily up to Congress to act on, and there seems to be no desire to do so. The President really has no influence on this issue directly.
* Issue #3 Abolish Software Patents
This is primarily a legislation issue – we must fix the patent system and that has to be done in Congress. The one place a President might influence this would be the appointment of Supreme Court Justices; and let us not forget that Congress has veto power over these.
* Issue #4: Internet Freedoms
This discusses amending the US Constitution; this process is not done by the US President. There are, to my knowledge, two ways of amending the US Constitution.
1. The US Congress can draft a proposed amendment with a MAJORITY of Congress approving it (2/3+), and put it to the States to ratify - 3/4+ of them must ratify it.
2. A Majority of the States can demand Congress form a Constitutional Convention to discuss creating a new amendment, then 3/4+ of them must ratify it.
I don't recall if every state deals with the Ratification of amendments the same, but I believe some can have the state legislature ratify on the people's behalf, while others have a direct popular vote.
* Issue #5: Cybersecurity
You might pull this off at the Executive level, by further empowering agencies like Homeland Security. But real action requires coordination with a Congress who can draft penalties for companies that don't comply, etc.
* Issue #6: Refactoring Congress and Agencies
Only Congress may refactor Congress; the Executive has little to no power over this.
* Issue #7: Improve Government UX
Again, we need Congress to refactor this, and probably constitutional amendment processes. A system like our Congress thrives on "insider" behavior and has little incentive to change itself.
* Issue #8: Space
Developers may care about space (I do, as well) but the majority of the United States does not. The President may propose a budget, but ultimately the Congress decides it.
the NASA budget tends to be less than 1% of the US Federal Budget, and getting it higher than that is a battle that would require...
The office of the presidency has more power than you think it does. The president is expected to set the legislative agenda, meaning that he or she has a lot of influence over what the houses of congress will talk about. ie, the ability to block the agenda of others using veto power until they agree to discuss certain issues. The past several presidents have had control of at least one body of congress, and the majority leader will usually take direction from the president on what should be on the agenda.
For example, Barack Obama has had an impact on #5 and #7 from your list. He's most likely going to make a big push on immigration reform in his next term, though it most likely won't involve H1-B visas (though he has spoken in favor of the issue, at the urging of his many silicon valley supporters).
Your point is correct that the president is not all powerful. But if he or she really wants to push for any of the items you mentioned, they have the power to make it the subject of national discussion. A president who is particularly skilled at dealing with congress (like LBJ) can go a long way toward turning bills into law.
Yes and no. Obama repeatedly pushed immigration in his first term and it got nowhere. If Republicans control the house, I predict it continues to go nowhere (although he might be able to bash them over the head with it and other issues enough that they get thrown out in 2014).
But yes, there are some things he can do (and has done) within federal agencies that directly report to him as regards cybersecurity and UX.
The point is that in the public discourse, the electorate looks at the president as an office that can fix everything and has control over everything, and that's what the candidates imply in their rhetoric. So in a sense, you're right, but these are totally believable as platform points that a potential candidate could introduce.
U.S. programmers, as a whole, won't get behind one stance on immigration.
I know many programmers from India, for instance, and they are talented people that I really like. I've seen the real contribution that these people make to America's bottom line.
I've also seen many corporate "body shops" where frankly, there's a class war going on, and management wants to "tame" the complexity of software developers by making us low-priced and low-status cogs. The low status may be more fundamental than the low price, because a professionalized stratum of programmers is a threat against managers who build castles in the air and send us off on charges of the light brigade and to build Marginot Lines.
Many U.S. programmers see H1-B as a weapon that will be used against them.
Personally I see something in both points of view on this issue but I'd find it hard to take either side as a platform position or to support an organization that takes a stance on H1-B one way or the other.
I definitely think we're missing a real professional organization for software developers. The ACM fails at this because it represents the interests of academic computer scientists, not practitioners.
I'd very much like to pay dues to something like the ACM, oriented towards practitioners, but unfortunately this doesn't exist.
This is a good point. The most common profession among legislators in the US so far has been law. They have most definitely not shown any interest in making it easier for foreign lawyers to practice in the US (I'd say they've shown remarkably cartel-like inclinations, really)... but they are relatively enthusiastic about getting more STEM workers here.
Programmers most of the time have no people skills. Programmer will never win a debate. you need to be able to lie or change subjects with a smile and no sweat. Also if you can talk really well you could explain your idea to people and they will go for it. On the other hand you may have a 1000X times better idea but if you can't explain it properly or connect to people they will move inin 30 sec. I think this whole thing is pure speculations. you could say we need a NASA astronaut or a Math PhD for a president as well...
Total rubbish - Presidents are not wanted for their ability to program CPUs; They are wanted for their ability to adjust the programming of the human mind.
One speech, one vision can re-program millions of minds, one policy consistently followed can affect billions.
We need leaders who know how humans work. We would like leaders who use that ethically and for the good of all.
There are so many disparaging generalities and stereotyping presented here. The anti-intellectualism and programmer hate is on full display. An important question is why is this socially acceptable in 2012. We get it. you are afraid of smart people in charge.
There's an assumption here that presidents get to do what they like regardless of anything else.
Planet Money has been running an infrequent series within the series about policies economists of all persuasions believe should be the US economic policy. It's great - all solid, reasonable stuff from an economic perspective but also (as they make clear) entirely contrary to public opinion.
Even assuming (and it's a massive and somewhat arrogant assumption) that a programmer knows what's right for America, it completely fails to address how that programmer (or anyone else) might get such policies enacted, especially as of the 8 at least 5 are contentious and 2 (congress and immigration) are potentially politically suicidal.
Let me comment on some of those points after reading through the blog post kindly submitted here.
"Issue #1: Teach Programming at an Early Age
. . . .
"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."
More interesting than asking current programmers at what age they started programming would be asking them whether they first learned to enjoy programming and to become good at it because of school lessons, or despite school lessons. Comments on that issue from working programmers would be very interesting to me here.
"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 took a unit in BASIC programming on a time-sharing terminal as part of my eighth grade mathematics class during the Baby Boom generation. That didn't turn me into a programmer. Some of my high school classmates who did turn into programmers endured our high school's optional course on computers (as I also did), but they actually learned their programming by doing what they felt like on the PLATO time-sharing terminal at our public library, by playing around with their early Hewlett Packard electronic calculators, and as they became college students by building their own microcomputers before those were a commercially available product. My oldest son, who is currently a software engineer at a startup in New York City (yeah, they have their electricity back now) learned to program in a joint class arranged by our homeschooling support group, with voluntary attendance, through some voluntary distance-learning courses, and through a lot of building his own projects on GitHub while taking computer science classes through dual enrollment at our state flagship university while of high school age.
"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."
Mandatory school courses in MANY subjects frequently have little or nothing to do with what actual practitioners do with the same subject in the free-enterprise workplace. It would be an interesting issue to study empirically, but for all the evidence I have seen, mandatory school courses can do as much to turn pupils off to subjects as they do to spark learner interest.
"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."
Translated into English, what he is saying is that he is going to violate the separation of powers among three branches of federal government that is built into the United States Constitution. And Congress will succeed in blocking him from doing that--with my full support. I don't want a dictator in the United States, and I'm more worried about a President who becomes a dictator with no checks and balances than I am about an inefficient Congress. (Indeed, I cherish the saying of a wise friend of mine who said, in a conversation about politics with a mathematics teacher and me, "I'm an engineer. The last thing I want is EFFICIENT government.") On the other hand, to give this point its due, if he would like to do more private-sector contracting to deliver services of the executive branch that the President leads, I'm happy to see him do competitive contracting to the full extent allowed by law, and to use the bully pulpit of the presidency to persuade Congress to pass more laws that would allow more flexibility in management of executive branch agencies.
"Issue #8: Space
"Developers care about space. Maybe it has something to do with an appreciation for inspiring innova...
77 comments
[ 1.9 ms ] story [ 130 ms ] threadIn a technocratic society; specialists rule. It wouldn't matter whether the President would be a programmer, engineer, or theorist. Any scientist would do an equally good job at re-factoring the government's inefficiencies.
But sadly, a FPTP voting process means it's a popularity contest. Fix the voting system, and open up this possibility. My vote's on this: http://www.youtube.com/watch?v=3Y3jE3B8HsE
So out of 100 representatives, 10 of them would be green and 10 would be libertarian, instead of the 0 (or maybe 1 if we're lucky) that we end up with now. They use this system all over in Europe and even though they have their own unique set of problems, they're able to stay on top of issues that the US seems perpetually unable to grasp.
Herbert Hoover. Need I say more?
I think mainstream criticism is that his measures, while well-intentioned, actually made the depression significantly worse.
Calvin Coolidge remarked on Hoover "for six years that man has given me unsolicited advice—all of it bad.".
As an engineer president, Hoover did a decent job. I don't think that a stock market crash is any proof that engineers don't make good politicians.
I suppose there's a lot more involved with being a president, but if one didn't have to deal with all of the politics I would feel very comfortable having a software engineer as president.
I think the more interesting distinction between engineer and lawyer is that of the engineer being a "maker" versus the lawyer being a "protector" or "enforcer," or something more of that nature.
In fact, the word "people" is missing from your list.
The last cycle was an aberration, in that both major party candidates were legislative politicos (disregarding McCain's officer status in the Air Force), and there was no clear large organization management experience in the field.
Build a computer model for an internet forum, no problem. Build a computer model for a military and economic superpower with numerous distinct regions within it's massive boarders, diplomatic histories, and all of the personal neuroses of all the people you are going to be trying to get anything done with... well, let's just say being able to actually work with people are the most important thing.
On another note, I cant remember what country it was, i think either Japan or China, the majority of the higher tier politicians are engineers, rather than lawyers, which i think is a good thing, but again, over abundance of one profession hurts other issues.
http://en.wikipedia.org/wiki/Herman_Cain#cite_note-purdue-8
Seems fairly clear that "Honorary" refers to a Doctorate degree, not to his Masters
You don't need to be a programmer to understand the impact of the internet on civil liberties, etc. How does knowing about how TCP provides reliability on top of IP help you understand the impact oF the Internet on civil rights beyond just using the Internet? I think that's an old/young thing, not a programmer/lawyer thing.
I don't think shuffling among different highly analyrical/detail-oriented professions will achieve sea-change. I'd much rather see someone in office with a legitimately different world view. Maybe a social worker. Somebody whose job requires empathy, communication, and being able to work with people in the toughest situations.
No one in their right mind plays this game.
http://www.huffingtonpost.com/2012/06/19/college-dropouts-wh...
Most CS programs don't teach you anything about "economics, history, politics, various forms of science, religion, and sociology". They may give you the foundation to learn on your own (though from the people I have known that's not the case in even 50% of the time), but so do other degrees. My field was Physics, before I switched to software engineering after graduation. Other good fields that woulds seem to qualify well would be (IMHO): Psychology, Economics, Civil Engineering, Philosophy, etc. In other words most of them.
Lastly, 5-10 years after graduating, the amount of experience you gain in the workforce is going to completely overshadow what you've learned in during your stint in higher education. So unless you are proposing only considering fresh college grads, your degree makes no difference.
I'll give you one concrete example: when I worked at Boston University, the President there had a degree in Chemical Engineering. He did extraordinarily well, especially during the financial crisis.
Adding an amendment for 'the internet' is lame.
The already existing Bill of Rights covers it nicely.
That we're getting laws and executive orders that nullify civil rights isn't a problem with the internet, but with the guys writing the laws and executive orders.
This administration is worse than the last and that one wasn't any friend of civil rights either. The thought process that a GPS can be attached to someones car or data kept in the cloud can be searched without warrants is going to be a killer for civil rights.
At least my experience is the more rules you have, and the more rules clarifying the rules, the more wiggle room you leave people to exploit loopholes.
What we need aren't more rules but actual enforcement of the existing rules. 'Congress shall make no' and 'The government may not do anything not enumerated herein' are pretty clear.
They only need a clear understanding that if the Justice Department asks for X and that X infringes on enumerated rights, it's double-plus un-good.
Sure, if you re-think the world to some utopia where the president only needs to figure out what the problems are, design new laws and implement them by pushing a button, then yes. But you don't need to watch a lot of West Wing to realize that the skills required are primarily people-skills: communication, diplomacy, delegation and negotiation. Some programmers have these, sure, but they are not their typical strengths.
Agreed, but have you met a lot of lawyers who would make good CEOs or presidents? I think you may be talking about rare people.
Just as an interesting reference point, people with undergraduate engineering degrees are actually represented as CEOs in the fortune 500 far out of proportion to their percentage of the undergraduate degree population. I believe it's reverse for government, though.
Of course, programming != engineering, though a lot of the programmers I know did major in some kind of STEM field.
I worked for 25 years in house techie/programmer for a child development agency. I had discovered that the best leaders are the ones who know how to lead, set the course and work with all the groups. From having a good staff to rely on as well as be an effective communicator with drive and empathy. Definitely good to to be a people person.
I think having a programmer oriented person in the cabinet staff would be a good thing, but not as a leader.
I think the best way for our people to change the government is through the House of Representatives. I think we could get an engineer elected in SV, NoVa, Boston, Austin, RTP... maybe a few other places if we really tried. That would be a good place to start.
Now that we've established that... what a poor way to write software. First of all, making laws in the US is an additive process. As a developer, you approach a system that is large, intertwined and sometimes contains large streaks of spaghetti and you are asked to make a small tweak. You can refactor the system to accommodate the new paradigm, or you can simply hack on the feature on the peripheral. On top of that, you are not the permanent maintainer of the system; you are a contractor how is only working on it temporarily. Lastly, you won't be the one using the feature (maintaining the law or affected by the law).
Next, everything is a law in the US. I will use a made-up example here to not stir up controversy with actual examples: the legislative branch may pass a law that says "the Federal Highway Administration" shall oversee the construction of I-999, a new highway through states XX and YY". That's not a law, that's the FHA's job. The law should delegate, and not worry about what the FHA is doing. It should of course include the integrity checks: if the FHA does a poor job, the people responsible will be held accountable. Less laws leads to less complex system and less unintended consequences.
There is also lots of legacy code, that nobody seems to want to clean up. First, there are the ridiculous laws like "In Missouri, It is Illegal To Drive With An Uncaged Bear (Caged Bears Are OK)". Legacy code weighs you down and makes things more complex. There are also laws such as the "stand your ground" law in Florida where you can get more of a sentence for discharging a firearm into the air (warning shot) than shooting someone dead.
The solution seems to me to be in getting some system architects into the White House, Congress and Senate. The system architects, developers and ops people in charge should think long-term. Yes, we are in a recession now, and yes, a large number of these individuals have to start worrying about campaigning in less than two years, but while they may be in and out, we are stuck with the laws they pass and enforce for pretty much an indefinite amount of time. In fact, encouraging reduction of the lawbase should be a part of the system. Refactoring should be encouraged, so long as it is done properly; I know that's a vague term, but currently, so much of the system is off-limits/a third rail, that nothing seems to get done about major issues.
Another solution would be to add expiration dates to laws, and the more specific the law, the sooner it expires. That way, pain in the ass laws that keep coming up should be done away with.
What does everyone think of this analogy?
I would say, being a programmer might even make you a worse president:
1) There are no advantages to being a programmer while responding to significant issue questions regarding abortion, health care, gun control, etc. Programming profession is oblivious to these human concerns.
2) Software is infinitely flexible and costs little to change. Government, might look like just a bunch of sentences written in laws and rules; but changing them are infinitely expensive. Being a programmer puts you in a mindset that is far from advantageous in this setting.
Programmers (or engineers) could perhaps make good bureaucrats, creating mechanisms that will realize the specifications given by people.
The problem isn't the president, the problem is that people are greedy and non-rational.
An effective public servant is just that: someone who is able to save and spend political capital in a way that best serves his or her constituency (the people) instead of choosing merely the most technical sound or inexpensive solution to a problem.
So in that respect, usually more socially minded people like teachers and nurses make good politicians. They understand that the electorate is more capable than it realizes and can rise above problems that on paper appear to be too complex or expensive to solve (for example by spending its way out of a depression instead of choosing austerity which shrinks an economy).
There seems to be a persistent expectation in the United States that the President is an all powerful position that can dictate laws, etc. Remember that he can merely suggest to the legislature what should be done. While executive orders are available they often have limited scope and can be easily challenged (or even ignored).
In fact, legislatively the only real power the US President has is negative, not positive - he can say no to a legislation (by vetoing it).
Let's take a look at a few of the proposed items here:
* Issue #1: Teach Programming at an Early Age
The majority of curriculum decisions are deferred to a LOCAL level in the United States - mandates from individual states & school districts primarily decide what is being taught. Worse, because Texas is one of the largest text book markets many manufacturers simply print the textbooks used across the US to the Texas educational standards.
The only major influence I've seen in recent years on a national education standard is No Child Left Behind which, by many reports, has simply pushed schools to focus on test taking. By many reports, "Race To The Top" (http://en.wikipedia.org/wiki/Race_to_the_Top) has made this no better.
If you look at Wikipedia's article on the Department of Education, they do not really set policy in the US. Instead, 'The primary functions of the Department of Education are to "establish policy for, administer and coordinate most federal assistance to education, collect data on US schools, and to enforce federal educational laws regarding privacy and civil rights."[10] The Department of Education does not establish schools or colleges'
* Issue #2: Fixing Immigration
Again, this is primarily up to Congress to act on, and there seems to be no desire to do so. The President really has no influence on this issue directly.
* Issue #3 Abolish Software Patents
This is primarily a legislation issue – we must fix the patent system and that has to be done in Congress. The one place a President might influence this would be the appointment of Supreme Court Justices; and let us not forget that Congress has veto power over these.
* Issue #4: Internet Freedoms
This discusses amending the US Constitution; this process is not done by the US President. There are, to my knowledge, two ways of amending the US Constitution.
1. The US Congress can draft a proposed amendment with a MAJORITY of Congress approving it (2/3+), and put it to the States to ratify - 3/4+ of them must ratify it.
2. A Majority of the States can demand Congress form a Constitutional Convention to discuss creating a new amendment, then 3/4+ of them must ratify it.
I don't recall if every state deals with the Ratification of amendments the same, but I believe some can have the state legislature ratify on the people's behalf, while others have a direct popular vote.
* Issue #5: Cybersecurity
You might pull this off at the Executive level, by further empowering agencies like Homeland Security. But real action requires coordination with a Congress who can draft penalties for companies that don't comply, etc.
* Issue #6: Refactoring Congress and Agencies
Only Congress may refactor Congress; the Executive has little to no power over this.
* Issue #7: Improve Government UX
Again, we need Congress to refactor this, and probably constitutional amendment processes. A system like our Congress thrives on "insider" behavior and has little incentive to change itself.
* Issue #8: Space
Developers may care about space (I do, as well) but the majority of the United States does not. The President may propose a budget, but ultimately the Congress decides it.
the NASA budget tends to be less than 1% of the US Federal Budget, and getting it higher than that is a battle that would require...
For example, Barack Obama has had an impact on #5 and #7 from your list. He's most likely going to make a big push on immigration reform in his next term, though it most likely won't involve H1-B visas (though he has spoken in favor of the issue, at the urging of his many silicon valley supporters).
Your point is correct that the president is not all powerful. But if he or she really wants to push for any of the items you mentioned, they have the power to make it the subject of national discussion. A president who is particularly skilled at dealing with congress (like LBJ) can go a long way toward turning bills into law.
But yes, there are some things he can do (and has done) within federal agencies that directly report to him as regards cybersecurity and UX.
I know many programmers from India, for instance, and they are talented people that I really like. I've seen the real contribution that these people make to America's bottom line.
I've also seen many corporate "body shops" where frankly, there's a class war going on, and management wants to "tame" the complexity of software developers by making us low-priced and low-status cogs. The low status may be more fundamental than the low price, because a professionalized stratum of programmers is a threat against managers who build castles in the air and send us off on charges of the light brigade and to build Marginot Lines.
Many U.S. programmers see H1-B as a weapon that will be used against them.
Personally I see something in both points of view on this issue but I'd find it hard to take either side as a platform position or to support an organization that takes a stance on H1-B one way or the other.
I definitely think we're missing a real professional organization for software developers. The ACM fails at this because it represents the interests of academic computer scientists, not practitioners.
I'd very much like to pay dues to something like the ACM, oriented towards practitioners, but unfortunately this doesn't exist.
One speech, one vision can re-program millions of minds, one policy consistently followed can affect billions.
We need leaders who know how humans work. We would like leaders who use that ethically and for the good of all.
Here's hoping.
Planet Money has been running an infrequent series within the series about policies economists of all persuasions believe should be the US economic policy. It's great - all solid, reasonable stuff from an economic perspective but also (as they make clear) entirely contrary to public opinion.
Even assuming (and it's a massive and somewhat arrogant assumption) that a programmer knows what's right for America, it completely fails to address how that programmer (or anyone else) might get such policies enacted, especially as of the 8 at least 5 are contentious and 2 (congress and immigration) are potentially politically suicidal.
"Issue #1: Teach Programming at an Early Age
. . . .
"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."
More interesting than asking current programmers at what age they started programming would be asking them whether they first learned to enjoy programming and to become good at it because of school lessons, or despite school lessons. Comments on that issue from working programmers would be very interesting to me here.
"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 took a unit in BASIC programming on a time-sharing terminal as part of my eighth grade mathematics class during the Baby Boom generation. That didn't turn me into a programmer. Some of my high school classmates who did turn into programmers endured our high school's optional course on computers (as I also did), but they actually learned their programming by doing what they felt like on the PLATO time-sharing terminal at our public library, by playing around with their early Hewlett Packard electronic calculators, and as they became college students by building their own microcomputers before those were a commercially available product. My oldest son, who is currently a software engineer at a startup in New York City (yeah, they have their electricity back now) learned to program in a joint class arranged by our homeschooling support group, with voluntary attendance, through some voluntary distance-learning courses, and through a lot of building his own projects on GitHub while taking computer science classes through dual enrollment at our state flagship university while of high school age.
"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."
Mandatory school courses in MANY subjects frequently have little or nothing to do with what actual practitioners do with the same subject in the free-enterprise workplace. It would be an interesting issue to study empirically, but for all the evidence I have seen, mandatory school courses can do as much to turn pupils off to subjects as they do to spark learner interest.
"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."
Translated into English, what he is saying is that he is going to violate the separation of powers among three branches of federal government that is built into the United States Constitution. And Congress will succeed in blocking him from doing that--with my full support. I don't want a dictator in the United States, and I'm more worried about a President who becomes a dictator with no checks and balances than I am about an inefficient Congress. (Indeed, I cherish the saying of a wise friend of mine who said, in a conversation about politics with a mathematics teacher and me, "I'm an engineer. The last thing I want is EFFICIENT government.") On the other hand, to give this point its due, if he would like to do more private-sector contracting to deliver services of the executive branch that the President leads, I'm happy to see him do competitive contracting to the full extent allowed by law, and to use the bully pulpit of the presidency to persuade Congress to pass more laws that would allow more flexibility in management of executive branch agencies.
"Issue #8: Space
"Developers care about space. Maybe it has something to do with an appreciation for inspiring innova...