What is open source?


Dept. of Electrical Engineering and Computer Science
Academic Year 2011-2012
What is open source?

• It is not about software.
• It is the process by which software is created.
• Software is the artifact of applying the process.
In order to understand
open source, we need
answers to:
• Who are the people who write open source code?
• What do these people do, exactly?
• How do they collaborate with each other?
• How do they resolve disagreements and deal with
  conflict?
The Software “Problem”

• This is a hard problem because:
• An auto engineer can envision with great accuracy how
  and in what conditions a car will be driven.
• A software engineer cannot envision so freely.
  A piece of software can be used in radically different ways,
  hardening any assumptions to be made during the design
  process.
The Software “Problem”



• The essence of software design, like the writing of
  poetry, is a creative process.
The Software “Problem”


• Place a young eccentric in an isolated basement room
  with a computer and lots of coffee, and let write
  software until the point of exhaustion?
• How about an OS that contains millions of lines of
  code?
The Software “Problem”



• We need division of labor. How do we divide?
The Software “Problem”


• First, the problem solution needs to be conceptually
  architected.
• A small architecture team needs to consist of
  resonant minds:

  This is essential for “Conceptual integrity”.
The Software “Problem”

• Architecture by Master Architect.
 • Produces a master plan.
 • Dictates division of labor.
• Implementation. Sub-architect, Engineers.
 • Produces a sub-master plan.
 • Develops each independent component.
The Software “Problem”


• Brooks’s Law:
  Adding more manpower to a software project that is
  behind schedule will put the project even far behind.
The Software “Problem”

 • Brooks says that as the number of programmers
   increase, the possibility of failure scales quadratically.

   because the number of communication paths increases at
   this rate.
 • We know the software problem is a rather difficult
   one, how does open source can help?
Open source process

• The key element of the process is volunteering.
 • voluntary participation.
 • voluntary selection of tasks.
 • anyone can join an open source project.
 • anyone can leave at any time.
 • each person is free to choose what he wishes to
    work on or to contribute.
Open source process

• There is a core code base. And it is available freely.
• Anyone can obtain and modify.
• From this point on, licensing makes a difference.
 • BSD license: minimally constraining, e.g., creating a
    proprietary product.
  • GPL license: more constraining, e.g., you cannot create
    a proprietary product and hide the source code.
Open source process
• Coding practices
 • In a typical BSD style process, a small and a core team
    of developers write most of the code. Source code is
    freely available for anyone.
  • In a Linux style process, there is no distinction. There
    is an army of developers, and they can work on any
    piece and submit changes. However such changes are
    evaluated through a methodical process.
  • In a Linux style process, the norm is to be extremely
    vocal, and be not afraid of what others might say.
Open source process


• What happens when your patch gets rejected?
 • You can take the source code, add your patch, and
    branch out, create a new fork.
 • Everyone has this right.
Open source process

• The fundamental question is:
 • why would someone contribute time and effort to
    write code that they do not copyright and for which
    they will not be directly compensated for?
 • this is not a matter of having the right people on
    board, or the number of people on board. it is the
    organizational nature of the underlying process itself
    that drives the success.
Open source process

• Who participates in the process?
 • a high school student writing patches, you who is
    willing to contribute to an existing open source
    community, ..., so who?
  • SourceForge: As of Sept 2003, ~67K projects, ~600K
    active users.
  • Counter.li.org counts the number of active Linux
    users: guesstimate is ~18M as of May 2003.
Open source process

• Who participates in the process?
 • Studies have shown that Linux contributors are
    geographically dispersed, and notably international,
    and large in number.
 • Linux version 1.0 had 78 individual developers, and 12
    countries.
Open source process
Open source process
Open source process

• 10% of the developers are credited with about 72% of
  the code.
• Top 10 individuals are responsible for 20% of the total
  code.
• Contributions to Linux, Gnome etc. conform to this
  pattern.
Open source process

• What do they do?
 • Make it interesting and make sure it
   happens.
 • Open Source developers look for opportunities to
   create new and exciting functions or do hard things in
   an elegant way.
 • The number of volunteers is huge, and they have
   different interests and expertise.
