Solutions Through Open Source Is The Solution For Open Source

Eric Raymond, who re-invented, or rather founded the open source movement, warned the community against open source losing its users. Participating in a panel at LinuxWorld, ESR called for compromising to appeal and be useful to the newer generation. He used Linux, the pioneer in open source world, to exemplify where open source was lagging.

Raymond, a champion of all things open, said it is vital to the future uptake of Linux that the community compromise to win the new generation of non-technical users aged younger than 30. This group is more interested in having Linux “just work” on their iPod or MP3 player and “don’t care about our notions of doctrinal purity”,

“We have a serious problem. Whenever I try to pitch Linux to anyone under 30, the question I get is: ‘Will it work with my iPod?,” he said. “We are not yet as a community making the painful compromises need to achieve widespread desktop market share. Until we do, we will get locked out of more hardware.”

Using proprietary and closed source binary drivers has been a controversial topic for Linux. These binaries, without their source code, fall in the opposition party and are immediately rejected. However, it cannot be ignored that they provide value today to the users. To be able to useful to these users, who want their computers to work with different gadgets, Linux should make a compromise and include them. He calls them necessary evil.

Users require Solutions

I think this compromise is just a small hurdle in the path. To be able to be accepted by the common man, especially the newer generation, open source should offer solutions to them. Open source has mostly been the object of fascination for the geeks and the object of ideology for the believers. However, now it has to move out of this and enter the realm of everyday use of the common man.

The challenge is that requirements of the common man will keep changing. A decade back he wanted a decent browser, today he wants the computer to work with other gadgets, tomorrow it can be used even in trivial tasks. For this open source has to do two things:

  • Provide solutions rather than open source flagship products
  • Talk to the common man

To be able to do this open source movement should graduate from just competing with the proprietary counterparts to actually identify and solve the user’s problems. Unless this is done it is not going to be popular, it will be seen only on the desks of geeks. To address problems and issues of the users open source has to provide direct value and use their language. It should not be used only to scratch the technical itch any more, it should satisfy the wants of the non-technical. And on the way, the open source movement might have to do compromises. Linus Torvalds, the creator of Linux, thinks software patents and legalities are harmful to the open source movement. It definitely is, but I think identifying and delivering value to the user is more challenging and imminent. What I understand from Eric’s message is that open source can neither postpone nor slow down being useful and reaching the common man. It is time, or else it might get locked out!

Technorati tags: , ,

Copyright Abhijit Nadgouda.


Open Source And Wikipedia (Or About F/OSS)

Ethan Zuckerman has a report on the discussion about What can Wikipedia learn from F/OSS. For some reason, the discussions seems to be more about comparisons between the two. In my opinion, the better way would have been to look at merits of one and try to incorporate in the other – if the aim was to learn from.

Ethan ends up by saying that it is unfair to compare F/OSS and Wikipedia since they have different ages. I agree, but for a different reason. I wonder if we are trying to compare the two on different planes. F/OSS is about software and hence ideas, Wikipedia is about organizing information and facts. The common factor is the openness for contribution, but nowhere do I see any level for comparison between software and facts. The inherent nature of software is to be able to prove one’s idea, one’s philosophy, one’s opinion. This cannot be true for facts, whether majority of the people agree or not, gold is a metal and homosapiens are animals. The power of open source software is the ability to do something on my own and then open it to others so that they can use it, build on it, modify it or better it. The ability to keep an open mind to suggestions from others is productive, and F/OSS makes it quickly possible. Open source in software development is about a strong belief in an idea, listening to others, gathering opinions, requirements or feedbacks. Open source in facts can is about contributing the right fact or correcting a wrong one. Isn’t the comparison between F/OSS and Wikipedia inherently handicapped because of what they are about – ideas and facts? What about the wiki software used to build Wikipedia itself?

Nicholas Carr takes the discussion in a different direction. I agree with him in the sense that open source does not Open source as a metaphor will fail, if appropriate context is not used. Open source is the nature of building, however, the details will be dependent on what we are building. So, using open source as a metaphor without any context will sound meaningless.

However, what can be common between F/OSS and Wikipedia is the basic advantage of open source. Opening up a pool of talent, much wider and much deeper. This source is not available in the proprietary or closed source environment. The primary reason is that closed source does not express well enough to invite participation, and open source uses the best tool – the code. Not only this it encourages the amateurs, experts, newbies and veterans all alike to share their code and express and connect across a farm of developers. I like what Assaf says in response to Nick’s post:

The thing is, open source is not a community. Or a movement. Or disruptive. Open source is code that’s available to the public. Nothing more nothing less.

