The business behind open source
Graham Weldon• PHP developer, 10 years
• Once-was-a-java-developer
• @predominant
• http://grahamweldon.com
• Working: CakeDC
• http://cakedc.com
The primary motivator
Money
What can generate revenue?Often project specific
Indirectly
• Making money directly from open source is difficult
• Make money by operating your business along side your project
• Allow the project to grow and evolve with the community
Support
• The most obvious
• Premium support for businesses and individuals
• Utilise high speed Internet for video sessions and screen sharing
Development
• Build in and around your project, for clients
• Custom software
• Closed source (Yes, I said it)
Training
• Educate users
• Leads to better use, more contributors
• Provide courses aimed at various levels
• Again use high speed Internet to perform remotely
Certification• Might not suit all projects
• Offer professional structured testing systems to qualify users of a high standard
• Offer certification as a "badge of merit" publicly
Achievement UnlockedCertification for CakePHP 1.3
Achievement UnlockedZend Certified Engineer
Donations• Its not begging
• Method of giving back to the project for people that can't contribute
• Encourages others to donate
• Optionally allow donors to publicly list themselves
I Donated to CakePHP!
What doesn't work?Common mistakes
People code for me,for free
• Not going to happen if that's the "attitude"
• If the focus is more on your business acquiring free developers, than making a great product that will entice developers you may need to rethink your motives
• Open source != free labour
Wrong Approach
“Communities donʼt rally around closed source companies to prolong the existence of failed companies or projects”
Wrong Approach
“No-one wants to be a lackey to a commercial open source project, contributing their time to further some companies interests.”
The idea is enough• I have a great idea
• Someone will help me bring it to fruition
• This is not how to get people interested
• Everyone had great ideas
• What separates us, is some have the drive to realise those ideas
Nightingale
Examples• Nightingale http://getnightingale.com
• Ideas only
• Focused on processes and orgnaisation
• Still failing to produce anything
• No focus, no direction
Example: Xara
Examples• Xara Xtreme http://www.xaraxtreme.org/
• Initially commercial
• Wanted community help for port to Linux
• Not all the source released
• Not always an issue, but was in this case
Examples
• Xaraʼs approach
• We provided the source code
• You provide us with your developer time
• Communities donʼt work this way
Examples• Xaraʼs response
• Community complained about missing CDraw source
• Xara persisted with CDraw closed source
• Essentially telling the potential community that their concerns were wrong
• Xara is considered “stagnant” since 2008
How an open source project starts
... or more correctly,how it has always existed, and you identify it
How a project starts
• Successful projects
• Existing implementation, open up to community
• Start working on a solution to a problem
• Some application/project that motivates you
Important Milestones
• Have a product for people to download
• Roadmap to show where you want to go
• Source code from the beginning
• Simplify feedback and input mechanisms
Bootstrap
• Have “something” available
• Something useful
• Even something wrong
• Its a place to begin, and comment
Resources• Website
• Mailing List
• Bug tracker
• Wiki, or similar
• Source view / download
• Realtime Chat (IRC)
Generating interestBuilding hype
Social• Get out and talk to people about what you are
doing
• Don't be afraid to share an unpublished idea
• Get people interested
• Get feedback first hand
• User Groups
Social
• People retain interest in a topic if they can associate a real life relationship with it
• Easier to communicate complex ideas
Playing fairDon't alienate the volunteers
Money can't buy me love
• Play by the same rules as volunteers
• Motivate people to contribute through paying salaries
• Don't let that get confused with control rights
Separate the entities
• Operate the open source effort as a separate entity
• Provides visible business separation
• Gives confidence and assurance to those not working for the business
Example: CakePHP• Product: CakePHP, under MIT License
• Cake Software Foundation "owns" CakePHP
• Contributed to by a group of volunteers
• CakeDC is a commercial business that hires some of the volunteers for work on client projects
• CakeDC provides code back to CakePHP
Careful balance
• Make it known what "hat" you are wearing
• Business cannot be the key motivating factor for the projects development
• There are many ways to support a project beyond code
What Project?Choosing a project
Useful, engaging, interesting, innovative
• The project should be something useful to some business need
• You should have a personal interest in the projects goal
• Solve an existing problem, or solve an old problem in an interesting way
• Create something new
Types of projects
• CakePHP
• MySQL
• Subversion
• Linux
Community andpublic image
(it's almost "marketing"... *shudder*)
Community appeal
• Your project should fill a need that people have, and can build on.
• Allow them to take ownership of something
• Credit where credit is due
• Kudos where kudos is due
You're being watched
• The world is watching
• Don't say negative things about your competitors
• But... Benchmarks and facts are okay
Participate and engage• Visit your community
• If its larger enough, consider starting a user group
• If its going global, consider a conference
• Its difficult to measure the benefits gained from people that meet and talk about your project in person.. Almost invaluable
Communicate
• Learning to communicate effectively can be a better long term goal than programming
• A good communicator can effectively coordinate developers and manage a project
• Don't just talk lots. Learn to speak and write correctly
Communicate• Commit messages
• Social media
• Mailing lists
• Blog posts
• Documentation
Bad communication
• 1337 speak / Trendy short form
• Vague
• Aggressive
• Dismissive
Good communication
• Appreciative
• Correct punctuation
• Correct spelling
• Correct grammar
Questions, Comments?