Open Source

Software in which source code is publicly available, that can be used, enhanced, modified and shared under specific conditions.
What
A mindset
A development methodology
What's useful to me might be useful to others.
Unless something has to be private, it ought to be public.
User-centric: put efforts where users are, build what is most needed.
A rule of thumb
Who
Maintainers
Contributors
Users
investment



















Building the right software right is a complicated endeavor, so it's better done together.
Why
- A proven collaborative methodology to build better software.
- A requirement of auditability and transparency.
- A fertile ground for innovation in the software industry.
- An assurance for longevity and immortality of software .
- A driving marketing factor to attract talents.
- An alignment of ethos and values.
How
Solve (useful) problems, and listen.
Rinse and repeat

Identify a problem
Find or build
a (good) solution
Help others
finding and using it
Listen to and
incorporate feedback

Myths & legends
Myths

If we go Open Source, people will maintain the project for us through contributions.
Myths

Open Source isn't suitable for enterprise businesses because it lacks support and code quality is too low.
Myths

Because it's free, Open Source only costs money and cannot generate revenue.
Myths

Open Source means open governance: anyone can contribute and all ideas are always accepted.
Myths

If I use an Open Source projects, I am at the mercy of the maintainers and have to wait after them constantly.
Case Study



Make sources public
All source code is publicly available under open source licenses. Not only for the compiler, but for the entire ecosystem of projects.




Develop in the open
Feature changes are brought to life on public forums. Reviews, feedback and next steps are openly discussed.

Foster inclusive processes



There's no private component to our development process. Anyone can follow what is happening, how and when.
Document everything

We strive to keep the entire project documented, from installation instructions to API reference, including details about maintainers and processes.



Practice
Theory
Understand
Use
TUTORIALS
HOW-TO GUIDES
EXPLANATIONS
REFERENCE
discovery-oriented
understanding-oriented
goal-oriented
information-oriented
WHERE
HOW
WHY
WHAT
( about documentation ... )

Talk to people




We keep communication with our community frequent and transparent. Announcing changes, seeking feedback, etc..



Provide support
Documentation only gets you so far. People often needs assistance and it's also a great way to identify gaps in documentation.

Release frequently
Avoid 'big-bang' releases as much as possible, ship code often and in small chunks. Keep expectations low.



Provide clear governance
How decisions are taken should be clearly specified. Dictatorship and do-ocracy often rules in Open Source lands.


Axioms
There's no such thing as a free lunch.
Comprehension is measured by the lack of questions.
It’s okay to be disappointed but never okay to be surprised.
Constructive discussion is about mutual understanding, rather than mutual agreement.
If it's not documented, it doesn't exist.
Yet another introduction to Open Source
By Matthias Benkort
Yet another introduction to Open Source
- 115