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

Myths & The Real World of OpenSource Development

Kartones
November 21, 2014

Myths & The Real World of OpenSource Development

@ Codemotion ES 2014, Madrid

Kartones

November 21, 2014
Tweet

More Decks by Kartones

Other Decks in Programming

Transcript

  1. @Kartones OSS is … • Projects “born” open • Improving

    existing projects • Funding features for projects • Private projects that become open
  2. @Kartones Basic Workflow • DIY – Fork – Clone ->

    Branch -> Pull Request • Ask for it – Maybe is on the roadmap… – Maybe can be added… • But a request is not a mandate
  3. @Kartones Is CartoDB opensource? • Github.com/CartoDB • Around 95% of

    the code is opensource – Minus: • Account provisioning • Billing • Systems & deploy scripts • Internal wikis & docs.
  4. @Kartones Is CartoDB opensource? • Mostly based on OSS stack

    – Ruby – PostgreSQL + PostGIS – GDAL – Node.JS – Redis – Monit – Ganglia – Graphite + Graphana – Chef – ElasticSearch + Kibana – Nginx – Varnish
  5. @Kartones Tools • Dogfooding – Geocoding • Internal geocoders data

    • Geocoding cache – Basemaps – Common Data – Metrics
  6. @Kartones Tools • CI – ClinkerHQ (paid) – In the

    past • Travis-CI (free + paid) • Local Jenkins (free)
  7. @Kartones Tools • IDEs – Vim (free) – Emacs (free)

    – Sublime Text (free + paid) – RubyMine/IntelliJ/Jetbrains-product-X (paid)
  8. @Kartones Tools • You usually need to pay for: –

    Hosting – CDN – Mailing – Billing system
  9. @Kartones OSS Requires Time & Effort • Developing – Code

    reviews – Backwards compatibility – Extra documentation for devs – Sample configuration – Whatever you publish, you should maintain
  10. @Kartones OSS Requires Time & Effort • Coding conventions –

    Structure, naming … -> Coding standard – Source folders structure – Search for ideas but adapt to your needs
  11. @Kartones OSS Requires Time & Effort • Testing conventions –

    HOW-TOs – Avoiding more complexity due to test env. – Testeable code – Balancing testeability vs craftmanship madness
  12. @Kartones OSS Requires Time & Effort • Versioning conventions –

    Basically, follow semver.org (x.y.z) – Break rules if makes sense • Some OSS projects are not good guides
  13. @Kartones OSS Requires Time & Effort • Documentation conventions –

    README – NEWS – UPGRADE – TESTING – CONTRIBUTING – LICENSE • + Web-based doc, examples, API doc…
  14. @Kartones It has nice bonuses • Source code = no

    secrets • Recruitment & Ambassadors • Community & public exposure • Some segments prefer opensource
  15. @Kartones But there are no unicorns • OSS doesn’t means:

    – Faster – Bug-free – Easier – Well documented
  16. @Kartones We’re far away from perfection • Transparent ticketing is

    recent • Community is slim (many stars, few PRs) • Documentation not yet finished • PR require approval of employees • Product decisions not democratized • Public channels not (yet) taken enough care of • We don’t contribute back enough
  17. @Kartones But we’re on a good path • We fund

    some GDAL changes • We report bugfixes on OSS, and fix a few ones • We sell online services, not licenses (SaaS) • We go fast: Continuous delivery (daily releases) • Community before sales • Investors don’t care as long as we’re successful