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

How to have an Open Relationship... with software

99cbaa0c409f353fd2b23bb8cfdee513?s=47 jacobsingh
November 13, 2011

How to have an Open Relationship... with software

You love Drupal. You love Linux. You have a pet penguin and you recompile your kernel daily. So what, at the end of the day, you've got to pay your mortgage, and last time I checked, the bank doesn't take patches.

Like many of us, we have to balance the real needs to earning a living and spending time with our families (or going out drinking) with our desire to be contributors in the Drupal community.

I've been a Drupal developer / trainer / manager for 5 years, 4 years as a contributor. I've worked for consulting shops, freelanced, started a business and I now work for the largest Drupal company, Acquia. In all these situations, I've had real deliverables which are always behind schedule and over budget.

In the process, I've learned some simple techniques that allow me to contribute to the community while still meeting the bottom line.

Super powers discussed:
- Architecting your code to make contribution simpler.
- Structuring "community time" for developers
- Networking and building a support coop
- How to talk to your clients about contribution
- Managing version control between Drupal projects, patches and deliverables.
- Integrating contributions into your agile process.

99cbaa0c409f353fd2b23bb8cfdee513?s=128

jacobsingh

November 13, 2011
Tweet

Other Decks in Business

Transcript

  1. WARNING: THE FOLLOWING PRESENTATION CONTAINS OR MAY MAKE REFERENCE TO

    BAD JOKES, EMBARRASSING PICTURES, COMPLETELY FABRICATED DATA, OUTRIGHT LIES AND THE OCCASIONAL 4-LETTER WORD. LIKE “CODE.” YOU HAVE BEEN WARNED.
  2. How  to  have  an  Open  Relationship with  software If you

    are at this conference, contributing is a strategic part of your business. I am here to talk about how to make this strategy effective.
  3. (normal)  Software   relationship

  4. EULA By pressing OK I (USER) grant AppleMicroOracleSoftIncCoLLC (OWNER) the

    exclusive right to charge me stupid amounts of money for software I can probably get for free. I also grant OWNER the exclusive, non-transferable, non- expiring right to all tasty puddings, cakes, beer and any other desirable items residing in said USER’s refrigerator. Further, this license grants OWNER the right to all my toys, current and present, the toys of USER’s children, and anything else USER does not want to share. If USER tried to figure out how OWNER’s software works, or share with a friend, USER will be forced to clean the underarms of pro wrestlers and pop OWNER’s bum pimples from now until eternity. Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah Blah Blah blah blah OK WTF? You fill out one of these, which is basically full of things that you cannot do {SWITCH}
  5. {FORBIDDEN}

  6. Free  software

  7. What  you  can  do

  8. Free  and/or  Open  Source  Software • Use • Learn •

    Change • Share Free  to:
  9. Free  software  is  software  that  gives   you  the  user

     the  freedom  to  share,   study  and  modify  it.  We  call  this  free   software  because  the  user  is  free. -­‐  Free  software  Foundation
  10. Hey  hippie-­‐neck-­‐beard  nerd! How  do  I  get  paid? If  I

     give  everything away  for  free?
  11. Made or make a living (and then some) off of

    OSS
  12. http://www.linuxfordevices.com/c/a/News/Linux-Kernel-Development-report-2010/ Contributors  to  Linux  Kernel Patent Mafia, not exactly altruistic.

  13. It’s  not  altruism!   It  is  strategic! But let’s get

    personal.
  14. My  relationship  with  Drupal   First though, let me tell

    you my story.
  15. 2006:  I  Hated  Drupal * For the record, I had

    this haircut for 6hrs. OOP Python Zope PEAR XML Linux Admin Java XSLT I had been developing prof. for 8 years - used OSS, contributed minimally. Found the gig in the non-profit section Drupal had anti-patterns, bad docs, and people were assholes in IRC. I stuck to CiviCRM, external systems for 1 year. No contributing.
  16. 2007-­‐2008:  Beginnings  of  a  contributor Speced and sold the Amnesty.org

    project, led it. Did sites for lots of cool non-profits wrote my first module (Admin Role). Working on a big project taught me how essential it was to be organized about modifying modules and how contributing provided more value for the customer. Met people.
  17. 2008-­‐2010:  Acquia  Engineering Built out Acquia Search. Built Drupal Gardens,

    got more heavily evolved in the community, core dev, etc. Worked on a product (different from a site, because it sticks around).
  18. • Enterprise  hosting • Support • Consulting • Training •

    Drupalgardens.com • Hiring But first, an obligatory plug
  19. 2011...  The  evangelist * Picture actually from 2009. Only picture

    of me in a suit Going straight. Training, strategic planning w/ organizations Not as much coding
  20. Drupal  and  I: • Development • Consulting • Sales •

    Project  management • Product  development • Training I wanted to figure out where these journeys start from where they go. So I consulted some people I’ve met along the way. Let’s start where the money is
  21. More  importantly

  22. I’ve  made  friends

  23. Two  emails Engineers Sales  and   Management Why  contribute?

  24. Sales  and  Marketing Management Developers

  25. Sales  and  Marketing http://consumerist.com/2007/04/3-confessions-from-a-former-used-car-salesman.html “That’s where the money is” -

    Sutton’s Law {Lasting Value} :15
  26. Typical  lifecycle  of  an  enterprise  website 0k 67k 133k 200k

    Year 1 Year 2 Year 3 Year 4 Year 5 Development License Support 0k 67k 133k 200k Year 1 Year 2 Year 3 Year 4 Year 5 Drupal / OSS CMS Proprietary CMS * Completely made up numbers (like any good analyst) Prop (high license fee, support and consulting trends up, migration expensive) OSS has no license, high consulting cost, support constant or trending down, low migration cost. You can only realize these benefits though, if you contribute.
  27. Total  Cost  of  Ownership Free  ain’t  that  free Requires contribution

    to be actualized. Customers don’t care about Drupal (usually) Not (just) about license cost savings
  28. In  Open  Source,  you  get  a  lot  for  free:  

    updates,  new  features,  bug  fixes. Contributing  our  features  and  fixes   ensures  that  the  client’s  site  will   receive  all  of  these  OSS  benefits  into   the  future. Kelly  Albrecht Founder,  Left  Click
  29. Discounting  for  contrib • Makes  future  maintenance  less  risky •

    Staff  can  more  easily  be  switched  out  a.k.a.  “Bus  factor” • Actually  delivers  more  value  for  your  customer What is a discount? Why is it worth it?
  30. What  about  my   sweet  support   contract?

  31. Locked-­‐in:  No  one  wins By  contributing,  customers  can  leave  you

    But  wait,  they  won’t  anyway  if  you’re  good This sounds silly, but many shops think that by contributing they will free their customers from the bondage of monthly retainers. If that’s your philosophy on why your customers stay... good luck.
  32. Management {Innovation} :25

  33. Helping  people  reach   their  full  potential

  34. Acquia • Mostly  contrib   anyway  in  Gardens • 2

     days  every  3  weeks of  “free”  Drupal  time. Palantir • 2-­‐4hrs  /wk • Special  projects get  treated  like  clients. Developer  contribution  programs
  35. Anytime  you  set  aside  self   enrichment  time  for  your

     team,   you’re  not  only  boosting  morale,  but   you’re  helping  open  opportunities  for   your  team  to  deepen  their  skill  set. Colleen  Carroll   Director  of  People  and  Process,   Palantir 2-4hrs a week for “free” Drupal time Palantir funded modules, like Workbench, get regularly scheduled time.
  36. 20%  time  projects • Imagecache  in  core • translate.drupal.org •

    Update  manager
  37. Sprints  and  joint  initiatives • Software  at  a  fraction  of

     the  cost • Be  seen  as  a  thought  leader • Hiring
  38. Internal  Benefits • Team  gets  to  travel • Huge  learning

     opportunity • Make  partnerships
  39. For  the  past  3  years  over  60%  of  our  

    revenue  comes  from  community efforts  or  referrals  from  other   companies.  If  we  didn't  contribute,   we  wouldn't  get  that. Greg  Knaddison Partner  and  Developer,  Growing   Venture  Solutions
  40. Successful  sprints • Simpletest  (Paris) • Fields  (Boston) • Media

     (Chicago) • drupal.org  upgrade  (Paris,  Germany,  Boston) • Translations  in  D8  (Montreal)
  41. It’s  about  character Community participation is a great way to

    judge ability Connections on d.o. are how the majority of “big shots” got their chance. OSS community events (camps, cons, etc)
  42. It's  a  major  differentiator  for  a  candidate.   First,  it

     shows  they  understand  Drupal.   Second,  it  shows  they  are  motivated  to  do   more  than  just  show  up  and  punch  the   clock.  So  it's  a  character  issue  as  well  as  a   skills  issue.   Evan  Rudowski Co-­‐Founder  and  Director SubHub
  43. Developers {Legitimacy} :35 min

  44. So  how  do  you  contribute  and  still   get  the

     project  in  on  time?
  45. Know  WTF  you  are  doing. Moshe  Weitzman, Director,  Research  and

     Development Acquia But we can get a little more specific than that.
  46. Coding  with  an  intent  to  distribute • Avoid  customer  names

     in  code • Try  to  find  generic  solutions • Don’t  hack  anything!
  47. hook_form_alter()  all  the  way! Wim  Leers, PhD  student  &  Facebook

     intern
  48. If  you  hack,   track,  track,  track.

  49. If  there  is  no  d.o  issue  then  the  patch  

    should  not  be  in  our  repo.  That  way   we  keep  the  spirit  of  the  GPL  going,   even  if  we  know  the  patch  will  never   be  accepted. Mike  Carper Engineer,  datasphere  technologies  
  50. The  Guild  of  Nerds By contributing to other peoples’ projects,

    or providing modules other people use, you enter acircle of trust where they will help you later when you need it.
  51. You  can  lie  on  your  resume,  but  you   can't

     lie  on  your  d.o  profile. Also,  contributing  to  Drupal  helps   build  a  reputation,  both  among   fellow  developers  and  among   companies. Wim  Mostrey, Freelancer For me, when I reach out to a maint I almost always get a response. World is not fair, but through my contribs, I’ve entered the guild so to speak.
  52. Build  Legitimacy   • Establishing  yourself  as  an  expert  is

     easier  in  OSS   communities • Contributing  drives  consulting  opportunities  to  you • Blogging,  do  it  often.    Don’t  by  shy
  53. Contributing  to  the  Drupal  project   has  increased  my  credibility

     as  an   expert-­‐level  Drupal  professional,   which  I  think  or  hope  leads  to  more   clients  deciding  to  hire  me  rather   than  my  competition. Jennifer  Hogdon Documentation  team  lead
  54. ★Innovation  and  inspiration ★Legitimacy  and  Community ★Long  term  value  for

     customers ★Selling  technology ★Managing  coders ★Developing  software {DO IT NOW}
  55. Bye  and  thank  you! Jacob  Singh Dude  on  stage Twitter:

    @JacobSingh