Some of it has communities. Some of it has business models. It’s the side effect of it all that makes a difference.

If you want to understand open source, you need to stop reading InfoWorld and take a look at SourceForge. Pick a hundred projects at random and see what they’re about. Most are developed by one person writing the code, maybe a few people using it, often not even a thank you note.

What Wikipedia can learn from F/OSS is probably the way it has been able to harness the interested individuals to come up with a unified goal. I think Wikipedia is already on its way!

Technorati tags: , ,

Copyright Abhijit Nadgouda.

Architectural Style For Open Source

Jeff Hodson has a detailed look at how open source can be leveraged by Agile teams. He advises Architectural Style (via InfoQ). I will reiterate some points and present my view on them.

The Challenges

Jeff talks about challenges faced by developers when using open source. One of them is the ability to cope up with Community based support structure. I would actually call this taking contributions from the users. Users can contribute in a variety of ways – giving feedback, providing support or suggesting usage-driven enhancements and features. Experienced users are the best candidates for providing support for usage. In fact, some can come up with innovative uses that the creators had not envisoned! This can lighten the burden of support. The biggest problem of a developer talking to a user is the mismatch in the language that is used. A user talks to another user in the same language and can easily identify with the problem. The easiest way of handling this is accepting it with an open mind.

I don’t agree entirely on the Extra functional requirements factor, they are in fact not a side-effect of using open source, but of using the wrong open source software. There are generally four types of requirements that we can consider:

  • the core requirements (business/functional requirements)
  • the supplementary requirements (performance, security, scalability)
  • the usability requirements (user experience, overlaps with core and supplementary requirements)
  • the business constraints (budget, deadlines)

All of them are equally critical, but they do have certain dependencies on each other. Lot of times, the core requirements factor into deciding the supplementary requirements. It is imperative to identify these before any software is selected for use. Otherwise, the pre-selected software capabilities and limitations drive these requirements causing failure of the venture. It is important to use requirements-driven approach for selecting software. This is true for any kind of software, open source or not. In case a fully matching software is not available, this can be addressed beforehand, discussed, brainstormed and decided upon. This can require a brief phase of research to identify the right software to use.

Open Source for Agile development

Agile development is about being dynamic, about moving with changing business requirements and demands. Software reuse, which is promoted by open source software, can help being dynamic by integrating with ready functionalities. However, this advantage can quickly turn into a upgrade/evolution/development hell if the application becomes to dependent on the open source software being used. Jeff says:

A well defined architectural framework supports the selected architectural style. An architectural framework can address the critical concerns for constructing applications that must exist within an enterprise-wide context. A good framework enables the selection, integration and deployment of best-of-breed ingredient technology (open source, commercial, etc.) required to meet changing business concerns without significantly impacting functional development.

Therefore, implementing an architectural framework allows the developer to retain architectural control of his application by remaining technology independent, address critical and strategic concerns, and free to swap open source ingredient technology ‘A’ with open source technology ‘B’ when needed without major rework or refactoring.

Spot on! The keyword here is technology independent. Architectural style can be used to define/specify the system without using any specific technology. The biggest advantage of this is that whenever any sub-system or component has to be changed/swapped, its impact can be easily identified.

Continuous Research

In my opinion, to really leverage the open source field, it is important to research continuously. Like Jeff has mentioned, today’s developers have a wide array of open source softwares open to use. But these multiple options can be a nightmare because of lack of knowledge. What is required is a continuous probe into the domain to stay updated about the new developments and concerns.

Agile development is for flexibility and open source software can do a major contribution there. To be able to successfully integrate the two it is important to focus on requirements, technology independence via Architectural style and continuous research.

Technorati tags: , , , ,

Copyright Abhijit Nadgouda.

Open Management Consortium

The open source drive has brought together certain systems management vendors to form the Open Management Consortium (OMC) (via The Register). The founding members are

This is not just a group, but a group of products which work well with each other. This group highlights interoperability and collaboration between different tools. This is different from the current systems management domain which is marred with vendor lock-ins and a good amount of expenditure. The OMC can provide an effective alternative to this approach. The systems management domain includes various sub-applications, like network monitoring, fault analysis and recovery, UIs. When all of these work together irrespective of the vendor, a customer can build the systems management application using these sub-applications from different vendors.

Open Standards

Open source movements have led to creation of open standards in various domains, open source has spread to even the non-software domains. In the systems management domain this can cause a revolution as was the case with Content Management Systems and office suites. Conformance to open standards enables interoperability that drive down the power of individual vendors and give a wider choice to the customer. The consortium also plans to design several integration paths to exchange data with other proprietary systems.

