social sourcing as a collaborative design process: story of getpaid (plone symposium nola 2008)
DESCRIPTION
Open Source projects are normally developer-driven and tend to lack ways for non-developers to make meaningful contributions. GetPaid, an ecommerce framework for Plone, was organized with a collaborative design process known as "social sourcing". This talk provides an update on the community organizing, fundraising, and development of GetPaid. Updated and slightly shorter than the Naples version of the talk.TRANSCRIPT
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