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
© Copyright 2026 Paperzz