Managing Open Source projects

According to the book “Producing Open Source Software: How to Run a Successful Free Software Project, 2006” an open source project contains of a mailing list, a bug tracker and a version control system. Let us describe an example:

A version control system and a bugtracker can be realized with github. It is only one click away. A mailing list can be created with other tools, or in the simple case a Facebook group is well suited. Now the fictional project has everything what is needed. But something is missing: right, the project is not attractive to anybody. After a month, we as the admin are the only guy who is contributing to the github repository, and apart from us nobody else is posting to the Facebook group. It is not wrong to use these tools, but it seems that something is missing.

Successful Open Source projects like the Linux kernel or the Lyx software for writing scientific papers contains usually of the above cited tools. There is a mailing list, a bugtracker and a version control system. But why have these projects traffic but our example project not? The answer is given in the following diagram:

Additional to the technical infrastructure, the figure has a social component which is called customer. The relationship is now divided. The customer is the outside world, while the group is locked in the project. The relationship between the customer and the open source projects defines in which direction the project will go. In our fictional project with a github repository and a facebook group no customer is there. That means, there is no need for traffic. In the case of the Linux kernel there is a customer, called Red Hat. The relationship between customer and project members is defined by money. Here the details: A company like IBM needs a certain feature in the Linux kernel. They are asking Red Hat for doing so. Red Hat collects there feature-request and prioritize them according to what the customer want to pay. IBM says for example, that the new scheduler is fair paid with 10000 US$. This money is the motivation for the Linux kernel team to have a detailed look into the need of IBM. They will analyze the problem, discuss the issues at the mailing list and write a patch to fix the problem. After the modifications runs, IBM pays the money and the transaction is complete. Understanding Open Source projects is possible with understanding the customer relationship and the amount of money which is transferred.

Let us make a different example. Somebody needs a 100 page long academic paper about a topic. This is without any doubt a project which can be done with group work. The naive approach is, if the students starts a github project, and initiate a mailing list. He believes, that his project is so important for the world, that other people will fork his github project with the LaTeX source and discuss the issue on the mailing. This will never happen. After 2 months, the student will alone on his github project, the group work isn’t there.

Now we modify the situation a bit and focus on a customer-relationship. This time, the student goes to a ghostwriter, pays 1000 US$ and after 2 months he gets the paper. It was written by a group, and this group is using github together with a mailing list. What is different, is that a social aspect is there and that some money was transferred.

It seems, that customer relationship and money are going hand in hand. But perhaps we can modify the chain a bit, but maintaining group working at the same time? The Stackoverflow website has an interesting reputation system, called “featured questions”, https://stackoverflow.com/?tab=featured The idea is the somebody sets a bounty (for example 400 points of his score) and after the question gets answered this score is transfered to other party. The result is amazing: Featured questions gets more attention than normal one. A bounty of 400 points is not so valuable like real money but it comes close to the idea. The reputation system abstracts from a concret problem. It is no longer interesting if somebody has a bug with “react-native” or “Json” instead it is about an issue which is connected to a bounty of 400 points, 200 points or whatever.

What I want to make clear, that groupworking needs a customer from the outside. That is the purpose of forming groups, and that is the motivation why the team is working together. Without a customer, the groupworking isn’t there. The success rate of a group is defined by the relationship to the customer. The group is not intrinsically motivated because a certain problem is so interesting. If this would be true, a student can set up a github project with the title “homework: programming a database in Java”, and after one day, he will gets lots of contributers to his project. But this won’t happen. Because the world has different plans than contributing to a students homework.

Stackoverflow’s reputation system

The Stackoverflow reputation system is interesting because it contains no real money but a fictional score at the website. Each user of the website can accumulate points for contributing content. It is similar to a computergame in which the player has also a score. If somebody sets a bounty for a question he doesn’t provide new content to the website, instead he asking the community for providing content. That means, a user sets a bounty and the other side is providing the answer. Suppose, somebody has an unlimited score. He can put via a random generator the maximum bounty of 400 points to all the question he likes. The result is, that these questions gets a higher traffic and after a short time they get answered by the community. This relationship is not totally predictable, because sometimes a question has a bounty but not answer, but in general there is a connection.

