The business case for contributing code
Upcoming SlideShare
Loading in...5
×
 

The business case for contributing code

on

  • 417 views

In the Drupal community we tend to talk about committing code to our public spaces (drupal.org, but also github) in terms of "contributing" and "contributions", and while much of it can be seen in ...

In the Drupal community we tend to talk about committing code to our public spaces (drupal.org, but also github) in terms of "contributing" and "contributions", and while much of it can be seen in that light, there are actually very strong business reasons for publishing your code and/or attempting to get your code changes committed to the open source project that you are working on.

We will be looking at several documents from the U.S. Military detailing their recommendations for contracting Open Source Software services, and will use those as a jumping off point to discuss the many benefits of contributing code. Some of the business reasons for public publishing we'll explore will include:
* The power of peer review. With enough eyes, all bugs are shallow, and with only a few eyes the stupidity knows no depths!
* Fork you! The costs associated with "hacking" both Drupal core and contrib modules and base themes.
* Take my code, please! Cost savings from committing patches.
* Professionals publish or perish. Using code commits as marketing towards clients or potential hires.
* It's so easy, even a child(ish person) could do it! How you can easily integrate patching into your development workflow.

This session will also include a walk through of how Zivtech handles code review, patches, and deployment processes and you will hopefully walk away convinced that all of your in-house and out-sourced developers should be publicly committing their work.

Statistics

Views

Total Views
417
Views on SlideShare
417
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

