Distributed Development
From Wiki
Recruit: How do you recruit new developers?
Avoir
- No new developers except through (Avoir) project network (nodes)
- Vested interest for developers
- Sexy project like FireFox
- Easy to attract (high profile)
- Millions of users
- Cool factor
- Avoir - no sexiness
- Individuals that use the software will become developers
- Masters program (Masters in Free and Open Source Software) in universities throughout Africa
- Could be in PHP, Java, etc
- Turn it into a research project
- Take a business as an intern (SME in Capetown called Maxor)
- Create new business by developing relationships with SME development
- They use the framework and build modules
- Platform benefits from the
- Makes business opportunities
OpenMRS
- Pseudo-sexiness
- Fame aspect
- GSoC developers
- Get developers through universities
- Trinity University
- University of Rwanda
Retention: How do you retain developers? How do you keep them interested?
- Increase bus factor
- Can have turn over without affecting the project
- Encouragement, egos
- Using projects creates opportunity to develop new features (ex. Apache)
- Payment
- Taught formal university classes (revenue creates opportunities to create
Conflict: How to handle design conflicts / arguments?
- Bus factor - how many developers could get hit by a bus before the project would stall
- Design conflicts easily resolved through discussion
- Group discussion usually resolves all problems
- As long as modules adhere to coding standards, there won't be much conflicts since they are standalone)
- Innane conversations about design issues (flame wars) -> Painting the shed
- Conflicts usually revolve around the API/Core
- Example: AJAX framework
- Supports two frameworks, enable/disable
- Short version of a method name
- Example: AJAX framework
- Modular architecture allows code to be written that can later be added to core
- Some projects have hierarchy of conflict resolvers
- Stealing code?
- Depends on the license
- BSD, MacOS X derivative of FreeBSD
- GPL
- Depends on what you do with the software
- No distribution -> ok
- Distribution -> GPL comes into play
- Depends on the license
Tools: What tools are used for development?
- IRC - Both Chisimba and OpenMRS use it
- Chisimba - Realtime (voice, video, presentation, sketching)
- Tools mentioned this morning (Trac, wiki, forum, mailing list)
- Google Docs
- Skype, Yahoo, MSN, other chat
- Eclipse plugins for this -- research this
- RSS feeds
- Events - code sprints, usability sprints
How are we going to make money
Mifos
- Build services around the software
- They get support from IDRC, cannot charge for it
- Services = Revenue (business model)
- Managing IT, training, capacity building, installation, data migration, customization
Avoir
- Services = Revenue
- Setting up content managed servers
- Lots of features that make its very good software
- Create internships for SMEs
Internet Based
- Collaboration online is a big challenge
- Code repository - gforge (fork of sourceforge)
- Glue to hold all projects together
- Code repository - gforge (fork of sourceforge)
Collaboration
- Committed code to other projects Oracle (Debian installer), PEAR, etc
- Find other communities that are doing complementary work (build interfaces)
- Another way to get developers
Ownership
- If a person builds a module you can take the entire project and sell services around the OSS project
- Demonstrates viability of the project
- Promotes the application
- With certain licenses you can:
- Sell the application on the CD
- Provide services
- Provide a paid download service
- With other licenses
- Viral licensing
