A blog about Open Source, my work at the Gates Foundation and those I am fortunate enough to collaborate with
You can scroll the shelf using ← and → keys
You can scroll the shelf using ← and → keys
While at Oscon Danese Cooper and Brian Behlendorf kindly invited me to sit in on discussion of a new initiative that Jim Fruchterman, Gerardo Capiel and the team at Benetech are cooking up to mobilize OS developer talent against the societal issues we face in areas like Human Rights, Healthcare, and Education. I was very glad that I did and I am hoping you can contribute to my thinking about how we at the Foundation can help this very worthy initiative.
Gerardo is Benetech’s VP of Engineering. He’s motivated, passionate for the cause, and a marvellous bloke to hang out with. In 30 minutes I was given 3 demos, the history of Benetech, and a nagging sense that if we could find some excuse to pair Benetech’s savvy with Gates resources then crazy good things might result.
Gerardo led off the discussion by painting a pretty compelling picture: Foundations and other NGO’s could publish issues in need of developer talent. In return, developers would have access to new opportunities to diversify their programming skills and build profile through contribution to critical issues. What would make this different from Guru.com or similar source exchanges is the ability of the venture to leverage its brand in order to present meaningfully curated opportunities to the community, rather than just random job posts. Second, Benetech would leverage its network to pair up sometime significant Foundation resources against shards of developer time that are going to start to emerge as a result of the new paid time off (‘PTO’) policies being instituted at place in the Valley like VMWare.
From my own experience I am somewhat familiar with the messy and frankly limited-value experience developers risk getting from donating time to non-profit software projects. In my case I acquired it at MSFT while organizing a skunk works OS project housed in Codeplex which was aimed at producing a lightweight SMS-based reporting app for health extension workers in Ghana. It was sort of like how I imagine sport sex to be: anonymous, casual and in the end, naggingly unfulfilling. Everyone exited the project unsure of their ultimate contribution and wanting to feel better about it than they actually did.
This is where a group like the Gates Foundation could bring resources to bear on behalf of Coding4Good and raise the quality of the developer experience while contributing to the likelihood of sustainability for the venture. I wanted to give you a sense of where I think a Foundation could contribute (with thanks to Theo Schlossnagle for validating some of these points during the discussion):
Leverage the Foundation’s megaphone on behalf of the developer community – getting the word out and sustaining it can be an expensive proposition these days. Foundations will have resources for the community to use on its own behalf
Budget for the time volunteers will need to ramp -It’s notoriously hard to get a resource spun up in a timely fashion. Providing a developer with context for why their contribution is needed (and valued) can make the difference between the project enjoying the efforts of a committed and motivated developer versus a work-for-hire mechanicalturk
There is no substitute for a full time PM/ScrumMaster – I learnt this first-hand. Consultant or part time won’t wash. Experienced PMs are hugely valuable (and a frustratingly scarce commodity in today’s overheated Valley environment) Foundations can often dig deeper than non-profits to secure and retain the right PM talent for the duration of a full release or sprint sequence. Khan Academy recently demonstrated this fact hiring away the amazingly talented John Resig from Mozilla (Footnote: I do worry about sustainability of Khan’s hiring approach. With the perks starting to fly around the Valley, Khan’s hiring halo will begin to wear off and they need to plan and budget accordingly.)
There is no substitute for a full time UX either! – One of the first casualties of almost all development processes is the UX. It’s a real discipline and so often falls victim to other priorities or the tyranny of budget and “deliverables” (this is why I LOVE UX and Agile development process and why I advocate for it at the Foundation!) 1 UX + a strong PM can equate in many instances to a more traditionally staffed development cycle if it is tightly coupled to developers
Federate but know where to tightly couple – and in those instances where you need to tightly couple, marry your PTO resources with the necessary resources and a sequence of clearly delineated sprints
Let developers stay in touch with the code and see the impact of their contribution – this is where thoughtful use of control systems like Subversion can make or break a collaboration. Foundations will have little to no idea of how to manage a community and its contributions. Benetech – and talented souls like Gerardo – will
Please ping me with any refinements to the list above. I hope to have Jim and Gerardo up to Seattle to discuss a collaboration around their new venture and would appreciate any thoughts you might have on how Gates could contribute to a meaningful developer experience coding4good.