October 10, 2011

Creating a Culture of Contribution

MERGE User Conference

At the Perforce User Conference this year I gave a short talk about three principles that can be useful when creating a culture of contribution.  In this blog, I'll flesh out those principles out more and show how they help companies innovate. First, some background: in 2007 as lead developer on our then-new P4Admin projects, I spotted some challenges. Some of these were:

  • a one-size-fits-all client
  • a long idea-to-market timeframe
  • relatively few people able to directly add functionality

To address those challenges, I wrote a one-page memo outlining the three principles:

1. Widen the Net by creating platforms
2. Gather Community by creating meeting houses
3. Funnel Up to select the best ideas

But the memo went into a file, and other projects intervened. Flash-forward to today and I realized, four years later, that these ideas had subconsciously manifested in the now-successful Perforce JavaScript API and soon-to-be-public Perforce Ecosystem.  Turns out, my three principles were actually in place and working in the real world!

Our JavaScript API widens the net by enabling community-based extensions of the Perforce Visual Tools, P4V and P4Admin, but I digress… Of course, my experience with development at Perforce doesn’t necessarily describe development everywhere.  Is this solution applicable outside the specific challenges I had faced as the P4Admin team lead? Shortly after the conference I came across this video by Gary Hamel (management thinker and author) called “Reinventing the Technology of Human Accomplishment."  Starting at 6:55, Hamel outlines three accomplishments organizations needed in order to over come new, 21st century challenges:

1. Being able to change quickly
2. Innovation becomes the work of everybody
3. People are willing to bring their creative gifts to the company

It occurred to me that the three directives for Creating a Culture of Contribution just might form a recipe to address Hamel’s challenge.  That is,

  • Fast change and innovation comes fromcreating platforms that allow companies to make their products more agile
  • Make innovation the work of everybody througheasy-to-use platforms that  widen the net of contributors
  • Inspire employees to contribute and innovate by gathering community in an internal meeting house

However, there’s a key point that many discussions of innovation (including Hamel's) omit: unchecked innovation can result in chaos, with good ideas getting lost among the bad.  This is where the third directive, Funnel Up, comes into play. It’s vitally important to define a process by which the winning ideas are separated from the also-rans.  It’s understandable that Hamel didn’t address this; it’s an idea so new there isn’t even a good term for it. When a strong idea rises to prominence in the open source software world, what do you call that process?  Is there a term to describe the ascension of MySQL or Linux?  When an answer bubbles to the top at stackoverflow.com, what is that process called?  We are already engaged in this funneling-up process, now we need the language for it… If you’re interested seeing more explanation of Creating a Culture of Contribution, you can see my entire conference talk here. Let me know what you think.