
Continued from Part 1
Do you see any synergies between Web 2.0 and open source for the Government?
Web 2.0 is about mass collaboration and open source is about collaboration also. There absolutely are some synergies there in both directions. The collaborative techniques of web 2.0 and mass collaboration are the same things that have driven open source to be successful. The most successful open source projects are the ones that provide value to people which then encourages those people to become developers, and then they add enhancements and so that same virtual cycle that powers things like wikipedia also powering open source software. In the opposite direction you can say that a lot of the web 2.0 applications are being done on top of open source softwar . The same collaboration that makes wikipedia useful as an information resource makes open source software good. I can also say that look open source software like Mewiki and Apache and php and mysql and squid are the underlying technologies behind web 2.0. They share the idea of collaboration as in having many eyes on the same products.
What is the balance between Open Source and proprietary software, is there a place for both? In your perfect scenario do you see only OS ?
No, at least within Defense world we look for the best solution to achieve mission objectives, and most organizations are that way. If this is a social movement where I am looking for social goals, and advocating individual liberty in software engineering, then you can take the idealistic position that this should be 100% open source. But if you take a more pragmatic perspective, you are looking for mission benefits associated with open source software, then those are balanced with the business case.
A lot of education for the federal workforce – conquer fear uncertainty and doubt (FUD). There are some set of processes, we need to look at how do we adapt those, and what are the rules for acquisitions. Often you just need to answer the question that at the end of the day I have to get a contract for a product and what do I do when I don’t have to have a contract, when the license is freely available for me to use ? Typically in these cases all I have to do is internally abide with the terms of the license, which is what I get with most open source – software is there, to use and modify, with certain conditions. For example with GNU – if I distribute the software, I have to make source code available also and pass on the same right. If I am the government if I have to acquire something, the solution is already out there and I just have to download that, but then I have to go out and make sure that everybody understands what the conditions of those licenses are. The biggest thing, from my perspective is education that open source is commercial software and we should be following mostly the same processes. In the certification and security realm, people have the misconceptions that how it is less secure because it is open (when academia has told us that the reverse is true), the other issue is foreign involvement and where the software is written – at least in Defense – with respect to influence and control. In most cases we have no idea where proprietary software was written either, buying from a US company does not mean that it was written here, and should this even be an issue if I have the source code and can review it – there’s some policy issues there and definitely some education and process issues.
In the proprietary software world – people talk about an end user license agreements - that is a bilateral agreement, if I am a user I have to agree to it, whereas in the open source world, they will talk about software licenses, a license is a permission to go do something, it is actually a one-way street, that says I give you permission maybe subject to some conditions. You don’t have to accept the conditions but if you fail to do so, that permission goes away. So you don’t *have* to accept that and its not like you signed on the dotted line. So there is that fairly subtle distinction that is important for people to understand.
Standardization continues to be a real issue for the government as consumers of software of any kind. Typical market pressures and market differentiation make you want to be different from the rest of market so people will buy your product. This is true whether you are a software vendor or a newspaper. On the other hand, you want standardization, you don’t want for instance, newspaper to come in many different shapes and sizes - in the newsstand they have to fit in the rack and so they have to be so many inches for pragmatic reasons.
Second, not just driving standardization but when you have standards organizations IEEE, OASIS, IETF, that process is facilitated greatly by having a standard with a reference implementation, if I have a standard of this is how things should work, everyone does their own implementation, they spend their time arguing about who did the implementation correctly. If you have a real reference implementation that here is a standard, and here is a reference implementation of that standard. And you can point out examples with reference implementation, x-windows, standard graphics environment of UNIX systems, browser market, Apache, web server, you can now compare, say look if you are going to build a competitor, that Apache is accepted a reference implementation. X windows had the official reference implementation MIT X11 R6, later R7 reference implementations. If your software did not work like that it was wrong. The W3C had a reference browser, Maya, they maintained it, not many people used it, its whole purpose was render web pages according to the html stack. If your web page was funky on Maya it was not compliant with the stack, and that was maintained in conjunction with the same people who were writing the standard. OS facilitates dialogue in the standards process – here is what the code does you can poke the code, forces the standards process to be implementable, a lot of standards bodies will go out and develop standards for how things should work, but in the absence of reality, these standards will be difficult to implement if not impossible. What we are saying if you develop a standard with a reference implementation that we can all look at the code for, and that is the OS part, allows the standards group to really focus (on what is needed). IETF actually has a standards body – they do not require OS implementation, I believe, but they do require, before they bless something as a recommended standard, at least two different independent implementations of it. So you get to this idea that the standards that I am promulgating really need to be interoperable and the standards have to implementable. So I think OS facilitates that.