OPEN SOURCE

OPEN SOURCE
9 September 2016
Karl Brown
1
2
FREE AND OPEN SOURCE SOFTWARE (FOSS)
• What is open source?
• Licensing
• Benefits of FOSS
• Challenges of FOSS
WHAT IS OPEN SOURCE?
3
4
Open source is software that can be freely
accessed, used, changed, and shared (in
modified or unmodified form) by anyone.
These rights are granted via a license.
An open source license gives some of your
rights to the users of your software, while
maintaining certain obligations to those
who modify or redistribute it
5
6
Pumpkin Spice Bread
printed from veronicascornucopia.com
1 cup (8 1/4 oz) canned pumpkin*
1 1/2 cups (10 1/2 oz) granulated sugar
1/2 cup (4 1/8 oz) vegetable oil
1/2 cup (4 oz) water
2 large eggs
1 3/4 cups (7 1/2 oz) all-purpose flour
1 teaspoon baking soda
1 teaspoon cinnamon
1/2 teaspoon salt
1/2 teaspoon baking powder
1/4 teaspoon nutmeg
1/4 teaspoon ground cloves
Copyright © 2016 Veronica
Pumpkin Spice Bread
printed from veronicascornucopia.com
1 cup (8 1/4 oz) canned pumpkin*
1 1/2 cups (10 1/2 oz) granulated sugar
1/2 cup (4 1/8 oz) vegetable oil
1/2 cup (4 oz) water
2 large eggs
1 3/4 cups (7 1/2 oz) all-purpose flour
1 teaspoon baking soda
1 teaspoon cinnamon
1/2 teaspoon salt
1/2 teaspoon baking powder
1/4 teaspoon nutmeg
1/4 teaspoon ground cloves
Permission is hereby granted, free of charge, to any
person obtaining a copy of this recipe to use this
recipe without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies,
and to permit persons to whom the recipe is
furnished to do so, subject to the following
conditions:
The above copyright notice and this permission
notice shall be included in all copies or substantial
portions of the Software.
7
8
Open source licenses give you the rights to:
1) Use the program however you wish
2) Study the program and modify for your own needs
(requires access to source code)
3) Redistribute the program to anyone
4) Redistribute your modified version to anyone
They oblige you to
1) Redistribute under the same terms
2) (Sometimes) If you make changes and publish the
result, release them under the same terms
9
DIFFERENT LICENSES, DIFFERENT OBLIGATIONS
10
OPEN SOURCE ISN’T “FREE”
Support, maintenance, hosting, customization, configuration,
hardware, extensions, infrastructure licenses, networking…
You can even charge a fee for access to the software! (But,
anyone who receives it can then redistribute it without charge)
11
CHALLENGES OF FOSS
• Support and maintenance
• How to fund ongoing product development
• Building/sustaining a community
12
BENEFITS OF FOSS
• Networked innovation
• Features created for Kenya can be used in Pakistan
• Developers from Vietnam can learn from those in Haiti
• Reduce development friction
• No need to negotiate license terms
• Visibility of code allows developers to debug without outside help
• Avoid vendor lock-in
• If the vendor fails to deliver, hire someone else
• Lower total cost of ownership (TCO)
• Sometimes true – but not always!
• Capacity building
• Access to and ability to change source code helps build local development
capacity and feeling of ownership
• Recombining open source components into new products
• This is much harder to do with proprietary software
13
THOUGHTWORKS & OPEN SOURCE
ThoughtWorks has created and contributed a number of
open source products and tools in health, including:
• Bahmni – complete hospital information system
• OpenMRS - EMR
• OpenLMIS - logistics management information system
• DHIS2 - District health information system
• RapidFTR - Mobile app for tracking of children in
emergencies
• SharedHealth – national-level health information
exchange
FINAL THOUGHTS
• Need strong core product management and vision,
focused engagement with community
• Write/blog/tweet/network/talk about it
• Being open and honest and welcoming is key…
• Open source puts power in the hands of the users
and developers
• Be responsive to their needs
14
FURTHER READING
• The Success of Open Source – Steven Weber
• Producing Open Source Software – Karl Fogel –
http://producingoss.com/
• Open Advice http://open-advice.org/
15
THANK YOU
[email protected]
16
17
GOVERNANCE
• Who decides what goes into the product
• Perhaps the hardest, most important part to get
right
• Outside of making a great product!
• Many possible models
• Benevolent dictator vs. committee vs.
meritocracy
• Diff. governance structures for diff. institutional
arrangements
• Example: Linux vs Apache
FORKS
• Forking & governance
• Short-lived forks vs. community-splitting forks
• Example: Jenkins vs. Hudson
• Threat of a fork to force compromise
18
COMMUNITY TIPS 1
• Openness is KEY
• Hire a community manager –have them spend time with devs
• Involve the team in running demos / online sessions /
answering questions
• People doing product support should also answer questions
online
• Make the install experience seamless for newbies.
• Use videos to educate
• Maintain list of "spikes” low priority, easy to understand,
domain light, but medium / high impact for product, for
community contributions.
19
COMMUNITY TIPS 2
• Create processes that are (and also appear) "fair and open", or
people/other institutions won't want to participate.
• Remote/distributed/asynchronous development needs to be a
first-class citizen.
• Processes and conventions must be written down publicly • ("if it's not on the wiki, it doesn't exist")
• Be responsive to pull requests
• Be welcoming to new members / early adopters
• Shift team to “open” communication methods
20
TECHNOLOGY
• Stacks
• Operating system
• Database
• Webserver / appserver
• Language
• Tools / IDE
• Libraries
• Ideal situation: Full FOSS stack supported, as well as potentially some
proprietary databases
• Proprietary infrastructure requirements can turn off developers –
especially if they have to pay license fees to develop against it…
• Use containerization to make setup rapid & easy
• Consider: developer skills, other tools in ecosystem
21
LICENSING
• Free software vs copyleft vs. open source
• License considerations
• Patent protection
• Commercial-friendliness?
• “Viral” / Copyleft licenses
• Distribution of code, or derivatives, must
be released under the same terms
• Also consider proprietary
extensions/modules – permitted?
22
INFRASTRUCTURE
• Source control
• Many FOSS projects use Github
• When making open – ensure:
• No secrets
• No proprietary tools/controls/extensions
• Continuous integration – automatically build and test on every commit
• Test coverage
• CI ensures you detect issues quickly
• Packaging / release management
• Chat
• Wiki / documentation
• Issues tracking
• Mailing list
23