The bounty system of Stackoverflow simulates a customer relationship. The user who provides the bounty is the customer. He can ask for support. And the other side has to provide the work.

Exactly the same principle is used by Open Source projects like the Linux kernel. The only difference is, that the bounty there is real money and that the sum is higher. The principle itself remains the same. Somebody has unlimited amount of money, and can exchange this into sourcecode. Other people are able to program the sourcecode but they need the money. The group working is organized in a way, that the people are working together because this allows them to get a higher bounty from the customer. A single programmer is not able to program the request of IBM, but if this programmers talks on the mailing list with other user, they can combine their force. The reason why they are talking on the mailing list is not because they are interested in programming, but they need the bounty.

But let us go back to the Stackoverflow website, which has the advantage that everything is transparent. Suppose somebody is able to provide a bounty. What will happen? He can ask anything what he want. For example “Hello world, i need a gui written in Java which is connected to a server database”. Then he puts the 400 point bounty on this question and waits. What will happen? At first, the traffic of this question will raise. That means, many people are clicking on the question because they want to help. After a while, comments and answers are there. If the problem is larger the people will work together in the hope that each of them gets a proportion of the bounty. That means, user1 gets 200 points and user2 gets 200 points because both have contributed a bit.

But what is the inner principle? Why generate bounty questions more traffic and more answers? This has to do with the social situation. The stackoverflow website works like a computer game. The winner is the person, who gets the highest score. And answering bounty questions is one way to maximize the own score.

Reputation

The reason why people are contributing to a team is because the teams gets reputation. Every company works with that principle. The company has customer, they pay for a service, and this payment is transferred to the individuals in the company. That means, McDonalds employees are not interested foremost in meat in general, they are interested in selling the meat to the customer and receiving back a salary. The workflow is usually organized as teamwork. And if the team become more reputation which is equal to higher sales, this team is attractive to more employees because the hope, that they will get a fraction from the reputation for their own.

What is not widely known is, that apart from business, also scientific projects, open source projects and research can be organized with that principle. If a customer interacts with a a group, the group will find a result. Bringing Open Source projects forward is very simple. All what the group needs are better customers. That means, if the Linux kernel finds somebody who needs Linux and is able to pay for it, the traffic on the Linux mailing list will grow and the number of programmers too.

Customer for the Lyx software

The Lyx software is apart from the Linux kernel another famous example for a successful open source project. Lyx is using like all projects a mailing list, a bug tracker and a version control system. But the success come from a different direction, called customers and sponsering. On the URL https://www.lyx.org/Donate some past subprojects in the Lyx ecosystem are visible. A while ago a, Continuous spell checking feature was implemented. In my installation of Lyx, this feature works great. It is equal to what is known from MS-Word. The user enters text and wrong written words gets a red underline. The more interesting point is how this feature was implemented. It was sponsered and the customer paid 1000 EUR for that. That means, an individual or a company asked for that feature, sponsered the bounty, and the lyx team programmed the sourcecode.

Advertisements

How to fail a Linux project

On the first look, Linux is a great and cheap operating system. If a company is using Linux but not Microsoft, they can save a lot of money. For example, the company needs an Intranet server and pays 1000 US$ for the hardware plus 2000 US$ for the server operating system which is MS Windows. In the case of the Linux, the company would pay 35 US$ for the Raspberry Pi computer and 0 US$ for the Fedora operating system. It is a great deal, isn’t it?

Not for all companies. Let us take a look what happens with failed software projects. The place in which failed it projects are discussed is the court. That means, the company is no longer arguing with the software supplier, but they are using lawyers to fight against the other side. In a typical law case is about many million US$. But where is the place in which failed Linux projects can be discussed? If Open Source software comes without warranty, and the customer didn’t have paid anything, it is not possible to accuse the opposite side in doing something wrong. If a company is using Linux, they are no longer able to go to a court.