Open source process


• What do they do?
 • Volunteers create cool stuff, but it is cooler if others
    say so, it is even cooler.
  • Project leaders need to create opportunities for
    growth, intellectual satisfaction, and the likes.
Open source process



• What do they do?
 • Scratch an itch.
Open source process

• What do they do?
 • Minimize how many times you have to
   reinvent the wheel.
 • A good programmer is “lazy like a fox”.
 • It is so hard and time consuming to write good code,
   the lazy fox is always searching for efficiencies.
Open source process


• What do they do?
 • Minimize how many times you have to
   reinvent the wheel.
 • Code moves freely without any boundaries.
 • There is no vendor lock-in problem.
Open source process

• What do they do?
 • Solve problems through parallel work
   processes whenever possible.
 • Traditional approach is Engineering. The architect
   sketches the course to take towards a solution.
 • Open source relies on Evolution where many people
   are trying to come up with a solution while lacking a
   central authority dictating which way to go.
Open source process

• What do they do?
 • Leverage the law of large numbers.
 • Traditional software: Field testing is tricky. Buggy code
    can be tested by users on beta versions. But buggy
    product may hurt the brand.
  • Open source software is always in beta stage. A bug is
    not a problem, but rather it is a challenge to take on.
Open source process
• What do they do?
 • Document what you do.
 • In a traditional environment, documentation has less
    importance. Knowledge transfers through other
    channels.
  • However, in open source, documentation is king!
  • Documentation in open source is a means of
    transferring what the author knows across time as
    well as space.
Open source process


• What do they do?
 • Document what you do.
 • Writing code that is easier to document. That should
    be the philosophy.
Open source process



• What do they do?
 • Release early and release often.
Open source process
• What do they do?
 • Talk a lot.
 • Open source developers love to talk about what it is
    they are doing and why.
 • In 1992, Linus Torvalds wrote to Andrew Tanenbaum:
    “Linux still beats the pants off Minix in almost all
    areas.. your job is being a professor and a researcher,
    that is one hell of a good excuse for some of the
    brain-damages of Minix.”

More Related Content

PDF
5 Must-to-Read Books on DevOps
PDF
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
PDF
JavaLand 2022 - Debugging distributed systems
PDF
Agile Software Development
PDF
Building software: the lessons from open source
PPTX
Clean code presentation
PDF
An Ode To Boring Technology
PDF
Debugging distributed systems
5 Must-to-Read Books on DevOps
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
JavaLand 2022 - Debugging distributed systems
Agile Software Development
Building software: the lessons from open source
Clean code presentation
An Ode To Boring Technology
Debugging distributed systems

What's hot (20)

PPTX
Intro to open source - 101 presentation
PPTX
Making software-projects-successful-nicar-2013
PPTX
How To Write a Testable Code
PDF
Software design - Write solid software with the ideal chalk
PDF
Open.source.innovation.20070624
PDF
Software architecture in a DevOps world
PDF
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
PDF
Debugging distributed systems
PDF
Tutorial on Using Amazon Mechanical Turk (MTurk) for HCI Research
PDF
Agile Yesterday, Today, and Tomorrow - PNSQC with James Shore
PPTX
How to get started in Open Source!
PPTX
SOLID for Adults
PPTX
Getting Started with Architecture Decision Records
PPTX
Solid as OOP abstraction
PDF
Expertise in Software Development
PDF
Supersize me: Making Drupal go large
PDF
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
PDF
Overcoming the Fear of Contributing to Open Source
PDF
Leadership Without Management: Scaling Organizations by Scaling Engineers
PPTX
Oscon 2016: open source lessons from the todo group
Intro to open source - 101 presentation
Making software-projects-successful-nicar-2013
How To Write a Testable Code
Software design - Write solid software with the ideal chalk
Open.source.innovation.20070624
Software architecture in a DevOps world
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
Debugging distributed systems
Tutorial on Using Amazon Mechanical Turk (MTurk) for HCI Research
Agile Yesterday, Today, and Tomorrow - PNSQC with James Shore
How to get started in Open Source!
SOLID for Adults
Getting Started with Architecture Decision Records
Solid as OOP abstraction
Expertise in Software Development
Supersize me: Making Drupal go large
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
Overcoming the Fear of Contributing to Open Source
Leadership Without Management: Scaling Organizations by Scaling Engineers
Oscon 2016: open source lessons from the todo group
Ad

