Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Open_sourcing_products___contributing_to_open_s...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →
Avatar for Allan Allan
August 08, 2019

 Open_sourcing_products___contributing_to_open_source-_DroidConKE.pdf

Open-sourcing software products, structures to working with the community of developers and how developers can contribute to open source projects.

Avatar for Allan

Allan

August 08, 2019

Other Decks in Technology

Transcript

  1. OpenSRP • The Open Smart Register Platform Enables frontline health

    workers to provide quality essential health services. • OpenSRP can electronically register, track, and report health indicators for a population. • It is a client management tool backed by a full EMR, a workflow support tool, a project monitoring and performance management tool, and a supply chain management tool. • Designed to be used at both facility and community level from nurse, midwife to CHW.
  2. Open source • Open source software is free to use,

    share, study and modify for any purpose ◦ Free redistribution of source code can allow for modification of derived works • The software is distributed under licenses that comply with the Open Source Definition Most open source projects are free but "free of charge" isn't part of the open source definition
  3. Benefits to open source s/w • Quality products ◦ Transparency

    - Anyone can inspect the source project for errors and inconsistencies. ▪ There are many eyes scrutinizing • Increased adoption rate of the software • Access to funding, grants, other products or services • Revenue
  4. Open sourcing your product Licencing • Licences form a contract

    between creators of software and the persons using the software. • It protects the copyright of software and can restrict how it is used, copied, or installed in one or more devices
  5. Copyright • Protects source code, idea, invention. Software is IP.

    So copyright protects what's the expression of your work. ◦ This means that it protects from someone copying and using it without your permission. • A work is automatically subject to copyright as soon as it is recorded in a tangible form. ◦ You ALREADY have copyright on any original work that you have created
  6. Copyleft • Offers the right to freely use and distribute

    copies of work , including modified versions on condition that the derivative works are bound by the same rights. ◦ Derived works can also be used and distributed freely • Most copyleft licences are open source but not all open source licences are copyleft.
  7. Popular licences • Apache License 2.0 ◦ The Apache license

    says “do whatever you want with this, just don’t sue me” but does so with many more words, which lawyers like because it adds specificity. • GNU General Public License (GPL) ◦ The GPL licenses (GPLv3, GPLv2, LGPL, Affero GPL) all contain some kind of share-alike license. They essentially say “if you make a derivative work of this, and distribute it to others under certain circumstances, then you have to provide the source code under this license.”
  8. Popular licences • MIT license ◦ The MIT, BSD, and

    ISC licenses are “permissive licenses”. They are extremely short and essentially say “do whatever you want with this, just don’t sue me.”
  9. Licencing • A program is open source only if it

    uses appropriate licences. • Some licences allow you to use open source software while keeping modifications closed. E.g. BSD, Apache, MIT • Most licenses come with instructions on how to apply them
  10. Engaging the community • As the maintainer communicate the road

    map, vision, learn to say no, allow others to build solutions they need • Have communication channels ◦ This can include mailing lists, messaging/chat apps e.g. Slack, Telegram e.t.c. ◦ Be responsive • Documentation
  11. Engaging the community • Have quality development processes ◦ Checks

    and standards ◦ Code quality, CI/CD, Test coverage & automated testing • Contribution guidelines ◦ A description of how to participate in your project. May contain how to get in touch, how to suggest new features, report bugs etc
  12. Commerce, monetization... • Support (Fixes or support of older versions)

    • Funding, grants • Commercial features ◦ Paid options and services (dual licencing) • Custom implementation and upgrades • Brand name - Only you can publish the software using the brand name for your project
  13. Learnings • It's critical to have a core business backing

    the open source project with real customers defining requirements • It's important to understand the value this open source project provides to people and the incentives for devs to use your work AND commit back to your project.
  14. Benefits of contributing to open source projects? • Getting paid

    to develop the software • Learning and growth ◦ Grow portfolio/resume/rep - Talk is cheap, show me the code! You could actually make a name for yourself. ◦ Finding mentors and teaching - Building connections • Giving back to the community or working on a cause you believe in • Opportunities from being active in the community
  15. Getting started • Consider the frequency, programming language, type of

    project, Why? (your main goal) • Start small. Pick a good first issue. Try understand the codebase • Reach out to maintainers • Contributions can be code, design, code review, documentation, event planning - workshops and meetups?
  16. Resources Open smart register platform (OpenSRP) http://smartregister.org OpenSRP repo https://github.com/OpenSRP

    Open Source Initiative (OSI) https://opensource.org Open source guide https://opensource.guide/ Android open source project https://source.android.com/