This is not equal to that all Linux projects are successful. Instead the place in which failed projects are discussed is different. Usually, failed Linux projects are not discussed with lawyers, but with programmers. They are not talking about million of US$, but about lines of code. There are many companies out there who have no ressources to handle conflicts in such a way. What most companies have learned is how to handle failed software projects in front of a court. They have experts for such a case and they have won many law-cases in the past. But if a company is using it is hard or even impossible to solve a conflict in such a way. Let us go back to the example from the beginning. Suppose, the company has really bought the Raspberry Pi hardware and is using the Fedora version which is for free to drive their infrastructure. From a technical point of view, it is a great decision. The Raspberry Pi computer is well suited for that task, it has an onboard 1000 Mbit ethernet plugin, and the Fedora software boots the system including a fileserver and a webserver. But what will happen, if the company is not happy with that device? What is, if the employees can’t handle it, if booting problems occur and if these problems cost real money?

It is not possible for the company to make a law case against the Raspberry Pi foundation or against Red Hat. Because if a customer didn’t pay anything, he has no obligation to get a compensation back. As far as i know, the Raspberry Pi hardware comes without any technical support, and the same is true for the Fedora software. So, what should the company do? Right, they don’t know. This is the reason, why in a real life situation they wouldn’t use the Linux operating system but the Microsoft product. Which costs more but is predictable for lawyers.

How can a modern company use Open Source software and is able at the same time to handle failed project? The answer is to switch the place in which problems get discussed. In front of a court is not the right place to discuss why the Linux kernel doesn’t boot or the Gnu compiler doesn’t compile. Both are technical issues which have to be discussed on mailing list, at Stackoverflow or with computer experts in real life. Before somebody can switch to Linux, he has to figure out these alternative ways to solve conflicts. That means, he must plan first the case of a malfunction system and must be able to identify stakeholders who can contribute to the problem. Let us make the situation more realistic.

Before a company can use Fedora on a Raspberry Pi mini-server, the company should be aware what kind of online forum is the right place for asking for help and which person in the company can formulate the question. If the company doesn’t know, they will be not happy with Linux. Because the situation, that the project fails is the normal case. According to the latest statistics, 10 out of 10 newly shipped Raspberry Pi computers are difficult to install because the users never had before such a device in use. Most customers are not familiar with the technology. And it is also correct, that 10 out of 10 newly installed Linux systems will make problems in the first week because they doesn’t boot.

Open source software has a different kind of failure management than closed source software. That means, the language used in talking about a failure is different and the place in which failed problems are negotiated are different. Introducing Linux successfully in a company forces the company to adapt to these different kind of discussions.

Migration to Linux is not the best idea

Suppose a company has a Windows Server. The hardware costs are 1000 US$ and the software costs are 2000 US$. Now the company decides to save money and switch from Microsoft Server to a Raspberry Pi system, with costs of 35 US$ overall. Is this decision right? If the company is already familiar with open source and has programmers who are able to ask questions in online forums and can program bash scripts it is the best decision they can made. The company will save around 3000 US$ and the resulting system is more powerful than any Windows server. It is also a great choice in respect to future technology which will be open source only. But what is, if the company is not familiar with Linux, has no programmers who can write bash scripts and doesn’t plan to become familiar with computer technology? This company will run into big trouble. They have a Linux system but they can’t use it. They have the software it has bugs. And if the server doesn’t work, the company doesn’t know how to fix the problem or which person has to be called to solve the issue. At the end, the small Raspberry Pi system will make more problems then the previous Windows Server.

If a company has right now a Windows Server and the system runs stable it is a good idea to stay at Microsoft. It is not possible to transform a company overnight into a Linux-friendly environment in which the employees and the staff is able config-files in the command line or talk with Linux experts in chat to solve specific security issues. If a company defines themself as a low tech company which doesn’t know what Linux is, the best idea is to stay away from Open Source. It is a bad choice to switch to Linux, if the knowledge about compiling software isn’t available inhouse. Learning on the fly, is nothing what a business oriented company can handle. They will fail the task and at the end, they will not have any kind of computer infrastructure.

Switching to Linux is also a bad idea, if the company is more familiar with computers. If only a few employees in the company have experience with the Visual Studio environment but never have used Virtualbox or similar software, the migration to Linux will also fail. If somebody is not able to run Linux in Virtualbox, he is also not able to run it on real hardware. In case of doubt, the best idea is to stay at Microsoft and ignore Open Source software.