The business case for contributing code The business case for contributing code Presentation Transcript

  • The Business Case for Contributing Code Alex Urevick-Ackelsberg
  • The Business Case for Contributing Code Alex Urevick-Ackelsberg
  • About Us
  • About Us• Zivtech = 4+ years old, 20+ employees
  • About Us• Zivtech = 4+ years old, 20+ employees• Alex UA
  • About Us• Zivtech = 4+ years old, 20+ employees• Alex UA • Co-founder, CEO
  • About Us• Zivtech = 4+ years old, 20+ employees• Alex UA • Co-founder, CEO • Professional Troublemaker
  • About Us• Zivtech = 4+ years old, 20+ employees• Alex UA • Co-founder, CEO • Professional Troublemaker • Hat enthusiast
  • The Problem
  • The Problem• Wide spread confusion as to the nature of Open Source Software
  • The Problem• Wide spread confusion as to the nature of Open Source Software • Requires a different mind set for development: partially public development.
  • The Problem• Wide spread confusion as to the nature of Open Source Software • Requires a different mind set for development: partially public development.• Publicly committing code is talked about talked as strictly an altruistic activity
  • OSS goes toWashington
  • OSS goes to WashingtonClarifying Guidance Regarding Open Source Software (OSS) - bit.ly/ dod-ossh
  • What makes it OSS- ome?
  • What makes it OSS- ome?• Broad peer review = more secure & better quality code.
  • What makes it OSS- ome?• Broad peer review = more secure & better quality code.• Flexibility over time- the world changes & you must too.
  • What makes it OSS- ome?• Broad peer review = more secure & better quality code.• Flexibility over time- the world changes & you must too.• No vendor lock-in.
  • What makes it OSS- ome?• Broad peer review = more secure & better quality code.• Flexibility over time- the world changes & you must too.• No vendor lock-in.• No restrictions on users of OSS.
  • What makes it OSS- ome?
  • What makes it OSS- ome?• No per-seat licenses = scalable usage
  • What makes it OSS- ome?• No per-seat licenses = scalable usage• Shared maintenance = lower TCO
  • What makes it OSS- ome?• No per-seat licenses = scalable usage• Shared maintenance = lower TCO• Iteration & Experimentation
  • What makes it OSS- ome?• No per-seat licenses = scalable usage• Shared maintenance = lower TCO• Iteration & Experimentation• Ability to vet developers
  • One is the loneliest number
  • Don’t Hack What?
  • Don’t Hack What?• Drupal Core
  • Don’t Hack What?• Drupal Core• Contrib Modules
  • Don’t Hack What?• Drupal Core• Contrib Modules • ~16,700
  • Don’t Hack What?• Drupal Core• Contrib Modules • ~16,700• Custom Modules
  • Don’t Hack What?• Drupal Core• Contrib Modules • ~16,700• Custom Modules • Site-specific code
  • Hook everything, hack nothing!
  • Hook everything, hack nothing! • Contrib made possible by Drupal’s hook system
  • Hook everything, hack nothing! • Contrib made possible by Drupal’s hook system • Source of Drupal’s flexibility
  • Hook everything, hack nothing! • Contrib made possible by Drupal’s hook system • Source of Drupal’s flexibility • Functionality should be alterable from another module
  • Hook everything, hack nothing! • Contrib made possible by Drupal’s hook system • Source of Drupal’s flexibility • Functionality should be alterable from another module • This a bug, not a feature
  • Why not hack?
  • Why not hack?• Lose many of the major benefits of working with OSS
  • Flexibility & Scalability
  • Flexibility & Scalability• Can’t take advantage of improvements
  • Flexibility & Scalability• Can’t take advantage of improvements• Can’t interact with other modules
  • Flexibility & Scalability• Can’t take advantage of improvements• Can’t interact with other modules• Can’t use common scaling techniques
  • Long Term Costs
  • Long Term Costs• You broke it, you own it
  • Long Term Costs• You broke it, you own it• Not able to share costs
  • Long Term Costs• You broke it, you own it• Not able to share costs• Nobody will contribute to your private fork
  • Support & Vendor Lock In
  • Support & Vendor Lock In• Good shops won’t work with hacked code, & neither should you
  • Support & Vendor Lock In• Good shops won’t work with hacked code, & neither should you• Either get stuck with hackers or will have to pay to replace hacks
  • Quality Assurance
  • Quality Assurance• With enough eyes, all bugs are shallow
  • Quality Assurance• With enough eyes, all bugs are shallow• Peer review increases quality
  • Quality Assurance• With enough eyes, all bugs are shallow• Peer review increases quality• QA is a process
  • Quality Assurance• With enough eyes, all bugs are shallow• Peer review increases quality• QA is a process • internal reviews
  • Quality Assurance• With enough eyes, all bugs are shallow• Peer review increases quality• QA is a process • internal reviews • publish to d.o. issue queues
  • Security
  • Security• Doesn’t fall under community security processes / authorities
  • Security• Doesn’t fall under community security processes / authorities• Can’t easily apply security patches
  • Security• Doesn’t fall under community security processes / authorities• Can’t easily apply security patches• Lose “enough” eyes
  • Moar Benefitz Plz!
  • Moar Benefitz Plz!• Trial by fire training
  • Moar Benefitz Plz!• Trial by fire training• Community training
  • Moar Benefitz Plz!• Trial by fire training• Community training• Community recruitment
  • Moar Benefitz Plz!• Trial by fire training• Community training• Community recruitment• Marketing
  • Moar Benefitz Plz!• Trial by fire training• Community training• Community recruitment• Marketing• Employee development
  • Moar Benefitz Plz!• Trial by fire training• Community training• Community recruitment• Marketing• Employee development• Vet your developers & shops!
  • Moar Benefitz Plz!• Trial by fire training• Community training• Community recruitment• Marketing• Employee development• Vet your developers & shops!• Being awesome
  • Module or Patch?
  • Module or Patch?• Maintaining a module is both a personal & business commitment
  • Module or Patch?• Maintaining a module is both a personal & business commitment• Is there a business benefit?
  • Module or Patch?• Maintaining a module is both a personal & business commitment• Is there a business benefit?• Is it an itch you want to scratch?
  • Module or Patch?• Maintaining a module is both a personal & business commitment• Is there a business benefit?• Is it an itch you want to scratch?• If answer to either is no, we patch
  • Best Patch EVAH!!!-2522 lines, +148 lines
  • Will work for pay
  • Will work for pay http://zivte.ch/otddodcio
  • Will work for pay http://zivte.ch/otddodcio
  • Will work for pay
  • Will work for pay• DoD recomendation: Add contractual incentives for getting code committed “up stream” ( )
  • Will work for pay• DoD recomendation: Add contractual incentives for getting code committed “up stream” ( )• We still are asked for the opposite (i.e. to give a client a “break” on our charges if we are allowed to release it)
  • Will work for pay• DoD recomendation: Add contractual incentives for getting code committed “up stream” ( )• We still are asked for the opposite (i.e. to give a client a “break” on our charges if we are allowed to release it)• Ability to freely commit code is a non- negotiable part of contracts
  • Zivtech’s Project & Patching
  • Zivtech’s Project & Patching• Create specs
  • Zivtech’s Project & Patching• Create specs• Architecture plan
  • Zivtech’s Project & Patching• Create specs• Architecture plan• Evaluating landscape & whats available
  • Zivtech’s Project & Patching• Create specs• Architecture plan• Evaluating landscape & whats available• Determine approach
  • Zivtech’s Project & Patching• Create specs• Architecture plan• Evaluating landscape & whats available• Determine approach• Use all community code
  • Zivtech’s Project & Patching• Create specs• Architecture plan• Evaluating landscape & whats available• Determine approach• Use all community code• Create custom module to extend existing contrib modules (preferably)
  • Zivtech’s Project & Patching
  • Zivtech’s Project & Patching• Patch existing modules
  • Zivtech’s Project & Patching• Patch existing modules• Tracking the change and posting to d.o
  • Zivtech’s Project & Patching• Patch existing modules• Tracking the change and posting to d.o • Add to patches folder - deployed automatically
  • Zivtech’s Project & Patching• Patch existing modules• Tracking the change and posting to d.o • Add to patches folder - deployed automatically• Code and resolve issue
  • Zivtech’s Project & Patching• Patch existing modules• Tracking the change and posting to d.o • Add to patches folder - deployed automatically• Code and resolve issue• Review and iterate