Open Source Culture

Introduction to Open Source

Gerard Braad

gerard@unitedstack.com

What is Open Source

What does 'openness' mean?

History

Free Software Movement

History

Informal software sharing

1983

Richard Stallman publishes the GNU Manifesto

explanation and definition of the goals of the GNU Project

GNU Project

give computer users freedom and control in their use of their computers and computing devices, by collaboratively developing and providing software that is based on the freedoms

users are free to run the software, share it (copy, distribute), study it and modify it.

1989

First version of the GNU General Public License

gives permission to modify the work, as well as to copy and redistribute the work or any derivative version

Four freedoms

0. The freedom to

run the program as you wish, for any purpose

1. The freedom to

study how the program works, and change it so it does your computing as you wish

Access to the source code is a precondition for this.

2. The freedom to

redistribute copies so you can help your neighbor

3. The freedom to

distribute copies of your modified versions to others

Four freedoms

By doing this you can give the whole community a chance to benefit from your changes.

Access to the source code is a precondition for this.

1991

Linux is announced as a hobby project

I’m doing a (free) operating system (just a hobby, won’t be big and 
professional like gnu) for 386(486) AT clones.

frustrated by the licensing and design of MINIX

Yes - it's free of any minix code, and it has a multi-threaded fs.

1992

Linux relicensed under the GPL

The original license prohibited commercial redistribution.

Naming controversy

Relicensing allowed to create a 'commercial' version

triggered adoption by enterprise market; they could get support in the form of services.

Red Hat starts selling support contracts

Ambiguous use of 'free'

Eric S Raymond, Red Hat, et al introduce a new term

Open Source

Open Source

clearly explains the intention of freedom to study

cultural issues between use of the terms 'free' and 'open'. Source code is 'freely' available to see.

Open Source

is an ideology / way of doing

promotes collaboration/sharing of ideas

the licensing promotes the re-use of material

Open Source

is not only about software

  • Open Hardware
  • Open CourseWare (MIT)
  • Wikipedia (CC-licensed)

Successful projects

  • Mozilla Firefox
    1998, Netscape open source
  • LibreOffice
    2010, forked from OpenOffice
  • Apache HTTP Server
  • MariaDB 2009, forked from MySQL
  • OpenStack

Successful companies

  • Red Hat
  • MySQL
  • JBoss
  • SuSE, Novell
  • Xensource
  • Mirantis

LAMP

web service solution stack

Became popular because it is entirely free and open-source software

  • interchange without vendor lockin
  • 'free of cost' popularized it

LAMP consists of

  • Linux operating system
  • Apache HTTP Server
  • MySQL database
  • PHP programming language

variants exist, but the ease of use of the components allowed rapid application development

Reasons for adoption

  • lower cost
  • security
  • prevent vendor 'lock-in'
  • better quality

security and better quality comes from the idea 'given enough eyeballs, all bugs are shallow'.

quality comes from practices such as 'code review'.

Lower cost

Often mistaken as 'free of cost'.
Charged in the form of services or support.

Even if the source code is available at no charge, there is still a cost involved with maintenance and training of staff.

Vendor 'lock-in'

customer is dependent on a vendor for products and services

  • network equipment
  • proprietary formats
  • camera lenses

Upstream

the original authors or maintainers of software.

patch 'sent upstream' means offered to the author for inclusion.

Upstream

Downstream deviations

  • patches
  • aditional sources
  • different dependencies
  • configuration options

Note: exceptions can exist

Upstream

Deviations can lead to issues

  • maintenance problems
  • documentation inconsistency
  • security problems
  • quality coverage

Backporting

Merge fixes to a different version

Can become painful over time (or even impossible and conflicting)

Upstream

Advantages to 'upstreaming'

  • Common Benefit and Reduced Maintenance Burden
  • Documentation (formal and informal)
  • Translations
  • Quality Assurance
  • Fast incremental improvements
  • User feedback

Upstream

Advantages to 'upstreaming'

  • Common knowledgebase
  • Marketing
  • Trust and confidence

prevents knowledge asymmetry between project and provider and/or provider and customer.

What makes F/OSS projects more difficult

  • Often involve global virtual teams
    • Cultural differences
  • Uneven distribution of skill sets
    • Developer-dominated
    • Technical-focused

What makes F/OSS projects more difficult

  • Knowledge-sharing challenges
    • Lack of informal socialisation
    • weak team climate
    • lack of trust and respect

Advantages of doing F/OSS

  • Purely technical requirement
  • Can lead to industry standard
  • Lowers cost of marketing

Disadvantages of doing F/OSS

  • Possible neglect of documentation
  • possibility of untested code

Large projects enforce documentation and reviewing.

OpenStack and The Four Opens

  • Open Source
  • Open Design
  • Open Development
  • Open Community

  • NOT Open Core

Open Core

  • Open Source for the core
  • Addons are commercially sold

licensing is often not ideal to allow re-use of the core in other projects

F/OSS can be unfriendly

  • Gender bias and stereotypes
    • Male-dominated
    • Female-unfriendly environment

Cultural aspects

Continue to Cultural aspects