Viewers also liked (9)

PDF
Centro1807 marpegan tecnologia
KEY
Programming with Python: Week 1
KEY
Programming with Python - Week 3
KEY
Virtualization @ Sehir
KEY
Kaihl 2010
PPT
Upstreamed
KEY
Programming with Python - Week 2
KEY
Startup Execution Models
Centro1807 marpegan tecnologia
Programming with Python: Week 1
Programming with Python - Week 3
Virtualization @ Sehir
Kaihl 2010
Upstreamed
Programming with Python - Week 2
Startup Execution Models
Ad

Similar to What is open source? (20)

PPTX
PPT-unit-1.pptx.......................................
PDF
Open Source: What is It?
PPT
Open Source Issues and Trends
PDF
LCA14: LCA14-110: FLOSS Training
PDF
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
PDF
Osgeo incubation-2014
PPTX
Open source softwares
PPTX
Open source softwares
PDF
Open Source & Libraries
PDF
Open Your Mind: Open Source in Libraries
PDF
Philosophy of Open Source - SFO17-TR01
KEY
Thoughts on Open Accessibility
PDF
Open Source Lessons from the TODO Group
PPTX
Open source and then some: An Introduction
PPTX
OSGeo Incubation 2014
PDF
Practical Open Source Software for Libraries (part 1)
PDF
What every successful open source project needs
PDF
Contributing to Open Source
PDF
WE16 - Navigating the Seas of Open Source Projects
PDF
Contributing to an Open Source Project 101
PPT-unit-1.pptx.......................................
Open Source: What is It?
Open Source Issues and Trends
LCA14: LCA14-110: FLOSS Training
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
Osgeo incubation-2014
Open source softwares
Open source softwares
Open Source & Libraries
Open Your Mind: Open Source in Libraries
Philosophy of Open Source - SFO17-TR01
Thoughts on Open Accessibility
Open Source Lessons from the TODO Group
Open source and then some: An Introduction
OSGeo Incubation 2014
Practical Open Source Software for Libraries (part 1)
What every successful open source project needs
Contributing to Open Source
WE16 - Navigating the Seas of Open Source Projects
Contributing to an Open Source Project 101

More from Ahmet Bulut (11)

PDF
Nose Dive into Apache Spark ML
PDF
Data Economy: Lessons learned and the Road ahead!
PDF
Apache Spark Tutorial
PDF
A Few Tips for the CS Freshmen
PDF
Agile Data Science
PDF
Data Science
KEY
Liselerde tanıtım sunumu
KEY
Ecosystem for Scholarly Work
KEY
I feel dealsy
KEY
Bilisim 2010 @ bura
KEY
ESX Server from VMware
Nose Dive into Apache Spark ML
Data Economy: Lessons learned and the Road ahead!
Apache Spark Tutorial
A Few Tips for the CS Freshmen
Agile Data Science
Data Science
Liselerde tanıtım sunumu
Ecosystem for Scholarly Work
I feel dealsy
Bilisim 2010 @ bura
ESX Server from VMware

Recently uploaded (20)