The only reason why a company should migrate from Microsoft Server to a Linux server is, if the company defines themself as a tech-company, if 100% of the employees are calling themself advanced programmers, the company needs access to the sourcecode and if the company is interested in working closely with Red Hat for providing kernel changes back to the open source community.

Outsourcing Linux development to Red Hat

In a previous post I explained how Red Hat is earning money. It is the same way, like other staffing companies like Manpower are doing so. Let us investigate the principle in detail. The beginning of the business process is the decision for outsourcing opensource development. For example, IBM needs an operating system for the new Z/OS server. They can program the code by it’s own, or they can outsource the job to somebody how is an expert for it. Red Hat can be called the central hub for opensource development. All the major kernel hackers (Torvalds, Kroah-Hartman and Cox) have a contract there.

The question is: why is IBM not developing opensource software inhouse, why they are using an external staffing firm? It is the same reason, like Manpower and Adecco are so successful in business, because it is more flexible. The reason is, that IBM and other tech companies are not interested in hiring opensource developers inhouse. Because OpenSource is a risky business. It can destroy former closedsource business model and it is more healthy to separate between them. What Red Hat does is programming software for somebody other. Red Hat itself doesn’t need a Linux kernel, because they have no Z/OS machine, and they also have no android phone which they want to sell to the customer. Instead Red Hat has other companies as clients who have a demand for programmers. IBM made the specification, of how the next kernel will look like, and the experts from Red Hat are fulfil the job.

Let us investigate how to compete with Red Hat. Today, Red Hat is the only company who is developing opensource software. Or to be more specific, Red Hat is the only staffing firm who is specialized on employees who are familiar with Linux kernel development. Copying the business model is possible. At first, we need a tech company who has a demand for opensource software. For example, Microsoft. They can decide to develop the code for the new Visual Studio IDE inhouse, or they can outsource the task to an external Manpower-like company, who is specialized on programmers. This newly founded staffing firm would be the direct competitor of Red Hat. They have a client (Microsoft) and they have employees. And they can start to programming code.

Let us investigate what the unique advantage of todays Red Hat company is. It is not the sourcecode, it is the employee they have under a contract. The sourcecode itself can’t be protected, but the employees who are developed them are save. That means, Torvalds is working exclusively for Red Hat, and most of the other programmers too. That means, even IBM wants he can’t hire Torvalds. The business of making opensource and earning money with it, is grouped strongly around certain employees who are a technical expert on a certain field, for example for the storage subsystem of the Linux Kernel or the jboss sourcecode. It is not possible to train an average programmer in a short timeperiod to become familiar with the code. And this is the advantage of Red Hat. They have already people under contract who have written a certain piece of code, and they can easy extend it with new features.

On http://www.briteadvice.co.uk/outsourcing/outsourcing-your-open-source-development/ the concept of outsourcing opensource development is explained briefly. The surprising finding is, that it has nothing to do with programming or Linux, instead the advantage has to do with hiring of people. Outsourcing means, to recruit people in a certain way, use a certain contract with them, and minimizing the overall costs. It seems, that Red Hat is an expert for this niche. They have a talent pool in their database, which makes it attractive for clients to work with them.

Here, https://www.informationweek.com/red-hat-ceo-bemoans-state-of-education-tech-talent-pool/d/d-id/1044688? is detailed description of what Red Hat is in reality. It is not a tech-company, it is a headhunter. Red Hat CEO Matthew Szulik describes how difficult it is to find skilled programmers in the U.S. I’m referencing to the source, to make clear that Red Hat is not competing on the software-level with other companies, but on the talent pool of people they have under contract. The game, what Red Hat is playing is not about Kernel drivers and server software, it is about human-capital.

Let us take a look back in history, how Microsoft went big. The first operating system was an outsourcing project of IBM. IBM only shipped the hardware, and the MS-DOS software came from Microsoft. Later other hardware manufactorer like Compaq sold the computers, and Microsoft added the software which made the hardware more useful.

