How to Successfully Develop and Manage Open Source

Transcription

How to Successfully Develop and Manage Open Source
How to Successfully Develop
and Manage Open Source Projects
PEDRAM
JOHN
FOROUTAN
Master of Science Thesis
Stockholm, Sweden 2012
How to Successfully Develop
and Manage Open Source Projects
PEDRAM
JOHN
FOROUTAN
2D1021, Master’s Thesis in Computer Science (30 ECTS credits)
Degree Progr. in Computer Science and Engineering 300 credits
Royal Institute of Technology year 2012
Supervisor at CSC was Stefan Arnborg
Examiner was Stefan Arnborg
TRITA-CSC-E 2012:012
ISRN-KTH/CSC/E--12/012--SE
ISSN-1653-5715
Royal Institute of Technology
School of Computer Science and Communication
KTH CSC
SE-100 44 Stockholm, Sweden
URL: www.kth.se/csc
Abstract
The fast growing Open source development methodology has recently become more popular as more
and more software developers and corporations are utilizing and developing Open source software. It
is commonly known that Open source enables development possibilities that are restricted in the
production of proprietary software (i.e. Closed source). A big difference between the two approaches
is the Open source licenses, which allow software creators to manage the restrictiveness of distribution
and third-party development rights. Although Open source offers these valuable tools, many of the
projects encounter difficulties that ultimately lead to their failure. This thesis focuses on identifying
the risks of Open source projects in the fields of development and licensing while also offering
suitable methods that can either prevent or minimize the damage inflicted by them.
Hur man framgångsrikt utvecklar
och driver Open source-projekt
Sammanfattning
Den snabbt växande Open source metodiken har nyligen blivit mer populär eftersom fler och fler
människor och företag är benägna att använda och utveckla öppen källkod. Det är allmänt känt att
Open source ger utvecklingsmöjligheter som är begränsade i produktionen av proprietär programvara
(d.v.s. Closed source). En stor skillnad mellan de två metoderna är Open Source-licenser, som gör att
utvecklarna kan hantera restriktiviteten gällande distribution och tredjepartsutveckling. Även om Open
source erbjuder dessa värdefulla verktyg, stöter många av projekten på svårigheter som leder till
misslyckande. Den här avhandlingen fokuserar på att identifiera riskerna med Open source-projekt
inom utveckling och licensiering samtidigt som den erbjuder lämpliga metoder som antingen kan
förhindra eller minimera skadorna av dem.
Acknowledgements
I would like to thank the Royal Institute of Technology (KTH) and the Florida State University (FSU)
for giving me the opportunity to carry out the final piece of my Masters degree in USA. This thesis
would not have been possible if not for my two advisors, Prof. Stefan Arnborg at KTH and Dr. Robert
van Engelen at FSU. Their invaluable expertise and guidance has been my greatest asset in
constructing this paper. Finally, many thanks to parents and my sister, Dr. Parastou Foroutan, whom
have spent hours in helping me succeed.
Table of Contents
1. Introduction ......................................................................................................................................... 1
2. Background ......................................................................................................................................... 2
2.1 The Open Source Definition.......................................................................................................... 3
2.1.1 Free redistribution .................................................................................................................. 3
2.1.2 Source code ............................................................................................................................ 3
2.1.3 Derived works ........................................................................................................................ 4
2.1.4 Integrity of the author's source code ....................................................................................... 4
2.1.5 No discrimination against persons or groups ......................................................................... 4
2.1.6 No discrimination against fields of endeavor ......................................................................... 4
2.1.7 Distribution of license ............................................................................................................ 4
2.1.8 License must not be specific to a product............................................................................... 5
2.1.9 License must not restrict other software ................................................................................. 5
2.1.10 License must be technology-neutral ..................................................................................... 5
2.2 Open source versus Closed source ................................................................................................ 5
2.3 Problem ......................................................................................................................................... 7
2.4 Purpose .......................................................................................................................................... 7
3. Development and Management of Open source.................................................................................. 8
3.1 Methods analysis ........................................................................................................................... 9
3.2 Methods recommendations.......................................................................................................... 10
3.3 Failure analysis ............................................................................................................................ 11
3.3.1 Costs ..................................................................................................................................... 11
3.3.2 Attraction .............................................................................................................................. 12
3.3.3 Motivation ............................................................................................................................ 12
3.4 Recommendations ....................................................................................................................... 15
3.4.1 Cost....................................................................................................................................... 15
3.4.2 Attraction .............................................................................................................................. 17
3.4.3 Motivation ............................................................................................................................ 18
4. Licensing ........................................................................................................................................... 21
4.1 License traits................................................................................................................................ 22
4.2 Choosing license.......................................................................................................................... 24
4.3 Recommendations ....................................................................................................................... 25
5. Scenarios ........................................................................................................................................... 27
5.1 Scenario 1: Linux and GPL ......................................................................................................... 27
5.1.1 The Red Hat license depending business model .................................................................. 28
5.2 Scenario 2: gSOAP and GPL ...................................................................................................... 29
5.2.1 The gSOAP Multi-licensing business model........................................................................ 29
5.3 Scenarios conclusion ................................................................................................................... 30
6. Conclusion ......................................................................................................................................... 32
References ............................................................................................................................................. 33
1. Introduction
In recent years, the fields of information technology (IT) and computers have seen an important
change. A change that, from some perspectives, is seen as freedom and evolution, while others
perceive it as oppression and “de-emphasizing” of the individual human [1]. A change that has been
practiced with both the oldest and the newest software. A change called Open source, a new way of
organizing production and dissemination of software.
Open source is described commonly as an approach that promotes access to the source code of
software. Moreover, it is seen as a method that helps solve problems through an open collaborative
environment. In recent years, it has received immense amount of attention, primarily from
corporations and individuals who are attempting to make their business and development process more
efficient. Nonetheless, the successful implementation of Open source may be a challenge for many,
and in the worst case could lead to the demise of a project.
This thesis was conducted in collaboration between the Royal Institute of Technology (KTH),
Sweden, and the Florida State University (FSU), USA, where the majority of the research was
performed. Project supervisors were Dr. Robert van Engelen (FSU) and Professor Stefan Arnborg
(KTH). The research is based mainly on journal and conference articles that may be found on the
IEEE Xplore digital library as well as additional information, digital books and examples from various
Internet websites. Furthermore, the software gSOAP, created and owned by Dr. van Engelen, was
reviewed and discussed through personal communication, which resulted in one of the two scenarios
towards the end of this thesis.
The aim of this thesis is to identify the risks of Open source in the problematic areas of development
and licensing as well as suggesting guidelines on how to successfully avoid or overcome them. In
order to address this aim, readers are at first introduced to background information with the purpose to
gain a better understanding of the definition of Open source. Subsequently, this thesis offers
recommendations, based on analysis of the fields development and licensing. In addition, to better
distinguish between these two fields and demonstrate some real-life examples, two scenarios have
been presented in the licensing section. At last, the final conclusions of this work, which includes
procedures and advice on creating successful Open source projects, are presented in the conclusion
section.
1
2. Background
Although Open source is one of the most debated topics of software and software development today,
the actual concept itself is not new. In fact, the development methods of Open source were used as
early as in the beginning of the computer era [2]. For instance, in 1961 a group of PDP-1 computer
users created the program library DECUS (the Digital Equipment Computer Users Society), which had
a structure and functionality that were much like the current Open source communities [3]. At that
point in time, most companies believed that the largest monetary benefits would be gained through the
development of superior hardware, which in turn caused the software to be lacking in terms of quality
and in fulfilling customer demands. In addition, many of the early computer users were knowledgeable
in the field of technology and were often able to adjust the software themselves. Occasionally, the
modified software was sent back to the companies and distributed to other users, allowing them to take
advantage of the implemented changes. In many cases the original creator saw this kind of process as
positive; the end result was improved software that attracted more buyers, thus benefitting not only the
original creators but also the users [4].
While the general opinion of Open source was positive at this early time point, it was not as easy to
implement as it is today. The main reason for this was that the sharing process had to be done by
sending magnetic tapes by surface mail, since there was no Internet [4, 5]. Nevertheless, there were
local networks that made it possible for a small number of developers to share their code, but in
resemblance to the current possibilities, Open source was very restricted. Ironically, in the 1970s, just
when the technical aspects were improved and the tools for successful Open source were actualized,
the general business ethics for computer software changed [6-8]. It became evident that by selling
software separately, high profits could be made. Richard Stallman, the founder of the GNU project,
who was actively working with cooperating communities during the time of change of software
business ethics, describes that the first step was to promise not to help your neighbor. He states that the
law made by the manufacturers of proprietary software was [9]:
“If you share with your neighbor, you are a pirate. If you want any changes,
beg us to make them”
The mentality behind the proprietary software community was clearly not shared by everyone. There
were many more people like Stallman that did not believe that the idea of proprietary software was in
the best interest of the general software progression. One of them was Eric Raymond, who would
become the first president of the Open Source Initiative (OSI).
2
In 1997, Eric Raymond published the paper The Cathedral and The Bazaar. With this paper, Raymond
succeeded to open a new way of understanding the “Hacker” community. The ideas presented in the
paper had a, unexpected, strong appeal outside the “Free software” culture. Raymond followed the
release of his paper with a presentation, at the O'Reilly Perl Conference in September 1997, which
would help trigger the Internet browser Netscape’s decision to open their source code to the public
[10]. It was the events that came with the beginning of proprietary software, such as the GNU project,
combined with the unexpected event regarding Netscape, acting as the trigger, that would lead to the
creation of the OSI. The OSI established, from the Debian Free Software Guidelines, what would
become the platform for the current Open source development, the Open Source Definition (OSD)
[11].
2.1 The Open Source Definition
Generally, “Open source” refers to software or scripts in which the source code is accessible to the
public for use or modification without any costs for intellectual property [12, 13]. It is a fair statement
that has been widely accepted, but, according to the OSI, it is not enough for bearing the title “Open
source software”. They declare, just because software has accessible source code it does not make it
Open source. To prevent exploitation of the term Open source, the OSI created criteria, the OSD,
which do not just concern the source code, but also the distribution and licensing terms. Open source
software must abide by these rules [14]:
2.1.1 Free redistribution
The license shall not restrict any party from selling or giving away the software as a component of an
aggregate software distribution containing programs from several different sources. The license shall
not require a royalty or other fee for such distribution.
2.1.2 Source code
The program must include source code, and must allow distribution in source code as well as compiled
form. Where some form of a product is not distributed with source code, there must be a wellpublicized means of obtaining the source code for no more than a reasonable reproduction cost,
preferably downloading via the Internet without charge. The source code must be the preferred form in
3
which a programmer would modify the program. Deliberately obfuscated source code is not allowed.
Intermediate forms such as the output of a preprocessor or translator are not allowed.
2.1.3 Derived works
The license must allow modifications and derived works1, and must allow them to be distributed under
the same terms as the license of the original software.
2.1.4 Integrity of the author's source code
The license may restrict source-code from being distributed in modified form only if the license allows
the distribution of "patch files" with the source code for the purpose of modifying the program at build
time. The license must explicitly permit distribution of software built from modified source code. The
license may require derived works to carry a different name or version number from the original
software.
2.1.5 No discrimination against persons or groups
The license must not discriminate against any person or group of persons.
2.1.6 No discrimination against fields of endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor.
For example, it may not restrict the program from being used in a business, or from being used for
genetic or military research. The legality of application should be regulated in national and
international law, not in licensing.
2.1.7 Distribution of license
The rights attached to the program must apply to all to whom the program is redistributed without the
need for execution of an additional license by those parties.
1
Derived works refers mainly to software that includes parts of the original software.
4
2.1.8 License must not be specific to a product
The rights attached to the program must not depend on the program being part of a particular software
distribution. If the program is extracted from that distribution and used or distributed within the terms
of the program's license, all parties to whom the program is redistributed should have the same rights
as those that are granted in conjunction with the original software distribution.
2.1.9 License must not restrict other software
The license must not place restrictions on other software that is distributed along with the licensed
software. For example, the license must not insist that all other programs distributed on the same
medium must be open-source software.
2.1.10 License must be technology-neutral
No provision of the license may be predicated on any individual technology or style of interface.
2.2 Open source versus Closed source
At present, the two main types of software are Open source and Closed source. It is true that Open
source as a model for development is the most recent considering these two types and, as with most
objects and methods, newer often is better. However, both of the models have respective advantages
and disadvantages (Table 1), as well as a history of successes and failures; with the most obvious
advantages being, the speed in which Open source software release greater versions of software, and
the big profits obtainable by Closed source software [2].
The frequent development of Open source software is a consequence of the fast identification of user
requirements. In successful cases, the software attracts many developers, who often are users of the
software, which gives faster requirements identification than in projects in which the developers are
not typical users [15]. This trait is only given in Open source, since the openness gives the user the
opportunity to become a developer.
Profits made by producing Closed source software need no introduction. The manufacturer of the
software can sell it at prices attracting buyers and high profits can be made for a competitive product.
5
One of the difficulties that is derived from this kind of software is that the developers are often few, in
comparison to Open source, and that the cost of making profit is taken from other aspects, such as: less
quality oriented software with lower reliability and stability [16, 17]. Many of the common problems
in Closed source can be solved in Open source. Nonetheless, contrary to what many believe,
developing and managing an Open source project has been proven as complicated, if not more so, than
for a Closed source project.
Table 1. Properties of Open source versus Closed source. Recreated:
A. Khanjani, R. Sulaiman. The Aspects of Choosing Open Source versus Closed Source, pp 648. [2]
Type
Closed Source
Open Source
Free Software
No
Yes
Modify Code by Users
No
Yes
Systematic Development
Yes
No
Frequent Release
No
Yes
Openness
No
Yes
Parallel Process
No
Yes
Knowledge Sharing
No
Yes
Private License
Yes
No
Yes
No
Property
Gaining Profit by
Company
6
2.3 Problem
Many of the issues of Open source are caused by general misunderstandings and lack of respect for the
fast growing approach. It is not that people do not know what Open source is, but rather how extensive
and demanding it can be. Specifically, Open source is often perceived as a concept that requires
software source code to be made open (i.e. available) for users and as a methodology that affects
software progress positively. However, the development of Open source projects is different from
Closed source, and involves the essential step of choosing license, which also influences the use of the
software. Open source is not an extension of Closed source and therefore should not be treated as
such.
Open source development often fails due to negligence of factors that have a high potential of
inflicting severe damage to the project. These factors may be, but are not limited to, a realistic
assessment of costs and inability to attract and motivate developers.
The licensing segment of Open source is one of the most problematic areas. The decision of what
license to choose is complex and must be done after considering many aspects that are not just limited
to the software properties, but also the developer and business model. Moreover, licenses can have
important legal role as the common disregard for the boundaries set by them can end up in expensive
law suits.
2.4 Purpose
The purpose of this thesis is to present guidelines on how to successfully develop and manage Open
source projects by analyzing the risks in the areas of development and licensing. This thesis is an
informative tool that is intended for all types of developers, but is foremost focused on developers and
corporations that are making the transition from Closed source to Open source development.
In addition to developers, the licensing section also includes valuable information for anyone that
seeks to solely use Open source programs. Licensing is required but licensing choices can be
controversial, thus it is important that developers implement licenses properly, and that users choose
licensed software wisely, in order to favor prosperity of the project or business.
Therefore, the scope of this research is on evaluating the most suitable methods in accordance with
theory and practice, rather than presenting and discussing all of the methods that currently exist. These
methods are reviewed and presented in the thesis, and will with certainty be an aid in Open source
projects.
7
3. Development and Management of Open source
There is a statement that follows every article, book, or course about development and management of
software; that is, software development is hard. Regardless of the type of software project (i.e. Closed
source, Free software or Open source), the one constant that characterizes all project description, is
that problems occur during the development of software. In some cases the project manager and the
team manage to overcome these issues and create operating programs, and in other cases they fail in
rising above their difficulties.
The worst outcome in software development is when a project is forced to shut down or is terminated.
In correct terminology, these projects are considered to be failures2. It is a known fact that many
projects in commercial software development have failed and continue to do so still, and even though
Open source has grown to be a popular approach, the failure rate has not improved with the new
methodology. In reality, only a small percentage of Open source projects are considered to be
successful [18, 19]. According to K. Fogel (2009), the failure rate for Open source projects is as high
as 90-95%, and he believes that the rate would be even higher if it would account for dysfunctional
projects (i.e. projects with low quality, high cost, no users etc.) [4].
A probable reason for why the commercial software approach, currently, has a lower failure rate is, the
time it has had to develop its practice. For years it has been the methods of proprietary software that
have been reflected upon in universities and exercised by corporations. Consequently, many existing
methods have evolved, and new methods have emerged to be applicable to the approach of proprietary
software development. Experience has allowed the methodology to change for the better, and that is
what must be given to Open source development as well. The Open source approach is far from simple
and as it is fairly young, it is important to have patience in order to gain understanding to what would
lead to success. In the words of J.Zawinski (1999), one of the developers of the Mozilla project [20]:
” Open source does work, but it is most definitely not a panacea. If there’s a
cautionary tale here, it is that you can’t take a dying project, sprinkle it with
magic pixie dust of open source, and have everything magically work out.
Software is hard. The issues aren’t that simple”
2
There are many different views on what a software failure is. In this case it refers to dead projects.
8
3.1 Methods analysis
The development of Open source software differs from the traditional software development and
because of that, the development methods have to be different from each other. A relatively simple
way to identify one of the crucial differences in Open source software development is by looking at
when the requirements are gathered. As opposed to the traditional software development approach, the
requirements in Open source software projects are constantly increasing as they are gathered from
earlier releases of the project [21]. This makes it hard for the project to be functional using an older
development model (e.g. The Waterfall Model, Fig 1), which does not allow the developer to go back
to a previous phase.
Fig 1: Waterfall Model
Source: D. Pierce. (2011). Waterfall model. [22]
After much reading and research it becomes evident that, at present, the most preferred development
methods are the Agile software development methods (Fig 2), [23, 24]. While many of the earlier
traditional methods do not apply for Open source software development, the Agile methods have
many similarities and aspects that are very useful when developing Open source [25].
9
Fig 2: Iterative & Incremental Development
Source: Agile Methodology – Changing ways of software development. [26]
3.2 Methods recommendations
The nature of the Agile approach is that the methods are iterative and incremental. It revolves around
the ideas of delivering implementation of software quickly, enabling change rapidly, and allowing for
frequent modifications [27]. It also allows for changing the requirements late in the development
phases. These properties of the Agile methods fit well to ideas in Open source development. In
essence, the Agile methods are perfect for Open source development, since their ideas of development
have the same characteristics.
Successful Open source software are known for delivering fast updates and being able to adapt to user
requirements fast (e.g. Mozilla Firefox, Google Android, etc), and if we only look at the software
development process, Agile methodology is a great outline for Open source software development.
However, the Agile methods only involve the software development process, which is merely a part of
Open source. Not many Open source projects end up being successful, and a guaranteed way to fail
with such a project is to not appreciate the risks that it brings [4, 18, 19].
10
3.3 Failure analysis
When addressing aspects of software engineering, much of the focus is on identifying the clients’
needs. To be able to fulfill them (i.e. achieve a successful project) it is equally important to understand
the risks or factors of failure as the needs. For example, in traditional engineering there is the well
known Project triangle (Fig 3) that is an analytical tool for deciding what is most important for the
project in terms of budget, quality, and time. Eric Bethke (2003) states that only two out of three of
these goals can be achieved, and failure to understand that will result in the project missing more than
just one goal [28]. After identifying the needs and prime goals of the project, more work is put on
elaborating the project specification, which includes managing risks. Risk management is a method for
further identification of the risks. By grading the collected risks after importance, the method will
conclude in giving the project manager a greater understanding for preventing them. Both of these
two methods are greatly recommended for software engineers under traditional circumstances, but in
Open source, their usefulness may vary, since the risks and the goals are often different from those in
Closed traditional software development.
Fig 3: Project Triangle (P. Foroutan)
3.3.1 Costs
A big issue for software projects over the years has been their costs. It is an issue that often can lead to
the failure of a project and, as shown with the project triangle, should be planned for a soon as
possible in the early stages in the project cycle. There are many arguments that in Open source, cost
and monetary resources are not as critical as with Closed source. This might be closer to the truth for
entirely new Open source projects rather than for projects going from Closed source to Open source.
11
Contrary to the general belief, pre-existing Open source projects can be very expensive in short term
perspective [4, 29, 30]. One reason behind this is that the documentation and the code must be written
so that it can be understood by whoever wishes to become a part of the project. It is a feature that can
be very time consuming, and in most cases time is money. In addition, this must be done by previous
developers or by someone that is knowledgeable with the code and the project so that the translation is
correct [4].
Besides for costs that are exclusively linked to Open source development, there still remain
expenditures from previous development methods that in a similar manner affect Open source
projects. An example of such a cost is the quality assurance of software. In contrast to Closed source
development, this process can be applied to Open source projects differently, but is still equally
important, in particular for developers that aim to sell their software [30, 31].
3.3.2 Attraction
Another common downfall for Open source is the inability to attract developers to work on a specific
project. By making a project Open source, one opens the door for the source code to be publicly
inspected and modified. The problem with that is that many believe in the misconception that it is
solely enough, to make a project Open source, to attract people to work on the software [4, 32]. K.
Fogel (2009) said [4]:
” An open license does not guarantee that hordes of active developers will
suddenly volunteer their time to your project, nor does open-sourcing a
troubled project automatically cure its ills”
3.3.3 Motivation
In a different perspective, even if the project succeeds to attract volunteers, it is not certain that they
will be as productive as expected or even stay in the project long enough to make an impact. This
paradox is not unique for Open source or even Computer science; it is as general as the question: What
drives individuals to do what they do? The answer for that is:”motivation”.
To find what motivates the developers in Open source is not an entirely easy task. Often motivation is
connected to monetary bonuses or salary, and there are some companies that can make money from
offering services (e.g. Red Hat) or other products connected to Open source. The revenue made by
12
these companies can be part of the motivation for the developers, but many Open source volunteers
work without compensation during the development phase. For Open source, it is not as common with
monetary reward to induce motivation as it is with proprietary software [32, 33]. The motivation of
these developers tend to come from other sources, such as the project itself or the experience [33]. To
successfully address this situation it is important to identify how to motivate developers to stay in the
project, and more importantly how to attract them to it.
Cost, attraction, and motivation are all important aspects in Open source, however, not the only ones.
The Open source development method is, as stated earlier, fairly new and with that comes new
problems as well. Even though this work does not discuss all of the issues with Open source, it is
important to highlight the existence of them. A. Khanjani have identified some of them and
represented them in a table (Table 2), [34].
All of the faults listed by Khanjani are to be considered by anyone who attempts an Open source
project. Not all of them will necessarily lead to the immediate destruction of a project, but they can be
very costly and might lead to setbacks that may or may not be crucial. The most hazardous problems
in Open source are the ones concerning costs, attraction and motivation. Costs become an issue when
owners turn to Open source to save on monetary resources, and are not aware of the possible
investment that is needed, thus leading to abandonment of the project. Attraction and motivation are
even more important since they are the two “must have” in Open source, because there is no software
that can be created without developers. Thus, to increase the chances of having a successful Open
source project, a good foundation is needed, and that can only be done by overcoming these obstacles.
13
Table 2. Possible cons of Open source. Recreated: A. Khanjani, R. Sulaiman.
The Process of Quality Assurance under Open Source Software Development, pp 549.
Features
For Users
For Developers
For System
1. Useless
1. Lack of tools
1. Lack of formal
documentation
2. Collaboration
process; centralized
2. Unstructured
with new
management release
development
developers
and documentation
3. Irresponsible
3. Review of
2. Poor design
individuals
large projects
3. Hard estimation of
Pros & Cons
Cons
man power
4. No single
responsibility for
problem, lack of
liability
5. Version
proliferation
6. complex licenses
7. High short term
cost
14
3.4 Recommendations
3.4.1 Cost
Cost is a factor that will be a part of every project sooner or later, but not necessarily in the same form.
For example: In newer projects, cost can be considered the need of a specific non-free software, a
certain service, or even an indirect cost, such as the effort to promote the project rather than working
on it, and much more. In existing projects, as shown earlier, it can be the need for documentation,
making the code understandable for everyone, or setting up mailing-lists and more [4]. Whilst there is
no real way of eliminating costs, it is possible to minimize them.
Preparation is the keyword when dealing with costs. By preparing for the probable risk, it is likely to
find more optimal solutions than in a case where costs have been neglected. Many are unaware of the
possible expenditures that Open source requires until they reach a scenario that forces them to
recognize the problem. They will then, as most people in dire situations, search for a quick solution,
which is not always the most beneficial. To prevent the occurrence of an unforeseen event involving
cost, risk management is highly recommended (Table 3).
At first, it may seem time consuming to identify the factors of failure in an Open source project, since
they are not as well-known as they are in Closed source (i.e. not as obvious as in Closed source).
However, this will enable the risks and solutions to be considered without being pressured to act
quickly, and with more time, more solutions can be evaluated. Preparation will undoubtedly result in
better decision making and it is always better to be safe than sorry.
.
15
Table 3. Risk management plan for a project. Recreated: Software Engineering: Course Material
of Software Engineering, 4.4.4 A Practical Risk Management Planning Approach [35]
Risk
Prob.
Impact
Exp.
Mitigation
Plan
1
Failure to
High
High
High
Study white papers and
meet the high
guidelines on perf.
performance
(performance)
Train team on perf. tuning.
Update review checklist to
look for perf. pitfalls.
Test application for perf.
during system testing
2
Lack of
Med
Med
Med
Train resources.
people with
Review prototype with
right skills
customer.
Develop coding practices
3
Complexity of
Med
Med
Med
application
Ensure ongoing knowledge
transfer.
Deploy coding practices.
4
Manpower
Med
Med
Med
attrition
Train a core group of four
people.
Rotate assignments among
people.
Identify backup for key
roles.
5
Unclear
Med
Med
Med
requirements
Review a prototype.
Conduct a midstage review.
16
3.4.2 Attraction
Recruiting developers for a project is easier said than done, but it is imperative to have them.
Ultimately it is the developers that will lead the project to success or failure. To gather developers to
an Open source project it is important that the project is attractive. Only by attraction will people find
an interest for the project, and if it is high enough, the same people can begin to serve as developers.
Attraction can be accomplished through consideration of several parts of the project. Some of them, as
listed by K. Fogel (2009), are [4]:

Look around

Choose a good name

Clear mission statement
Prior to starting a project, the first step should be to look around for similar projects and more
importantly whether there are any similar active projects at that time point. It can be very costly if
there are projects successfully running with the same goals. First of all, an older project can have
developers that are already satisfied with the project they are developing, and do not wish to change.
Secondly, the project might be further into development, which is a serious disadvantage for a less
developed project (i.e. the other project will be more attractive). If a project with the same goals
already exists, it can be wise to collaborate with that project and try to reach an agreement with its
founders. Another possible scenario is that there are dead projects that, earlier, have had the same
objectives and have failed. In such case, it would be smart to study those projects as much as possible,
learn the reasons behind their failure and make sure a newer project does not make the same mistakes.
Lastly, if there are no similar projects, one can focus on other aspects of the project, such as choosing
an attractive name and mission statement.
The first thing that people will come in contact with is the name of the project. While the success or
failure of the project is not determined by its name, a good name really can help attracting people to it,
and a bad name can do the opposite. Furthermore, the project name should have some properties to it.
One, the name should be related to the project so that there are no misunderstandings and so that it is
easier to remember. Two, the name should be easy. A complicated name can be misleading and might
be irritating to people or even make them see the project as non-serious. Finally, the name should be
unique for that project. At this stage in project formation, one has to be careful to not steal an existing
name or create confusion by naming it after something with a too similar name.
While a good idea and a good name will take you a long way, there is more that can be done. A
mission statement is an example of what the interested developer will look for. If the developer likes
your project, the first thing he would do is to look for some extra information, and for that reason, it
would be great if the project has a well elaborated mission statement. The mission statement should
17
contain a quick description of the project and the goals, and it is at this phase that most developers
decide if they would like to know more about the project, and become a part of it, or not [4].
3.4.3 Motivation
When an Open source project has begun and the gathered volunteers have started their development
work, the next task is to keep them motivated. Similar to any other workplace, motivation is the factor
that drives people to perform in Open source while at the same time having a much stronger purpose.
As most people depend on their salaries, motivation will in many cases only affect their performance
at work. In open source, the developers begin their work without compensation directly linked to
performance and because of that, motivation does not only affect their performance, but also their will
to stay in the project.
In 2001, Alexander Hars mapped the reasons behind Open source developers’ motivation. He divided
them into two groups (Table 4): “Internal factors”, which are rooted in the psychology of the
individual, and “External rewards”, which have originated from the environment [33].
Table 4. Overview of motivational factors (P. Foroutan)
Internal factors
External rewards
Intrinsic motivation
Future rewards
Altruism
Personal needs
Community identification
Briefly described, Internal factors refer to what the Open source programmers choose to develop
because of their own leisure and liking, and not due to monetary incentive.
Intrinsic motivation, applied to Open source, is when the developers feel contentment, pleasure or
accomplishment when they are writing code.
Altruism is explained as when a person tries to help others at some cost to them self [36]. In Open
source, there are many developers that belong to this group, because they offer their service, without
gain, at the loss of their own energy, time, etc.
18
Community identification is the last group in Internal factors that are explained by Hars. The
programmers that belong to this group feel a strong connection to the Open source community and to
the people in it. They find motivation when taking part in Open source projects and helping their
fellow programmers in the same community (The Open source community).
The majority of Open source developers are not salaried with monetary rewards during their work.
Nonetheless, there are several external rewards in Open source that are appealing to the programmers,
and some of them can lead to indirect enhancements in revenue.
Future rewards is the main group in External rewards, and it contains the big number of
programmers that perceive their work as a future investment. The rewards of such investment may
differ and for that same reason, Hars divided this group into the following smaller parts:
Selling products and services is a lucrative part of Open source to those who wish to create an
income. In some cases, individuals or organizations provide services like support or consulting
for software that is already Open source, thus generating revenue from a program that is free3.
Human capital includes knowledge, capabilities and personality attributes in the work
environment. Created by economists, it is a collective term for the qualities a person gain
through education, training and experience (e.g. Open source projects) [37]. In brief,
programmers partake in Open source projects to acquire an improved skill set. This is seen as
a future reward as it eventually may lead to higher salaries or better job opportunities.
Self-marketing is a form of advertisement for the individual programmer. By participating in
Open source projects, they can efficiently put their capabilities and skills on display. This
advertisement is seen as a future reward, since it can, as in human capital, create better job
opportunities.
Peer recognition is actualized when a programmer receives praise or positive feedback from
his colleagues. It comes from the yearning for fame [38], and is seen as a future reward when
it has a positive effect on the developer’s effort.
Personal needs is not only a big part in motivation and external rewards, but also when it comes to
attraction [4]. It is described as, when there is a personal need for a certain service or software that
does not exist, leads to initiation of that project. Motivationally, the finished product of a needed
3
Free, as in there is no monetary cost to use the software.
19
software is the future reward; and if this need is of interest to other programmers, the project also can
produce a fair amount of attraction.
Conclusively, Hars gathered data from a survey on motivational drive that resulted in 79 valid
responses (Table 5). The results are interpreted to that the External factors have a bigger part than
anticipated. Although many are affected by both types of motivation, this survey confirms that
External factors are a larger source of motivation than Internal factors.
Table 5. Motivations of all programmer types. Source: A. Hars and O. Shaosong,
Working for free? Motivations of participating in open source projects, p. 7 [33]
Motivation
Percent
Internal factors
- Intrinsic motivation
79.7%
- Altruism
16.5%
- Community identity
27.8%
External factors
Future rewards
- Selling products and services
13.9%
- Human capital
88.3%
- Self-marketing
36.7%
- Peer recognition
43.0%
Personal need
38.5%
Attraction and motivation are two risks that are shaped in many different ways. The variety of their
appearance depends on the variety of the individuals that may become, or already are, a part of the
project. Anyone who wishes to start an Open source project, would do smart if they considered and
studied these factors in depth. In software engineering, a good start might play a vital role for the rest
of the project since problems can be difficult to solve and are very consuming in terms of resources
and time. Combining a good start with motivated developers during the ongoing project will not only
help, but can sometimes be sufficient to finish a project successfully. Nevertheless, there are several
other big changes in Open source that do not have an effect on the development of a project. One of
these enforces rules of distribution and defines the kind of software that is being made: licensing.
20
4. Licensing
Typically, when developing software using Closed source models, the final goal is to release that
software with the objective of generating sales and gaining advantages in the business market [39]. In
Open source, these objectives can be almost identical or completely opposed, depending on what the
creator or creators of the project wishes it to be. The main difference is “Licensing” (i.e. the use of
various licenses), which is a method that does not only separate Closed source from Open source, but
also set apart Open source projects from each other.
A license in Open source is a tool that is used to specify the rules regarding that particular project. It
regulates distribution rights and potential changes that others make to the source code [40]. Seen from
a bigger perspective, the licenses states what a user can or cannot do with the software [41]. There are
approximately 70 open source licenses that have been certified by the Open Source Initiative [42].
Grounded on the research of A. Engelfriet (2010), many of these licenses can be seen as copies of each
other with minor changes, and belong to one of three distinctive groups [40]:
Free-for-all licenses (a.k.a. Academic licenses). These licenses are the most permissive. The
only requirement is that credit is given to the original author of the code (i.e. derivate works
can be made proprietary as long as proper credit is given). The Berkeley license (BSD) and the
Massachusetts Institute of Technology license (MIT) are examples of free-for-all licenses.
Keep-open licenses. These licenses can be comprehended as the middle ground of Open
source licenses. Software under these licenses can be changed or altered as long as they are
made available as Open source. However, large works that include this kind of software can
be made proprietary; hence they are the middle ground. The GNU Lesser General Public
License (LGPL) and Mozilla Public License (MPL) are typical Keep-open licenses.
Share-alike licenses (a.k.a. Copyleft).The licenses in this group are more restrictive than most
others. Modified versions of this software, or software containing parts of it, must as a whole
be made available under the same license. Accordingly, software containing any source code
protected under these licenses cannot be made proprietary or be used in any proprietary
software. Furthermore, software containing Copyleft licenses must be distributed as Open
source. The GNU General Public License (GPL) and the Open Software License (OSL) are
characterized as Copyleft licenses.
21
The importance of Open source licenses has grown to have a crucial role as more corporations seek to
practice Open source. Consequently, the view of the licenses is not only technical, but also political
and legal [43]. For starters, not everyone has the authority to decide on which license to exercise.
Choosing a license requires that an individual or corporation has the full copyright of the source code
(i.e. the entire source code has been written by one or several employees of the corporation). A
developer only has the right to choose a license for the source code that he or she has written, hence
having full copyright is imperative. However, there are some exceptions where full copyright is not
necessary. Derivate works, using non-owned source code, can be released under different licenses if
the copyright holder of that code gives their permission to do so, or if the source code used is licensed
under a permissive or keep-open license that allows it. In addition to total freedom of license choice,
full copyright also makes it possible to explore more business model options, such as multi-licensing.
Multi-licensing is a business model that involves the distribution of one software under two or more
different licenses. By using the multi-licensing model, the distributor can either sell or give away
software under the license that the client wants, whether it is Open source or commercial. This said,
choosing the correct Open source license is not as trivial as it may seem. Many factors are to be
acknowledged before making any definite decisions regarding licenses, with the first being a deeper
understanding of the traits of the licenses.
4.1 License traits
GPL, LGPL and BSD are all common licenses in the Open source community. While these licenses
are very different from one another, they each represent one of the three earlier mentioned categories
that are separated by the level of restrictiveness or permissiveness that they hold (Fig 4). Nonetheless,
to fully appreciate the unique nature of OSI licenses, it is also important to understand their
similarities, which at minimum states that all source code must be available to licensees, and that no
income, in the form of licenses fees4, can be made from distributing the software [44].
4
One can sell Open source software, but cannot require a user to buy a license in order to be able to use it.
22
Fig 4. Categorization of OSS licenses. Source:
M. Kechagia et al. Open Source Licensing Across Package Dependencies, p. 29 [44]
Learning and understanding the full concept of these licenses is not always as basic as just reading
their contents. One of the reasons for that is because the rules and regulations described in the licenses
may be vague and can be misinterpreted. To make matters worse, the licenses are very strict and do
not allow for any deviation from these limitations, which are not always easily identified.
Furthermore, the Open source licenses have largely been written in regard to computers, therefore
creating issues when developing software for other hardware, such as cellular phones or in-home
routers. It is clear that the licenses were not written by lawyers, whom have practice with commercial
contract law, thus it might not only be the technical aspect that will give room for future confrontation,
but also the juridical [45]. In fact, there are a large number of court cases involving Open source
software due to either misinterpretation or disregard of license regulations.
To resolve this issue users tend to choose the more frequently used and existing licenses. This will
give room to observe previous cases of both success and failure where the license has been used in a
similar situation. In addition, the observation should as well give a clear estimate of the license
limitations. Nevertheless, deciding on what license to use requires more than just knowing the
licenses’ technical traits.
23
4.2 Choosing license
If the procedure of choosing a license begins with gaining knowledge about the different licenses, then
one must identify the user and the purpose of the license. In other words, it means that once one knows
what each tool (i.e. licenses) does, the next step is to decide whom (i.e. user) the tool is for and for
what task (i.e. purpose). Based on previous research by J. Lindman et al. (2010, 2011), the latter part
of the license decision model is affected by several factors (Fig 5), [41, 43].
Fig 5. License decision factors. Source: J. Lindman, M et al.
Matching Open Source Software Licenses with Corresponding Business Models, p. 34
Demonstrated in figure 5, the distinction between the two sides of “License decision” is that the
elements in the left column are directly, or indirectly, connected to factors outside the corporation,
while the right column represents internal factors within the corporation. The external elements consist
of: Externalities, Motivation creation, Leadership, and Company size.
Externalities are factors that will force a specific license or license type upon a project. Typically,
existing Open source projects already have decided on a license, and new contributors have to abide
by that choice. Another case would be if a company wishes or needs to use other established code
(bundling) in their project that uses a restrictive license, such as GPL. This will limit the original
project to use the same license, or alternatively to not use that code at all.
Motivation creation is overall when project creators use a license to motivate and attract developers
to their project. As previously mentioned, motivation can be extremely important for Open source
projects, foremost for new projects that are not funded by bigger corporations. A restrictive license
motivates developers in the sense that it assures that the project will remain Open source, thus
guaranteeing that their work will not be concealed or made proprietary.
24
Leadership is connected to the amount of control in a project. In many cases, strong leadership can
prevent upcoming risks and quickly solve problems. Linked to licensing, a good leadership may be
vital for an Open source project, especially when using a permissive license. If such projects are
subject to bad leadership, problems like Software code forking can arise; which is when a developer
from the team writing the software independently develops his or her own version of the software,
thereby creating two disparate versions. Good leaders should be prepared for that such troubles can
occur or in the best case prevent them by having all interested parties collaborating.
Company size literally refers to the size of the company. Smaller companies need to analyze their
choice of license, both legally and technically, and tend to use the more popular existing licenses.
However, larger companies have more room to experiment and can create new paths in Open source
licensing. This might not be successful in the long run, but the difference is that the large companies
can often afford to take risks and make mistakes.
All of these factors, whether together or individually, can affect the choice of license for a particular
project. In addition, no matter what the reason is for choosing a specific license, the most important
factor is that the choice corresponds with the intended business model. Different licenses restrict a
corporation’s possibility on creating revenue in various ways. For example: if a company plans on
selling support for Open source software, like the Red Hat business model, then licenses like GPL or
LGPL are suitable licenses. Their restrictiveness assures that the software remains Open source and is
free, but does not prohibit a corporation to sell support and services connected to the program in a
proprietary manner, which can be a great source of income. In another case, if a corporation has a
different business model, such as selling the software in a bundle, the appropriate licenses would be
one of the more permissive ones.
4.3 Recommendations
The OSI certified licenses are subject to change from time to time. Either some existing licenses are
updated and released as new licenses (often with the same name followed by higher version number)
or there can be licenses that are created from square one and are new. In any case, users that are new to
Open source licensing are recommended to seek as much knowledge as possible about the licenses,
both theoretically and practically, prior to choosing a license. This can be done by visiting the OSI
homepage5, for the most up to date information about the licenses, and by finding projects that have
practiced with the specific license or licenses before. After enough knowledge has been gathered, a
corporation must decide on what type of license they need for the selected business model. Different
5
http://www.opensource.org/licenses/alphabetical
25
licenses limit and permit different business paths of the software, thus making it very important that a
compatible license has been chosen. Therefore, when choosing a license, the focus should primarily be
on the business model, although other factors also can be taken into consideration [43].
While the business model directs the creator of the project to the correct group of licenses (e.g.
permissive, weak-restrictive, and restrictive), factors such as Externalities, Motivation creation,
Leadership, and Company size can help on deciding which specific license to choose. Many
corporations and projects share similar business models, but their resources and surroundings create
unique situations. The factors, unlike the business model, take these attributes into account, thus being
able to identify the better choice when comparing similar licenses. Though, it is important that the
license choice is within the boundaries set by the business model, even if by solely looking at the
factors suggest taking a different approach (i.e. choose a different type of license).
Licensing, as in the case of developing, requires a proper amount of time. However, since time is the
most valuable resource in software development, the urge to complete a project quickly can become
greater than to do it thoroughly. To some extent it is true that completing a project in a shorter amount
of time can save some costs, but a bad choice of license will be more expensive. Therefore, every
project manager should take their time on deciding the correct license to use, thus not exposing a
project of unnecessary risk, which is a far greater reward than it is as a cost.
Keep in mind that there is more than one way to exploit a specific license. In some cases a license
might be used for its possibility to create income, whilst in others for its knowledge management. For
more in depth understanding of license compatibility in various types of projects, two examples are
given in the following scenarios.
26
5. Scenarios
The purpose of this study is to give the reader a deeper insight into the interplay between the license
and business model, by showing how the same license can be utilized in different ways with various
types of software. The study is conducted by reviewing the possibilities and limitations set by GNU
Public License (GPL) in two different categories of software; on one side there are standalone types of
software, like a web browser or operating system, where the source code for the software itself is the
wanted product and on the other side, there are software like code generators and compilers where the
sought product is the source code created by the software.
In scenario one, the study is focusing on the standalone software Linux in a successful case where the
choice of Open source license GPL which is one of the most restrictive licenses, in combination with a
compatible business model, has enabled corporations (e.g. Red Hat) to create a thriving revenue
stream.
In scenario two, the study shifts towards the second category of software and analyzes the code
generator gSOAP and GPL, that is a case where the GPL solely is not enough for creating revenue, but
does allow for other benefits of the license, such as restricting code forking and gaining developers.
5.1 Scenario 1: Linux and GPL
In the year of 1991, the operating system (OS) Linux was introduced to the world by Linus Torvalds.
The project, which is one of the most renowned Open source software, has frequently been observed
because of its success, both during its developmental phase and now in business. In fact, even though
he is the principal author and often associated with the operating system, L.Torvalds (1997)
acknowledged that [46]:
”I would like to make it very clear that the Linux operating system is a huge
project done co-operatively by lots of people all over the world. […] just the
kernel contains code from hundreds of people from around the world.”
The Linux operating system is licensed under the GPL-2.0 (version 2.0), thus making it much more
commercially restrictive than its competitors (e.g. Windows OS and Mac OS). Even so, since its
creation it did not take long before several corporations identified and applied compatible business
models to the new operating system; with one of them being the “Red Hat”.
27
Founded in 1993, the Red Hat corporation is one of the biggest and first distributors of the Linux OS
[47]. The corporation quickly became successful and much of it was, amongst others, due to their
early implementation of a well-matched business model for Linux and GPL, which is partially
exercised even at the present. The formula that crafted the successful business model was simply Red
Hat’s ability to identify the needs of the Linux OS users [48]. Unlike many others, Red Hat did not
just focus their attention on the software itself, but also on the services that the user required,
especially corporations. In addition, the GPL-2.0restricted the corporation from selling the software in
the same manner as their proprietary competitors, and so became the professional Open source
company Red Hat.
Throughout time the Red Hat business model has been subject to minor changes and is at this time
point perfectly adapted to the needs of their clients. The corporation has currently over 4000
employees and was ranked 19th place in America's 25 fastest-growing tech companies by Forbes6,
2011 [49]. By understanding both the market and the software (i.e. license), the successful progression
of the Red Hat business shows that it is possible for a professional Open source corporation to rise to
the level of those who solely or mainly work with commercial licenses.
5.1.1 The Red Hat license depending business model
The concept of the Red Hat business model is to sell subscriptions for services that are connected to
the various software products. Included in the subscription is also that Red Hat will provide a
packaged version of the Open source software with corresponding updates as soon as they are made.
This model can be perceived as giving the clients a complete package as the subscription contains both
services and software [50]. However, a big component for the Red Hat success is not solely that they
provide the services, but also that the services are well developed and high in quality.
Some of the services that Red Hat offer are support, training and professional maintenance for the
software [51]. For corporations, these services have become very lucrative, since technical problems
and low employee effectiveness can be very expensive. Furthermore, Red Hat offers a variety of
subscriptions that include different levels of service, thus granting their clients the freedom to only pay
for what they need.
In summary, the value of a Red Hat subscription is in the whole package with the services, and not
exclusively just the software. This business model is exceptionally well-suited with the GPL-2.0 or
any other restrictive license as the license brings down the value of the software from a sales
6
An American publishing and media company
28
perspective. The combination of the Red Hat Open source software and their services, is a product that
has enabled them to keep and expand their clientele, and doing so without breaking the GPL-2.0
regulations. Though, it should be noted that this business model only works for the standalone type of
software (i.e. Linux). Code generators and compilers have other difficulties when licensed under the
GPL; especially, in cases when corporations, that develop proprietary licensed software, are looking to
use source code protected by the GPL.
5.2 Scenario 2: gSOAP and GPL
The software gSOAP is an Open source C and C++ software development toolkit created by Dr.
Robert A. van Engelen at Florida State University, USA [52]. It is a software that analyzes WSDLs
(Web Services Description Language) and XML schemas, and maps the XML schema types and the
SOAP messaging protocols to efficient C and C++ code; or it can simply be used for converting XML
to or from C and C++ data [53]. Concisely, gSOAP is a compiler-based code generator.
GSOAP, as Linux, is also an example of Open source software licensed under GPL-2.0 that has been
proven to be successful. The toolkit is used by many corporations worldwide, including several top
technology companies, such as IBM, Microsoft, HP and many more [53]. However, since gSOAP
belong to the second category of software, it would not have reached this success if it had applied the
business model used by Red Hat.
The problem that the GPL-2.0 causes the business aspect of software like gSOAP is due to its Copyleft
nature that necessitate that all derived work of such software, even if it is a small part, must be
licensed under the GPL-2.0. Unlike purely transformational compilers such as GNU Compiler
Collection (GCC), the gSOAP output includes algorithms for run-time processing (i.e. efficiency) that
are not part of the input but are rather emitted to optimize the code generate by gSOAP. Therefore,
compilers that solely transform code can preserve the original license of the input whereas the gSOAP
output must be licensed under the GPL-2.0. For many corporations active in the commercial software
market, restrictive licensed output is not appealing as they may want to integrate the generated code
into software under a proprietary license. Knowing this predicament, Dr. van Engelen utilized a
different approach than Red Hat, namely the Multi-licensing business model.
5.2.1 The gSOAP Multi-licensing business model
Being the sole developer and full copyright holder of the gSOAP code, Dr van Engelen had the option
of using the multi-licensing business model. This has resulted in two different main types of gSOAP
29
software, one is the Open source gSOAP that is licensed under GPL-2.0, and the other is a gSOAP
version under a commercial software license.
From the business perspective the commercial version of gSOAP is by itself enough to achieve
success. In comparison to Red Hat and Linux, the project does not have to be Open source at this time
point and probably not in the future either. Especially so since Dr. van Engelen does not accept any
third-party GPL contributions to avoid having to fork the code in both versions, thus he is and will
remain the sole copyright holder [53]. When asked why he chooses to have an Open source version of
the software, he responded:
” I wanted to start an Open source project and give back something to the
community”
If anyone decides to further develop or redistribute the software, it can only be done under the GPL2.0. Therefore, gSOAP software is always protected and Dr. van Engelen can openly share the source
code without hampering commercial development opportunities of his company and be able to
continue to meet contractual obligations with clients.
The multi-licensing business model is a great approach for those who want to explore the possibilities
of a different license choice. In fact, a copyright holder can experiment with as many licenses he or
she chooses, given that there is no limitation in multi-licensing. Nonetheless, much caution is advised
when changing a license. For example, if the software in this case had been Linux, the GPL-2.0 would
not have been sufficient enough to keep competitors from making profit on the software.
Consequently, it is important that the copyright holder knows the rules and regulations of a license and
how it will affect the project. A wrong choice of license can turn out to be destructive for the business
model and ultimately be much more costly than helpful.
5.3 Scenarios conclusion
What this study has shown, is that the one and same Open source license can have very different
impact and relevance on various projects. Depending on the type of software and situation, a license
can be anything from a hindrance to an aid. For example: In the scenario of Linux, the GPL-2.0 is
perceived as a hindrance as the Red Hat corporation does not have the rights to change the license and
has to abide by its regulations. Although confronted by this obstacle, Red Hat overcame the problem
by implementing their innovative business model and has become successful in creating big revenue.
While in the second scenario with gSOAP, the GPL-2.0 is considered an aid as the copyright holder,
30
Dr. van Engelen, is not required to release the software as Open source, but chooses do so. He believes
it is important to help the Open source community, and by combining the multi-licensing model and
the GPL-2.0, he has been able to do so without compromising his own interest.
Ultimately, if the interplay between license and business model is good, the project will have much
higher prospect of success. For some cases, a compatible license must be chosen for the select
business model, and for others, it is vice versa. Nevertheless, the identification of the best suited
combination for a certain project is a task for its creator.
31
6. Conclusion
Developing Open source projects is not an easy task. Like any type of software production, Open
source development comes along with risks (e.g. costs, attraction and motivation) that must be
properly planned and accounted for. Not surprisingly, the fast changes and increasing requirements in
Open source projects call for methods of development that are able to cope with them, such as the
Agile methods. While management of these aspects are guaranteed to help a project in its development
and initiation, it is equally important that the product is given a fair opportunity for success, which
necessitates a suitable Open source license for the project’s business model.
Open source licenses is a factor that must be taken very seriously and it is crucial that their importance
is understood. Primarily, it is not that the correct license will absolutely ensure success, but rather that
the wrong choice of license have a high chance of ruining a project’s present and future plans for
profit. Additionally, users of Open source software, especially corporations, should also revise the
license in order to not encounter legal and technical problems.
During a long time it was the general belief that Open source licensed software does not offer equal
revenue possibilities to software under a proprietary license. However, in recent years this argument
has been heavily disproved by numerous successful Open source projects, such as the Red Hat Linux
and Google’s Android. These projects are evidence that if Open source projects are successfully
developed and managed, high rewards can be claimed. Open source methodology has given
developers the opportunity to release high quality software under different circumstances than in
traditional software development and may very well boost a corporation’s reputation. With this said, if
developed properly, Open source software can be a great asset with endless possibilities.
32
References
[1]
J. Lanier, You are not a gadget: A manifesto, 1 ed. United States: Alfred A. Knopf,
2010.
[2]
A. Khanjani and R. Sulaiman, "The aspects of choosing open source versus closed
source," in Computers & Informatics (ISCI), 2011 IEEE Symposium on, 2011, pp.
646-649.
[3]
C. H. Museum. DECUS. Available: http://pdp-1.computerhistory.org/pdp1/index.php?f=theme&s=4&ss=7 (Retrieved: December 15, 2011)
[4]
K. Fogel. (2009). How to run a successfull free software project - Producing Open
source software.
[5]
B. M. Leiner, V. G. Cerf, D. D. Clark, R. E. Kahn, L. Kleinrock, D. C. Lynch, J.
Postel, L. G. Roberts, and S. Wolff. A brief history of the Internet. Available:
http://www.isoc.org/internet/history/brief.shtml (Retrieved: September 6, 2011)
[6]
IBM. History of IBM - 1960s. Available: http://www03.ibm.com/ibm/history/history/decade_1960.html (Retrieved: September 6, 2011)
[7]
D. Marshall. History of the Internet: Timeline. Available:
http://www.netvalley.com/archives/mirrors/davemarsh-timeline-1.htm (Retrieved:
September 6, 2011)
[8]
J. Gonzalez Barahona, "A brief history of free software and open source," IEEE
software, vol. 16, p. 32, 1999.
[9]
R. Stallman. (2011). The GNU Project. Available:
http://www.gnu.org/gnu/thegnuproject.html (Retrieved: September 6, 2011)
[10]
E. Capra, C. Francalanci, and F. Merlo, "An Empirical Study on the Relationship
Between Software Design Quality, Development Effort and Governance in Open
Source Projects," Software Engineering, IEEE Transactions on, vol. 34, pp. 765-782,
2008.
[11]
Open Source Initiative. History of the OSI. Available:
http://www.opensource.org/history (Retrieved: September 8, 2011)
[12]
OSS Watch. What is Open source software? Available: http://www.osswatch.ac.uk/resources/opensourcesoftware.xml (Retrieved: September 15, 2011)
[13]
Red Hat. Why Open source? Available: http://www.redhat.com/about/whyopensource/
(Retrieved: September 15, 2011)
[14]
Open Source Initiative. The Open Source Definition. Available:
http://www.opensource.org/docs/osd (Retrieved: September 8, 2011)
33
[15]
S. Raghunathan, A. Prasad, B. K. Mishra, and C. Hsihui, "Open source versus closed
source: software quality in monopoly and competitive markets," Systems, Man and
Cybernetics, Part A: Systems and Humans, IEEE Transactions on, vol. 35, pp. 903918, 2005.
[16]
GBdirect. Benefits of using Open source software. Available: http://opensource.gbdirect.co.uk/migration/benefit.html (Retrieved: September 8, 2011)
[17]
G. DeKoenigsberg, "How Successful Open Source Projects Work, and How and Why
to Introduce Students to the Open Source World," in Software Engineering Education
and Training, 2008. CSEET '08. IEEE 21st Conference on, 2008, pp. 274-276.
[18]
W. Scacchi, J. Feller, B. Fitzgerald, S. Hissam, and K. Lakhani, "Understanding
Free/Open Source Software Development Processes," Software Process: Improvement
and Practice, vol. 11, pp. 95-105, 2006.
[19]
G. Madey, V. Freeh, and R. Tynan, "Modeling the F/OSS community: a quantitative
investigation," in Free/Open Source Software Development, ed. Free/Open Source
Software Development, S. Koch: S. Koch, Ed.: Idea Group Publishing, 2004, pp. 203221.
[20]
J. Zawinski. (1999). Resignation and postmortem. Available:
http://www.jwz.org/gruntle/nomo.html (Retrieved: September 22)
[21]
J. E. Robbins, "Adopting Open Source Software Engineering (OSSE) Practices by
Adopting OSSE Tools," Making Sense of the Bazaar: Perspectives on Open Source
and Free Software, 2003.
[22]
D. Pierce. (2011). Waterfall model. Available: http://duncanpierce.org/node/177
(Retrieved: September 26, 2011)
[23]
P. Tsirakidis, F. Kobler, and H. Krcmar, "Identification of Success and Failure Factors
of Two Agile Software Development Teams in an Open Source Organization," in
Global Software Engineering, 2009. ICGSE 2009. Fourth IEEE International
Conference on, 2009, pp. 295-296.
[24]
F. Alfonso, "Open source software––an evaluation," Journal of Systems and Software,
vol. 66, pp. 77-90, 2003.
[25]
G. Lee and W. Xia, "TOWARD AGILE: AN INTEGRATED ANALYSIS OF
QUANTITATIVE AND QUALITATIVE FIELD DATA ON SOFTWARE
DEVELOPMENT AGILITY," MIS Quarterly, vol. 34, pp. 87-114, 2010.
[26]
(2011). Agile Methodology – Changing ways of software development. Available:
http://www.otssolutions.com/blog/?p=62 (Retrieved: September 28, 2011)
[27]
W. Cunningham and et al. (2001). Principles behind the Agile Manifesto. Available:
http://agilemanifesto.org/principles.html (Retrieved: September 28, 2011)
[28]
E. Bethke, Game development and production. Plano, Tex.: Wordware Pub., 2003.
34
[29]
T. Waring and P. Maddocks, "Open Source Software implementation in the UK public
sector: Evidence from the field and implications for the future," International Journal
of Information Management, vol. 25, pp. 411-428, 2005.
[30]
P. Maki-Asiala and M. Matinlassi, "Quality Assurance of Open Source Components:
Integrator Point of View," in Computer Software and Applications Conference, 2006.
COMPSAC '06. 30th Annual International, 2006, pp. 189-194.
[31]
L. M. Karg, M. Grottke, and A. Beckhaus, "Conformance quality and failure costs in
the software Industry: An empirical analysis of open source software," in Industrial
Engineering and Engineering Management, 2009. IEEM 2009. IEEE International
Conference on, 2009, pp. 1386-1390.
[32]
M. Grottke, L. M. Karg, and A. Beckhaus, "Team Factors and Failure Processing
Efficiency: An Exploratory Study of Closed and Open Source Software
Development," in Computer Software and Applications Conference (COMPSAC),
2010 IEEE 34th Annual, 2010, pp. 188-197.
[33]
A. Hars and O. Shaosong, "Working for free? Motivations of participating in open
source projects," in System Sciences, 2001. Proceedings of the 34th Annual Hawaii
International Conference on, 2001, p. 9 pp.
[34]
A. Khanjani and R. Sulaiman, "The process of quality assurance under open source
software development," in Computers & Informatics (ISCI), 2011 IEEE Symposium
on, 2011, pp. 548-552.
[35]
(2011). Software Engineering: Course Material of Software Engineering. Available:
http://rpl-blog.blogspot.com/2010/03/444-practical-risk-management-planning.html
(Retreived: October 10, 2011)
[36]
J. R. Ozinga, Altruism: Praeger, 1999.
[37]
A. O'Sullivan and S. M. Sheffrin, Economics: Principles in Action: Pearson Prentice
Hall, 2002.
[38]
C. DiBona and S. Ockman, Open Sources: O'Reilly Media, Inc, 1999.
[39]
W. Ming-Wei and L. Ying-Dar, "Open source software development: an overview,"
Computer, vol. 34, pp. 33-38, 2001.
[40]
A. Engelfriet, "Choosing an Open Source License," Software, IEEE, vol. 27, pp. 4849, 2010.
[41]
J. Lindman, A. Paajanen, and M. Rossi, "Choosing an Open Source Software License
in Commercial Context: A Managerial Perspective," in Software Engineering and
Advanced Applications (SEAA), 2010 36th EUROMICRO Conference on, 2010, pp.
237-244.
[42]
Open Source Initiative. Licenses by Name. Available:
http://www.opensource.org/licenses/alphabetical (Retrieved: November 1, 2011)
35
[43]
J. Lindman, M. Rossi, and A. Puustell, "Matching Open Source Software Licenses
with Corresponding Business Models," Software, IEEE, vol. 28, pp. 31-35, 2011.
[44]
M. Kechagia, D. Spinellis, and S. Androutsellis-Theotokis, "Open Source Licensing
Across Package Dependencies," in Informatics (PCI), 2010 14th Panhellenic
Conference on, 2010, pp. 27-32.
[45]
M. Välimäki, The rise of open source licensing a challenge to the use of intellectual
property in the software industry. Helsinki, Finland: Turre Publishing, 2005.
[46]
L. Torvalds, "Linux: a Portable Operating System," Masters of Science, Department of
Computer Science, University of Helsinki, Report C-1997-12, 1997.
[47]
R. Hat. Red Hat History. Available:
http://www.redhat.com/about/companyprofile/history/ (Retrieved: November 30,
2011)
[48]
T. Chung. History of Red Hat Linux. Available:
http://fedoraproject.org/wiki/History_of_Red_Hat_Linux (Retrieved: December 01,
2011)
[49]
Red Hat. Corporate fact sheet for Red Hat. Available:
http://www.redhat.com/about/companyprofile/facts/ (Retrieved: November 30, 2011)
[50]
Red Hat. Server Operating Systems. Available:
http://www.redhat.com/apps/store/server/ (Retrieved: December 2, 2011)
[51]
Red Hat. Value of a Red Hat subscription. Available:
http://www.redhat.com/about/mission/business_model.html (Retrieved: November 30,
2011)
[52]
R. A. van Engelen. Robert A. van Engelen. Available:
http://www.cs.fsu.edu/~engelen/index.html (Retrieved: December 5, 2011)
[53]
R. A. van Engelen. The gSOAP Toolkit for SOAP Web Services and XML-Based
Applications. Available: www.cs.fsu.edu/~engelen/soap.html (Retrieved: December 5,
2011)
36
TRITA-CSC-E 2012:012
ISRN-KTH/CSC/E--12/012-SE
ISSN-1653-5715
www.kth.se