Business Model?

What is not clear today, is the business model that will be available to the members of this consortium. The group has to grow stronger to be reckoned as a force in the industry, and that can happen only if it provides a viable business model to its members. The group should also form strategies for group marketing so that new and upcoming products can also join this group. It should be managed well to avoid competition within the group and to give a singular and clear vision and hence direction.

Whether open source changes the demographics of the systems management domain will depend on his group entirely, only time will tell.

Related links:

Technorati tags: , ,

Copyright Abhijit Nadgouda.

Real Open Source

Does real open source matter points to an article about new business models around the open source movement. The article writes about Greenplum, which has built its proprietory products on other open source products, and raises the question whether Greenplum is an open source company or not!

Open source company?

In my opinion, there is nothing called as an open source company. Open source characteristics apply to a product, they are not for a company. We can always qualify a company working with open source products to be an open source one, but there can be various relationships between the company and the open source product. A company can:

  • develop an open source product
  • sponsor an open source product
  • use an open source product
  • provide service/support for an open source product
  • customize an open source product

There might be more. These relationships are exhibited by companies like Mozilla, Red Hat, Novelle, eZ Systems and more recently Automattic. Each of them have a different relationship with the open source product they are dealing with. Can all of them be called open source companies? I don’t know, but some of these products can be. WordPress, eZ publish, Mozilla Firefox are all open source products. They are so because they comply with the Open source guidelines. The most important being providing source along with the product. The next one – encouraging and accepting users participation to improve the product through continuous evolution.

One of the biggest misconceptions of an open source product is that it is free of charge. This is not true. That is the reason, eZ publish, inspite of having a dual license, is still an open source product. There are other free products available, but if they don’t provide the source, they are not open source.

Real Open Source?

Talking about Greenplum, if their product – Bizgres does not provide the source, it is not an open source product. I don’t think if we should coin a new term, “real” open source and try to incorporate a second rung of products. This does not say anything about the quality of the product – the product might be very effective and innovative, but it cannot be called an open source product. There should be no wrappers or layers around open source.

IMHO, there should be nothing as an open source company. Some of them might be qualifying themselves so for marketing purpose. A company’s involvement in open source movement will differ according to its relationship with open source products.

Technorati tags: , , , .

Copyright Abhijit Nadgouda.

Importance Matrix For Open Source Projects

Dana Blankenhorn writes about importance of open source projects. The article also points to Uversa CEO David Uhlman’s Top 50 Open Source Projects (pdf). The list contains real good projects like Mozilla’s Firefox and Thunderbird, WordPress, OpenOffice, …, well you can read the list.

Dana defines a matrix that can be used to measure importance of an open source project.

In fact, the importance of any particular project is a matrix.

  • How deep in the stack is it? Linux will always be vital because it is an operating system so many other projects depend upon.
  • How many real users does it have? This does not mean desktop Linux projects are all that vital. It does mean that Google software is.
  • What value does it deliver? Based on this I would argue that mySQL is a very important project. But remember it is also the base for many other projects.
  • How unique is it? Any project that takes open source into a new direction — to phones or inside the network — is important.

I feel following factors should also be considered.

Support For Standards

An open source project is also important if it encourages standards, e.g., OpenOffice has exhibited early adoption and support for OpenDocument format. Standards are not for namesake, they exist for convenience and benefit of the users. OpenOffice is not just another run-of-the-mill office suite. For convenience of its users it provides compatibility with other office suites. This is against the tendency of traditional commercial business where proprietary formats are adhered to for revenue.

Support For Multiple Platforms

By supporting multiple platforms open source projects can reach more users. From a user’s perspective, (s)he is not restricted to any specific platform for using the software. While this might not be possible in all cases, some projects have demonstrated the flexibility to run on multiple platforms, e.g., vi Improved, Mono.

The Role It Plays

Mozilla Firefox has gained popularity in the times of the monopoly of Microsoft Internet Explorer through high quality and exclusive focus on the user. In fact, Microsoft has been forced to pay heed to Firefox and improve on its product. Whether a direct effect or not, but the IE Team has opened up its bug database (via scooblog) for feedback. Smiles for IE team there.

Another excellent project worth mention is Nutch, which wants to promote a transparet search technology which can be completely trusted by its users. The intention is to oppose the currently popular search engines which keep the indexing and ranking algorithms a secret.

Open source paradigm is increasingly doing a service rather than just providing software. In my opinion this will really influence future software development.

Technorati tags: , , , , ,

Copyright Abhijit Nadgouda.

