Jacob Kaplan-Moss, Django Co-Creator, Talks Ecosystems at Heroku's Waza
blog.heroku.com
blog.heroku.com
Some great points:
• Prefer extensibility over scratching your own itch -
Rather than creating a new feature in the core of your project, and making a decision on behalf of your users, create an API that allows your users to do "whatever". That way, not only can you scratch your own itch by using your API to build your feature, others using your product are empowered to use their own imagination to do interesting things with your product.
• Keep the core of your project stable -
Stable APIs and standards allow your community to build things that work together. "Interoperability only works when the common parts [of your product] don't change ... Every time your break something core to your platform...that your ecosystem depends on, you leave a portion of your users behind." (Definitely timely with what we're seeing with Twitter.)
• Encourage participants in your project -
The lower the barrier to entry for participation in your project, the broader the pool of people who can add value to it. Every step that you force your users to take before they can participate, you increase the likelihood that they stop using your product. Great documentation, and transparency in the process of participation helps your users become contributors.