NASA has announced its intention to hold an Open Source Summit at the end of March in California.
NASA’s first Open Source Summit will bring together engineers, policy makers and members of the open source community. Participants will discuss the challenges within the existing open source policy framework and propose modifications to facilitate NASA’s development, release and use of software.
[…] The summit will include sessions on licensing, government restrictions, such as the International Traffic in Arms Regulations, governance, and risk assessments.
One problem that has long plagued Defense and NASA programs is the duplication of efforts. Boeing will develop software to go with hardware it manufactures (avionics for a fighter jet, etc), and Lockheed Martin will develop software that does the exact same thing for hardware it manufactures. The end result is that tax payers end up paying for the development of two pieces of software that do the exact same thing for the exact same customer (US Government).
Increasingly, software development is a major component of high-priced hardware used by the United States Government. Software is the reason a stealth strike fighter developed in the late 1970s and early 1980s looked like a ridiculous collection of triangles borrowed from campy science fiction, and modern stealth fighters look like something that ought to actually be capable of flight.
(Image Credits: Wikipedia)
There are primarily two reasons that modern American stealth aircraft don’t look like low-budget science fiction:
- More powerful computers with better software allow better virtual modeling of flight characteristics and radar reflection. The F-117 was the best a supercomputer from the late 1970s could do at modeling something that would both be stealthy and fly. The F-117 is stealthy, but pilots have said that the F-117 flies and handles like utter crap. With more powerful modern supercomputers and better software, aircraft can be developed that are stealthy and actually fly well.
- More powerful computers with better software on-board the aircraft can keep a more complex aircraft in the air. If the F-22’s primary and backup and tertiary computers all fail at the same time for whatever reason, the pilot of an F-22 will immediately lose control of the plane, and all $150,000,000 of aircraft will be destroyed (for the pilots’ sake, one would hope the ejection seat is purely mechanical and/or not dependent on the aircraft’s central computer). No human pilot is or will ever be capable of keeping an aircraft such as an F-22 in the air without computer assistance.
Speaking of stealth fighters, software development is a significant component of the F-35’s spiraling costs and development delays. As the Lexington Institute points out,
Minor engineering issues arise the same way they would in any other cutting-edge technology project, and software is taking longer than expected to generate and test, just as it seems to in every other new weapons program.
We’re talking about dollar figures certainly in the hundreds of millions and possibly in the billions – dollars that are going to high-priced nerds in exchange for their coding skills, abilities, and time. Clearly, for big Defense and NASA projects, software matters. I used stealth aircraft here because the impact of software is well documented and easily verified. NASA’s fleet of space shuttles, also examples 1970s technology, have very rudimentary computer hardware and software on them – my Android cell phone is a far more powerful and capable computer than anything on the space shuttle.
There can be no doubt that the next generation of space technology will rely just as heavily on software as the current generation of stealth aircraft, and here is what NASA needs from that software:
- Lowest Cost Possible
So, let’s walk through these.
1. Efficient. The software should do what we expect it to do quickly and well using the computer hardware that will be on the platform. The ability to do the job on a large supercomputer cluster is irrelevant, the software needs to be able to get the job done on a computer weighing very little. There will be two or three identical computers, one primary and one or two backup. A few wasted kilograms could translate into several million dollars. Ideally, when it comes to spaceflight, we want there to literally be an “app for that” that runs on a computer the size of your cellular phone when fed the specifications for the spacecraft and plugged into its control systems. This type of thing may be best accomplished with clever and innovative programming by small groups of persons not part of a large bureaucratic and hierarchical group and thus not subject to groupthink. Or, it may not be best accomplished that way. The point is, it takes very few additional NASA resources to allow varied persons to try their hand at it with an open development model and it just may produce stunning results the way it did for the cyber-spies of the National Security Administration with SE Linux.
2. Reliable. Just a software bug on an F-22 can destroy an F-22, a software bug in outer space can certainly kill astronauts. The more eyes examining the software, the more likely we are to discover problems before they destroy billion dollar pieces of hardware. If the software is Open Source (for the economists, if it is a “Public Good” like your local dog park) then computer science students around the world can and will examine it. There is no reason that a particularly bright student working on his Master’s degree at a University in Moscow or Beijing couldn’t build a thesis around writing software for spacecraft.
3. Lowest Cost Possible. That student in Beijing? He will be doing that work for academic acclaim, and not for money. Instead of employing or contracting the entire development process, this will allow NASA to employ a much smaller cadre of accomplished scientists and program managers that,
- Verify the quality of the code being contributed by our University student in Beijing and elsewhere.
- Fill in and contribute code themselves in areas that volunteers aren’t.
- Encourage and recognize volunteers. As one example, programming ‘bounties’ have been tried before, and work. “Whichever volunteer fixes Problem X will get a $10,000 check from NASA and recognition on the main page of nasa.gov.”
One may express concern over this as a form of ‘outsourcing’ and ‘exploiting cheap labor’, but I believe those concerns to be overblown. The era of US-only space exploration is over; a US astronaut may fly to the International Space Station on a Russian-piloted spacecraft and dock with an Italian made docking module just prior to shaking hands with the Frenchman that is currently commanding the ISS. Why shouldn’t this attitude of open and inclusive international cooperation be expanded to include software development? And, as for the ‘exploiting cheap labor’ concern; a US programmer would be just as eligible for that $10,000 bounty as a Ukrainian one and, either way, the alternative to that $10,000 bounty may be one additional full time programmer making $100,000 per year.
Open Source software, essentially, is software that is a Public Good for all of humanity – except there is no “free-rider problem” that is present with traditional Public Goods. An example of a traditional public good is your local highway, that suffers wear and tear as people drive on it. Copying computer source code doesn’t wear the code out the way that driving on a road wears the road out and, in fact, the more that people have access to the code – the more improved the code gets. If the software needed to put a man or object in space is a Public Good, then the cost of doing just that is significantly decreased.
NASA’s Open Source summit may just be a part of ushering in the era of cost-effective space travel, the way Apache and Linux heralded the era of cost-effective website hosting – I’ve paid $0.00 for this very blog that runs on top of various pieces of Open Source Software. Apache HTTP Server and Linux didn’t make computer hardware any cheaper. It did, however, mean that one could do on a $2,000 computer and a very fast internet connection what once took a $20,000 computer and a very fast internet connection, starting in the mid-to-late 90s. In the early days of commodity web hosting, it took mandatory advertising or monthly payments for the business model to work. In 2011, as Open Source software became more efficient and associated web hosting costs continued to decrease, the business model works with me paying zero dollars and without any advertising. (For the curious: the business model that allows WordPress.com to host this blog without requiring that I pay for it is essentially one wherein the blog itself is regarded as advertising for the Open Source WordPress software.)
We will probably never see a day when space travel is free the way basic web hosting is currently free, but we may see a day when a trip to space costs only a few months salary for blue-collar working men and women. Open Sourcing the associated software is an absolutely integral part of making that dream a reality. Who wouldn’t like to have a honeymoon in outer space?