PDF
Gestión Unificada de los Riegos Externos
PPTX
AQUEEL MUSHTAQUE FAKIH COMPUTER CENTER .
PDF
Advancements in abstractive text summarization: a deep learning approach
PPTX
From Curiosity to ROI — Cost-Benefit Analysis of Agentic Automation [3/6]
PPTX
CRM(Customer Relationship Managmnet) Presentation
PPT
Overviiew on Intellectual property right
PPTX
Blending method and technology for hydrogen.pptx
PPTX
Report in SIP_Distance_Learning_Technology_Impact.pptx
PDF
Peak of Data & AI Encore: Scalable Design & Infrastructure
PDF
Ebook - The Future of AI A Comprehensive Guide.pdf
PDF
Domain-specific knowledge and context in large language models: challenges, c...
PDF
State of AI in Business 2025 - MIT NANDA
PDF
ment.tech-How to Develop an AI Agent Healthcare App like Sully AI (1).pdf
PDF
TrustArc Webinar - Data Minimization in Practice_ Reducing Risk, Enhancing Co...
PPTX
Introduction-to-Artificial-Intelligence (1).pptx
PDF
The Digital Engine Room: Unlocking APAC’s Economic and Digital Potential thro...
PDF
1_Keynote_Breaking Barriers_한계를 넘어서_Charith Mendis.pdf
PPTX
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
PDF
Altius execution marketplace concept.pdf
PDF
eBook Outline_ AI in Cybersecurity – The Future of Digital Defense.pdf
Gestión Unificada de los Riegos Externos
AQUEEL MUSHTAQUE FAKIH COMPUTER CENTER .
Advancements in abstractive text summarization: a deep learning approach
From Curiosity to ROI — Cost-Benefit Analysis of Agentic Automation [3/6]
CRM(Customer Relationship Managmnet) Presentation
Overviiew on Intellectual property right
Blending method and technology for hydrogen.pptx
Report in SIP_Distance_Learning_Technology_Impact.pptx
Peak of Data & AI Encore: Scalable Design & Infrastructure
Ebook - The Future of AI A Comprehensive Guide.pdf
Domain-specific knowledge and context in large language models: challenges, c...
State of AI in Business 2025 - MIT NANDA
ment.tech-How to Develop an AI Agent Healthcare App like Sully AI (1).pdf
TrustArc Webinar - Data Minimization in Practice_ Reducing Risk, Enhancing Co...
Introduction-to-Artificial-Intelligence (1).pptx
The Digital Engine Room: Unlocking APAC’s Economic and Digital Potential thro...
1_Keynote_Breaking Barriers_한계를 넘어서_Charith Mendis.pdf
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
Altius execution marketplace concept.pdf
eBook Outline_ AI in Cybersecurity – The Future of Digital Defense.pdf

