The whole Linux ecosystem is quite strange for people who are used to the way "traditional" companies operate. Here's a short primer for those who are need a reminder.
In a "traditional" technology-based company, you have the executives making the deep strategic decisions, the managers carrying out those decisions and telling the engineers what to develop (yeah, there's marketing and sales in there too, but for this essay, let's just ignore them for now.) Normally the executives and managers and engineers are focused on creating the "next best thing" in their industry, and are directly competing with other companies in the same industry.
And this works well, everyone is used to it, and whole major portions of our world's economy depend on this model.
Then there's Linux.
And by Linux, I'm going to focus on the kernel here, but you can extrapolate the idea to any part of the Linux distribution ecosystem too, it all pretty much works the same, in one way or the other.
In Linux, the rules are different, as well as the way the whole system works.
For Linux, the "product" is created by engineers working in the community. These community members get together and work for a common project, making it the best that they know how. These engineers are a very large group, coming from a huge number of different companies and backgrounds.
Companies have realized that Linux is a good thing to use, and have tried to figure out how to make money bundling it up into a semi-stable release and supporting it.
These companies have executives, managers, and engineers much like a traditional technology company has. But here's where things start to work differently. These executives still make deep strategic decisions, the managers work to carry out those decisions and tell the engineers what to develop, but the engineers have to work with the community in order to achieve those goals. These engineers rely on the community to be able to create something that the whole company can then bundle up and make money off of.
Because of this reliance on the community, companies tend to fall into two broad categories (yes, there are more categories, but for now, let's keep things simple.):
Companies in the first category, can pretty much act however they like, their executives can make deals with whomever, and they can try to be a direct competitor with other companies, and no one in the community will really care, as they are bit players and don't really matter.
Companies in the second category, must pay attention to the community. Their executives can't go around doing things that are not in the community's best interest, their managers can't try to directly compete with their competitors, and their engineers can't ignore the community's wishes or opinions. If any of these things happen, the company will soon be ignored by the community, forced to implement all of the great things the executives and managers dream up on their own, and slowly end up becoming a member of the first category of companies, relegated to being a bit player, as the community, and the companies that are real members of the community, pass them by and go off on their own way.
History is already littered with the remnants of companies who originally started out embracing the community, but then make the mistake that they think for some reason they are a "traditional" technology company.
It will be interesting to see how well the current companies in the Linux ecosystem really understand how different their business environment really is.
Note, all ideas that you might have about what real-life company falls into which category, or why this essay was ever written in the first place, are all in your own mind...
posted Fri, 24 Nov 2006 in [/linux]
My Linux Stuff