Network effect is a fascinating phenomena. The name relates to an economic effect. According to wikipedia "a network effect is the effect that one user of a good or service has on the value of that product to other people".
The power of Network Effect comes from Metcalfe's Law which "states that the value of a telecommunications network is proportional to the square of the number of connected users of the system".
There are many examples of things that succeeded because of Network Effect and of things that failed because they didn't have enough Network Effect.
In the age of the Internet the competition for using the Network Effect is fiercer then ever. There are many factors which influence the power of the Network Effect.
One of the main factors is how open the technology is. The Internet itself (i.e. TCP/IP protocol) was established mainly due to the openness of its underlying technology.
As you can see above, the Network Effect is defined as the effect of one user. This implies that every user counts and every user should be aware of the effect he creates in the network.
With this awareness comes responsibility to do the right thing. It is like voting in a democratic process. Unfortunately not all users take this into account when doing their decisions. For example, whenever a user chooses to use MS-WORD file format and not ODF format he creates further Network Effects in favour of the monopoly in office formats and against an open alternative.
The latest issue of Network Effect on the Internet is now the H.264 video format. You can read Christopher Blizzard's blog post about this issue. I think we should all help make the Internet open by supporting Mozilla's decision to not support H.264 video format and demand from the sites we use to support open formats such as Theora.
We can further discuss Network Effect examples in the comments section.
Khen Ofek
Showing posts with label Software. Show all posts
Showing posts with label Software. Show all posts
Saturday, February 13, 2010
Saturday, January 23, 2010
Engaging communities against Linux and OpenOffice.org
I like paradoxes. Paradoxes of all kinds always facinate me. They enforce you to think and often reveal deep understanding on how things work. You can read my analysis of the Paradox of the Cloud in an earlier post.
This is why I was amused to read Glyn Moody's blog post about a Microsoft's job description.
Microsoft wanted to recruit somebody to fill the “Linux and Open Office Compete Lead, US Subsidiary (CSI Lead)”. Glyn was concentrating on what CSI job description meant for OpenOffice.org. But, I want to stress here the paradox that is apparently inherent in how Microsoft treats the Open Source community.
According to Moody's blog post the job ad contains the following words: "The core mission of CSI is to win share against Linux and OpenOffice.org by designing and driving marketing programs, changing perceptions, engaging with Open Source communities and organizations, and drive internal readiness on how to compete with Commercial Linux and participate with Open Source Communities."
What caught my eye is the paradox of "win share against Linux and OpenOffice.org by ... engaging with Open Source communities and participate in Open Source Communities". Linux and OpenOffice.org are Open Source communities, among other things. So, how can Microsoft engage and participate with Open Source communities and act against them?
I think this paradox is not coincidental. Microsoft's engagement with Open Source communities is not aimed for the better of Open Source, but for the better of Microsoft against Open Source. It doesn't have to be like that, just look at the engagement of RedHat and IBM in Open Source communities and you can see that a good engagement is not against something but for something.
The only one that can solve this paradox is Micrsoft itself, and until that happens, Open Source communities should not trust Microsoft.
Khen Ofek
This is why I was amused to read Glyn Moody's blog post about a Microsoft's job description.
Microsoft wanted to recruit somebody to fill the “Linux and Open Office Compete Lead, US Subsidiary (CSI Lead)”. Glyn was concentrating on what CSI job description meant for OpenOffice.org. But, I want to stress here the paradox that is apparently inherent in how Microsoft treats the Open Source community.
According to Moody's blog post the job ad contains the following words: "The core mission of CSI is to win share against Linux and OpenOffice.org by designing and driving marketing programs, changing perceptions, engaging with Open Source communities and organizations, and drive internal readiness on how to compete with Commercial Linux and participate with Open Source Communities."
What caught my eye is the paradox of "win share against Linux and OpenOffice.org by ... engaging with Open Source communities and participate in Open Source Communities". Linux and OpenOffice.org are Open Source communities, among other things. So, how can Microsoft engage and participate with Open Source communities and act against them?
I think this paradox is not coincidental. Microsoft's engagement with Open Source communities is not aimed for the better of Open Source, but for the better of Microsoft against Open Source. It doesn't have to be like that, just look at the engagement of RedHat and IBM in Open Source communities and you can see that a good engagement is not against something but for something.
The only one that can solve this paradox is Micrsoft itself, and until that happens, Open Source communities should not trust Microsoft.
Khen Ofek
Friday, January 1, 2010
Symmetry in Software
Symmetry is a powerful concept in mathematics and physics. It is used to analyze and construct elegant theories. Take for example the Supersymmetry theories in particle physics. They provide an elegant way to describe the zoo of particles.
The abstract definition of symmetry deals with the notion of invariance. When an entity has a property which is invariant under certain transformation we say that this entity is symmetric under the transformation. The most famous symmetries in mathematics are present in geometry. In geometry we find geometrical figures which exhibit various kinds of symmetries. Those geometrical figures are often said to be esthetic or elegant because of their symmetries. Symmetry in general is part of being beautiful.
The first time I heard about symmetry in connection with software was several years ago when I went to hear a lecture by Jim Coplien. His lecture talked about symmetry and symmtery breaking in SW.
Since symmtery is such an abstract concept in mathematics, it can be applied in many ways to SW. One of the most effective ways of using symmtery is doing a refactoring. When you are doing a refactoring you want to change the structure of the SW while leaving the functionality invariant. That is, the SW should be functionaly symmteric under the restructuring transformation.
Another application of symmtery can be found in the Object Oriented concept of polimorphism. When we use polimorphic elements, either compile time polimorphism or run-time polimorphism, we are counting on the fact that the actual code should be invariant when we change the element to one of its polimorphic instances. That is, the code is symmteric under the transformation of replacing the polimorphic elements.
Yet another, quite trivial, example is comments in the code. We can say that the funcionality of a code is symmteric under the transformation of changing the comments.
I said that symmtery can often be connected to elegancy and beauty. We can find elegance and beauty in a good SW design and symmtery is often used in elegant design. We can even appreciate the symmtery using our sense of visual beauty when we describe the design using diagrams. The same design can be percieved more elegant if it is presented in a symmteric diagram than if it is presented in a chaotic diagram.
If you have more examples for symmtery in SW you are welcome to write about them in the comments. I will further post symmtery examples whenever I come across interesting examples.
Khen Ofek
The abstract definition of symmetry deals with the notion of invariance. When an entity has a property which is invariant under certain transformation we say that this entity is symmetric under the transformation. The most famous symmetries in mathematics are present in geometry. In geometry we find geometrical figures which exhibit various kinds of symmetries. Those geometrical figures are often said to be esthetic or elegant because of their symmetries. Symmetry in general is part of being beautiful.
The first time I heard about symmetry in connection with software was several years ago when I went to hear a lecture by Jim Coplien. His lecture talked about symmetry and symmtery breaking in SW.
Since symmtery is such an abstract concept in mathematics, it can be applied in many ways to SW. One of the most effective ways of using symmtery is doing a refactoring. When you are doing a refactoring you want to change the structure of the SW while leaving the functionality invariant. That is, the SW should be functionaly symmteric under the restructuring transformation.
Another application of symmtery can be found in the Object Oriented concept of polimorphism. When we use polimorphic elements, either compile time polimorphism or run-time polimorphism, we are counting on the fact that the actual code should be invariant when we change the element to one of its polimorphic instances. That is, the code is symmteric under the transformation of replacing the polimorphic elements.
Yet another, quite trivial, example is comments in the code. We can say that the funcionality of a code is symmteric under the transformation of changing the comments.
I said that symmtery can often be connected to elegancy and beauty. We can find elegance and beauty in a good SW design and symmtery is often used in elegant design. We can even appreciate the symmtery using our sense of visual beauty when we describe the design using diagrams. The same design can be percieved more elegant if it is presented in a symmteric diagram than if it is presented in a chaotic diagram.
If you have more examples for symmtery in SW you are welcome to write about them in the comments. I will further post symmtery examples whenever I come across interesting examples.
Khen Ofek
Subscribe to:
Posts (Atom)