The problem with Microsoft is, that it is only possible to outsource closedsource software there. That means, if nvidia needs a proprietary driver, Microsoft is the right company for them. But if a hardware manufacture needs an opensource operating system, Microsoft isn’t able to deliver. They have not the right employees for the job. And this is the niche why Red Hat was founded. They are doing all the work, which has to do with software, and which is opensource. Fulfil this tasks, needs a different culture, a certain kind of people and a different business model.

At the end, let us investigate what Red Hat can’t do: everything which is apart from operating system and standard-software. For example, Red Hat is not able to deliver a SAP like business software, they are also not able to create a robotics-control-system. They can only deliver the base-system, which consists of Linux, GUI, desktop applications, and server software.

Saving money in using Linux

spelling

Many companies are trying to reduce their licensing fees. The amount of money they spend for Visual Studio, Perforce, Framemaker and other proprietary software is huge. It is obvious that a transition from Windows to Linux is the right idea. But not so fast. If we are looking at real migration projects in the past, the result is, that after the migration is users are not happy with the system. They don’t like Linux very much, it is too complicated for them. But there is a soft-migration strategy available which I want to present in the following blogpost.

The general idea is, that the user do not delete his Windows OEM version from the PC, instead the Windows 10 operating system is the standard and only software installed on the PC. That means, every program will run on it, and the user doesn’t have to change his work habit. What he is doing instead is too boot Linux in a Virtual machine, for example in Virtual box. And he installs OpenSource under his Windows operating system, for example the LLVM compiler suite which can not only be installed in Ubuntu but also in Windows 10. So it is possible to switch to Linux without inistalling the kernel directly.

It is not a real migration strategy, because the users has best of both worlds. He uses Windows 10 which gives him access to the most dominant software platform today, and on top of it he installs free software which comes for free. This helps him to reduce his licences fees.

Let us investigate a Windows 10 minimal installation further. It means, that only the OEM version is installed on the machine, nothing else. This OEM version is shipped on every new PC but can be bought also for little money. Reducing this costs would be only possible if the user installs Linux as their main operating system, which means to boot the Linux kernel itself. (hard migration). In most cases this is not necessary and the user will loose the ability to run MS-Windows software on that machine. But what he can try out is to replace all other software ontop of the MS-windows operating system. That means, he can replace MS-Office with the windows version of Libreoffice. He can replace Framemaker with the windows version of Lyx and he can replace Visual studio with LLVM for Windows. And with a Linux in a virtual box environment he gets access to powerfull webservers and bash scripting languages.

For most users, this soft-migration / hybrid strategy is the most cost effective solution. It means to be a loyal Windows 10 user which doesn’t use Linux on the machine and at the same time, the user has installed every major Open Source available.

From a technical point of view, the next step after a soft-migration is a full migration. That means to deinstall Windows 10 and instead booting the original Linux kernel. In the new Linux distrubution Windows is installed in a virtual machine or the user do not use Windows anymore. But, this hard-migration strategy is in reality not needed in most cases. It helps to reduce the costs only minimal. The reason is, that the OEM costs for a Windows 10 license itself are very small and if the user do not use the system, he will loose the ability to start Windows applications, which is for most companies a disadvantage.

Marketshare

The marketshare of Linux on physical desktops is small than 1%. That means, noone has installed the system on his PC. But, the marketshare inside virtual machines is much higher. According to the uploaded youtube videos, there are millions of users how have downloaded the Ubuntu Iso image and boot it inside Virtualbox. They are using the distribution not as a replacement for windows, but as some kind of game. They are starting Virtualbox like they start the Minecraft game of trying out some hints.

Getting real numbers is difficult, but i would guess that Linux is by far the most dominant operating system which is running inside Virtual machines on the desktop. From a technical perspective, the users have not installed Linux itself, because the Kernel boots only in sandbox, so it is comparable with a graphicadventure. On the other hand, the users can’t be classified as Windows users, because they are playing around with Open Source software.

Kim Dotcom – leader of the Opensource movement