What Is Content Management System?

Just like Web 2.0, Content Management System (CMS) has been defined and redefined multiple times by multiple people for multiple purposes. They all might stand valid in their space and context. This is an attempt to make an all-inclusive definition of a CMS. The purpose of this definition is not for customization but for qualifying/building CMSs which can be applied in multiple scenarios.

A Content Management System (CMS) is a system which manages entire lifecycle of the content – from its creation to archival/destruction without breaking the integrity and meaning of the content. To be able to be applied in multiple scenarios, a CMS should support creation of new content types and all the actions required for managing it.

This definition is abstract, and is heavily dependent on definition of some of the terms used – content, management, action. Lets define them too.

The Basics

Content is largely related to data and information. Data is wide enough to include everything, facts and events without relations to anything else. Information is however, more richer than data. Information is a pre-conceived and intended message sent by the creator/author to the receiver(s). The information includes relations between data and builds a context that the author wants to convey. As mentioned in the Content Management Bible by Bob Boiko:

What is content? Raw information becomes content when it is given a usable form intended for one or more purposes. Increasingly, the value of content is based upon the combination of its primary usable form, along with its application, accessibility, usage, usefulness, brand recognition, and uniqueness.

Content is information put to use. For this to be achieved, the information has to be presented in a usable manner. To effectively use the information, it has to be acted upon and extended for further use. An example is a book name when catalogued with a shelf number and used by a reader to find it. Here the book can have additional data along with it, e.g., availability, shelf number, number of copies, reviews, etc. Depending on this information, the reader can take further action.

Computers cannot directly handle content, they have been built to deal with data with algorithms. Hence content has to be provided to the computer in form of data. It is done by wrapping the information with a layer of data, usually called the metadata. The metadata provides a context to the information that leads to different actions that can be taken on the information. These different possible actions and a workflow of these actions result in management of the data. Content is therefore, information (complex data) with metadata (simple data).

Real World CMS

A lot of definitions of CMS I have read do it only for the digital world, infact some of them only for the Web. Even though the term was termed for computer systems, a computer system is ultimately an automation of a real world system. To design or use the computer system, experience with the real world system is equally important.

I consider the libraries or newspaper publishing houses as instances of the CMS, where the content has been specialised. In the real world, whether computers are used or not, they do handle the content right from its origin to its death. A CMS however is abstract, the content has to be specialised to be able to see its implementations or real world examples, e.g., a library management system or an article management system.

What is CMS?

In the light of the discussion till now a CMS has to consider the people and processes. People form the users who use the information to make the content, take actions on it and manage it. Processes are the policies, rules or standards used by an organization that have to be automated. Just like any other software, a CMS provides the basic value of automation.

A CMS is different from rest of the softwares as it stresses on the management of content, and has to provide a business interface even to the users involved in managing the content along with the ones using it. In a newspaper publishing system, a journalist should be considered as an user of a CMS as he/she can use it to write an article or an editor can use to edit it. Note that the journalist should not be asked to FTP a file or write an entry, but write an article. The interface provided to the users involved in managing the content should be non-technical as they are for the end users.

Even though a CMS will have specialised content, it will have to handle more than one content types. e.g., in case of a library management system, the main content type can be books, but it will also need journals, authors, readers, penalties, etc.

Lets look at some attributes a CMS should have:

  • Integrated Framework: To be able to provide extensibility of multiple content types, the CMS should have a common platform to manage the lifecycle of content. The framework should serve as an API for creating different content types as well as the corresponding actions, e.g., search.
  • Content Classification: The CMS should provide facilities for content classification. Content classification provides structured navigation to the user.
  • Separation of Concerns: The way data is stored should be independent of the way it is rendered, and vice versa. This is important from the fact that the same data can be displayed in different ways to different users for different purposes. This also encourages single-source publishing, so that the multiple formats are supported without duplication of data.
  • Roles and Permissions: In the real world, there are more than one roles that handle content, e.g., journalist, editor, publisher. To be able to automate this a CMS should support multiple roles and corresponding permissions. The roles also form part of the processes and workflows that are automated.
  • Web Enabled: Since most of the CMS applications involve multiple people in different locations, web provides a good platform to provide 24/7 access irrespective of the location. Even if the entire CMS is not web based, atleast the publishing should be allowed on web. However, this is completely dependent on the users of the system.

Here are some examples of CMS:

I am sure there are many more out there. For a comprehensive list, visit The CMS Matrix. There are different types of CMSs, but that deserves dedicated space and discussion.

More reading

Technorati tags: , , , ,

Copyright Abhijit Nadgouda.