Social Sourcing: The story of GetPaid, ideas for
organizing software projects
Christopher JohnsonifPeople | www.ifpeople.net
Plone Symposium 2008New Orleans, LA
June 3, 2008
Outline
● Who, What, Why? ● What is Social Sourcing?● Why is it important for Free Software?● The Story of GetPaid & Social Sourcing● Implications for Plone
Who am I?
What is GetPaid?
● eCommerce in Plone built on Zope3– credit card processing
– order management
– shipping, fulfillment, inventory management
– 2 releases; 10,600+ lines of code
● Community– 105 members on mailing list
– 34 contributors (15+ in 2008)
Why am I here?
● Voice for non-developers!● Make Plone better: software, community,
marketing● Get feedback and ideas (time for another
round of social sourcing for GetPaid!)
What is Social Sourcing?
Def 1: Open Source Software for Civil Society Organizations (ie NGO/non-
profit)
What is Social Sourcing?
Def. 2: A project organizing approach that gets diverse stakeholders to participate to the software making process, focusing on the value of
product.
Similar Process: Charrette
● Charrettes bring together people from multiple perspectives at the design stage for an intense collaboration. – Root: French for “cart”
– More than just “crunch time”, it is also core to an Integrated Design Process
Charrette
● Key: collaborative decision making in design
Data Center Charrette
● People from hardware, software, security, energy, real estate and more– Resulting design:
● 89% energy use reduction ● Equivalent computing power● Increased reliability
– See rmi.org
Why is this relevant?● Open Source Software projects are
driven by developers
==> Many projects naturally use agile processes (sprints, pairing)
==> Developers, like architects, often reticent to get “human” input
==> Difficult for non-developers to participate in shaping outcome
Why is this relevant?
● Diverse perspectives enrich the product
==> Expectations from client clarified upfront
==> Opportunities and constraints explored fully
Why is this relevant?
● The quality of the process determines the quality of the outcome
==> How you get it done determines what you get done
==> Position product to have a strong community
● Plone:– Flexible + very useful out of the box
● 2006 PloneConf ecommerce BOF– Conclusion: Need state of the art payment
processing framework
● To action! But...– /me was new to community, not a developer, and
with no ecommerce software experience...but loves problem solving!
– “Social sourcing” helped to be transparent, inclusive, and improve the product.
● <DOCTYPE FREESOFTWARE PUBLIC...><div id=”entrepreneur”> ...don't be afraid!
Social Source v1.0 Alpha●
– Study the market (benchmark)
– Put together a compelling plan
– Recruit the right people
– Engage a wide base in refining requirements
– Ask for money
– Celebrate successes
– Sustain it: fun, organization, motivation
– Regroup, review, and restart...
● Step 1: Get oriented– What is already out there?
– What do we know about those things?
– Why do we need something else?
● Result: – Reference on Plone Commerce:
http://plonegetpaid.com/why/plone-commerce-background
– Need for the product: http://plonegetpaid.com/why/need-for-this-product
● Step 2: Make a plan– What should we do?
– How can we do it?
– Who does it benefit and how?
– Make it pretty to look at...
● Results: – Goal for GetPaid M1: Donation handling
– Sponsorship plan: www.plonegetpaid.com/sponsor
● Step 3: Recruit leaders and participants– The project needs a qualified “sheperd”
– Variety of expertise are needed
● Result: – Lead architect: Kapil Thangavelu
– Organizer: Christopher Johnson
– NGO Liason: Jon Stahl
– Several more have stepped up!
– Developers and UI: various (see Credits)
● Step 4: Refine the requirements (participative)– Get input of users, developers, user interface
experts, consultants/supporters
● Results: – Architecture outline
– User stories
– Estimates and plan
● Step 5: Ask for money!– If you don't ask, you won't get it...
– Tips for asking: ● Connect needs with value● Be transparent● Be patient and persistent
● Result: – Raised over US$12,000 for first release
– Contributions page
● Step 5: Don't forget...– Be accountable and transparent
● Step 6: Celebrate successes!– Reward and recognize people and their
contributions● Deployments, releases, fixes
– Communication is important!
● Results:– Blog, mailing list
– Celebrations...
● Ongoing: – Make it fun!
– Keep it organized!
– Keep people motivated!
● Results: – 4 Sprints (UNC, Google, Argentina, Naples)
– Google Code (wiki, issues, code)
– Blog, mailing lists, channel (#getpaid)
Social Source v1.0 Alpha●
– Study the market (benchmark)
– Put together a compelling plan
– Recruit the right people
– Engage a wide base in refining requirements
– Ask for money
– Celebrate successes
– Sustain it: fun, organization, motivation
– Regroup, review, and restart...
What next?
● Time for a new round of social sourcing for GetPaid!
● Encourage flow back into product of customizations and extensions
● Capture feedback from users, developers to improve project
● Need technical leaders in various areas
Implications for Plone?
● Plone is great!● Lots of work heading into the future...but
towards what?– Perhaps Plone could benefit from process
improvements that would: ● Clarify direction and identity● Provide more inclusive design process● Improve the overall product ● Strengthen Plone community
Plone Creation Process
● Overall vision:– Open process associated with vision?
● How can users be more involved?
– Place to document it?
● Features: – PLIPs process determines features...but you
have to be a “core developer” to make a PLIP● Something before PLIPs but more specific than
vision?● Way to involve non-developers?
Getting Involved
● Download it: http://code.google.com/p/getpaid
● GetPaid mailing list: http://groups.google.com/group/getpaid-dev
● IRC: #getpaid● Features, Sponsorship etc:
http://www.plonegetpaid.com
Thank you!
● Special thanks: – Kapil, Perrito, Lucie, Maurits, ChrisW
– OneNW, Contextual Corp, Totsie.com, Trees for Life
● Contact info: – Christopher Johnson
– cjj (at) ifpeople.net
– www.ifpeople.net
– irc: cjj
Top Related