The songwriter Kim Dotcom has spoken against what he called copyright extremism. https://www.msn.com/en-au/sport/afl/kim-dotcom-i-dont-believe-in-copyright-extremism/vi-BBjKy0o?refvid=BBjNnhM In the interview he gave as an example the Hollywood industry for arguing that copyright must be restricted to empower the customer. I do not believe that Kim Dotcom is right, because Linux itself can be also described as copyright-extremism. The opensource movement not only respect the copyright, it uses it as a viral weapon. For example, if a wikipedia article is under a GPL license published, the user has some obligations.

Was the interview of Kim Dotcom a war declaration against the Open Source movement? I don’t know. Kim Dotcom himself only targets the Hollywood industry but not mentioned the Linux ecosystem. So it is a question of interpretation. Perhaps he can explain in detail what he thinks about the GNU licence ,which was invented by Richard Stallman.

Bug: Lyx makes trouble again

http://www.lyx.org/trac/wiki/BugTrackerHome

After the last month, the Lyx software for authoring ebooks had shown serious problems. After editing a bit in a text, the screen freezes. This problem occurred only sometime, but the View mechanism for preview a pdf-paper is completely broken. Round about every 20th execution the screen freezes after pressing the button. And it depends not only on the pdflatex engine, but also the xelatex engine makes trouble. So my conclusion is, that inside the Lyx program at all is something really wrong.

In most cases the freeze is recognized after 2 minutes from the operating system and the system is killed hard via the dialog-box of Fedora. If the document was saved correctly depends on random. In 90% of the cases it was saved before, but i had also some cases in which after open the paper again, my text was lost. So if somebody has a time-critical workflow with important documents like a phd-thesis i can no longer recommend the software. Instead the better option would be MS-Word which is very stable and runs under all operating systems.

Bug: zuwenig Paranoia in OpenSource Filmen

Wikipedia hält eine Liste mit OpenSource Movies bereit https://en.wikipedia.org/wiki/List_of_open-source_films Darunter werden Filme subsummiert welche sich ähnlich wie Linux unter einer GPL artigen Lizenz verbreitet werden. Die Liste ist sehr kurz und wenn man einige der Filme die ab 2002 erschienen sind anschaut so macht bereits der Trailer wenig Lust sich den ganzen Film reinzuziehen. Anders formuliert, die Filme sind grottenschlecht. Das einzig positive ist noch die freie Lizenz, aber die bräuchte es eigentlich weil diese Filme garantiert kein Publikum finden werden.

Aber wieso gelang mit dem großen Vorbild Linux es eine OpenSource Software zu entwickeln die nützlich ist, das selbe Konzept jedoch bei der Filmproduktion scheitert? Kann man generell mit wenig Budget keine guten Filme machen? Meiner Analyse nach fehlt den Filmen vor allem eines: Paranoia. Damit ist gemeint, dass vor dem eigentlichen Dreh ein gutes Drehbuch nötig ist und um das spannend zu schreiben müssen die Protoganisten etwas zu verlieren haben und dann hilflos mitansehen wie sie nichts dagegen tun können. Das ist das wichtigste Rezept was in traditionellen Kinofilmen eingesetzt wird. Leider nicht so bei OpenSource Produktionen.

Warum Paranoiade Filme beim Zuschauer besser ankommen als belanglose Filme hat damit zu tun wie Menschen funktionieren, es hat also etwas mit den Rezipienten zu tun und wann sie einen Film als sehenswert einschätzen. Üblicherweise werden Themen als wichtig / wertvoll bezeichnet die etwas mit Gefahr, Schrecken und Bedrohung zu tun haben. Sowas zieht den Kinozuschauer in seinen Bann, er glaubt etwas zu verpassen wenn er den Film nicht zuende anschaut. Genauer gesagt möchte der Zuschauer vom Drehbuchschreiber also manipuliert werden. Er will eine Geschichte erzählt bekommen die ihn persönlich betrifft. Und genau daran mangelt es den Filmen auf der OpenSource Liste von Wikipedia. In keinem einzigen Film ist die Rede davon, dass gleich die Welt untergeht.

Aber technisch wäre es durchauus möglich solche Filme zu produzieren, wohlgemerkt das Geheimnis liegt weniger im Budget, in den Schauspielern oder in der FullHD Kamera, sondern man muss das richtige Drehbuch haben.