What is open source?

  • 1. What is open source? Dept. of Electrical Engineering and Computer Science Academic Year 2011-2012
  • 2. What is open source? • It is not about software. • It is the process by which software is created. • Software is the artifact of applying the process.
  • 3. In order to understand open source, we need answers to: • Who are the people who write open source code? • What do these people do, exactly? • How do they collaborate with each other? • How do they resolve disagreements and deal with conflict?
  • 4. The Software “Problem” • This is a hard problem because: • An auto engineer can envision with great accuracy how and in what conditions a car will be driven. • A software engineer cannot envision so freely. A piece of software can be used in radically different ways, hardening any assumptions to be made during the design process.
  • 5. The Software “Problem” • The essence of software design, like the writing of poetry, is a creative process.
  • 6. The Software “Problem” • Place a young eccentric in an isolated basement room with a computer and lots of coffee, and let write software until the point of exhaustion? • How about an OS that contains millions of lines of code?
  • 7. The Software “Problem” • We need division of labor. How do we divide?
  • 8. The Software “Problem” • First, the problem solution needs to be conceptually architected. • A small architecture team needs to consist of resonant minds: This is essential for “Conceptual integrity”.
  • 9. The Software “Problem” • Architecture by Master Architect. • Produces a master plan. • Dictates division of labor. • Implementation. Sub-architect, Engineers. • Produces a sub-master plan. • Develops each independent component.
  • 10. The Software “Problem” • Brooks’s Law: Adding more manpower to a software project that is behind schedule will put the project even far behind.
  • 11. The Software “Problem” • Brooks says that as the number of programmers increase, the possibility of failure scales quadratically. because the number of communication paths increases at this rate. • We know the software problem is a rather difficult one, how does open source can help?
  • 12. Open source process • The key element of the process is volunteering. • voluntary participation. • voluntary selection of tasks. • anyone can join an open source project. • anyone can leave at any time. • each person is free to choose what he wishes to work on or to contribute.
  • 13. Open source process • There is a core code base. And it is available freely. • Anyone can obtain and modify. • From this point on, licensing makes a difference. • BSD license: minimally constraining, e.g., creating a proprietary product. • GPL license: more constraining, e.g., you cannot create a proprietary product and hide the source code.
  • 14. Open source process • Coding practices • In a typical BSD style process, a small and a core team of developers write most of the code. Source code is freely available for anyone. • In a Linux style process, there is no distinction. There is an army of developers, and they can work on any piece and submit changes. However such changes are evaluated through a methodical process. • In a Linux style process, the norm is to be extremely vocal, and be not afraid of what others might say.
  • 15. Open source process • What happens when your patch gets rejected? • You can take the source code, add your patch, and branch out, create a new fork. • Everyone has this right.
  • 16. Open source process • The fundamental question is: • why would someone contribute time and effort to write code that they do not copyright and for which they will not be directly compensated for? • this is not a matter of having the right people on board, or the number of people on board. it is the organizational nature of the underlying process itself that drives the success.
  • 17. Open source process • Who participates in the process? • a high school student writing patches, you who is willing to contribute to an existing open source community, ..., so who? • SourceForge: As of Sept 2003, ~67K projects, ~600K active users. • Counter.li.org counts the number of active Linux users: guesstimate is ~18M as of May 2003.
  • 18. Open source process • Who participates in the process? • Studies have shown that Linux contributors are geographically dispersed, and notably international, and large in number. • Linux version 1.0 had 78 individual developers, and 12 countries.
  • 21. Open source process • 10% of the developers are credited with about 72% of the code. • Top 10 individuals are responsible for 20% of the total code. • Contributions to Linux, Gnome etc. conform to this pattern.
  • 22. Open source process • What do they do? • Make it interesting and make sure it happens. • Open Source developers look for opportunities to create new and exciting functions or do hard things in an elegant way. • The number of volunteers is huge, and they have different interests and expertise.
  • 23. Open source process • What do they do? • Volunteers create cool stuff, but it is cooler if others say so, it is even cooler. • Project leaders need to create opportunities for growth, intellectual satisfaction, and the likes.
  • 24. Open source process • What do they do? • Scratch an itch.
  • 25. Open source process • What do they do? • Minimize how many times you have to reinvent the wheel. • A good programmer is “lazy like a fox”. • It is so hard and time consuming to write good code, the lazy fox is always searching for efficiencies.
  • 26. Open source process • What do they do? • Minimize how many times you have to reinvent the wheel. • Code moves freely without any boundaries. • There is no vendor lock-in problem.
  • 27. Open source process • What do they do? • Solve problems through parallel work processes whenever possible. • Traditional approach is Engineering. The architect sketches the course to take towards a solution. • Open source relies on Evolution where many people are trying to come up with a solution while lacking a central authority dictating which way to go.
  • 28. Open source process • What do they do? • Leverage the law of large numbers. • Traditional software: Field testing is tricky. Buggy code can be tested by users on beta versions. But buggy product may hurt the brand. • Open source software is always in beta stage. A bug is not a problem, but rather it is a challenge to take on.
  • 29. Open source process • What do they do? • Document what you do. • In a traditional environment, documentation has less importance. Knowledge transfers through other channels. • However, in open source, documentation is king! • Documentation in open source is a means of transferring what the author knows across time as well as space.
  • 30. Open source process • What do they do? • Document what you do. • Writing code that is easier to document. That should be the philosophy.
  • 31. Open source process • What do they do? • Release early and release often.
  • 32. Open source process • What do they do? • Talk a lot. • Open source developers love to talk about what it is they are doing and why. • In 1992, Linus Torvalds wrote to Andrew Tanenbaum: “Linux still beats the pants off Minix in almost all areas.. your job is being a professor and a researcher, that is one hell of a good excuse for some of the brain-damages of Minix.”

Editor's Notes