Managing an OSS Project

This topic was published by and viewed 1479 times since "". The last page revision was "".

Viewing 1 post (of 1 total)
  • Author
    Posts

  • DevynCJohnson
    Keymaster
    • Topics - 437
    • @devyncjohnson

    Linux and other Open-Source Projects rely heavily on active developers. These developers must have properly organized projects and teams to keep making high-quality software. As long as the developers are performing well (and the software has a purpose), it is unlikely their software will become abandonware. I have been part of some open-source development projects and I own some projects of my own. I hope to give helpful tips and not include opinions, but feel free to post and ask me questions on certain topics pertaining to program development teams.

    Organization and Management - Many of us have heard that organization is the key to everything. If a project is not well organized, then it will not produce high-quality software efficiently. Also, the project and/or team may collapse. Organization also allows the project to progress smoothly. A project will not work well if the different parts of the team/project are uncoordinated. So, make official schedules and rules. Make sure all members understand what is expected of them. Set well stated standards and rules. Some teams are strict and others are more open. This will largely depend on the type of software, the quality, the team size, the owners/managers, and many other factors.

    Documentation - Always provide thorough documentation (this helps with organization) on how to use the software, the team guidelines, team organization, member roles, management style, programming format, source code layout, etc. The documentation should contain enough information to allow new members of the development team to have a thorough understanding of the project and organization and be able to start helping the development.

    Development over the Internet - If the project is operated by a team over the Internet, then it may be wise to host the project on a developer's website like Launchpad.net or Github.com. These to websites offer version control and helpful tools that can keep the project organized. These special websites will be discussed later. Such websites also allow team members and the users of the software to report bugs or offer ideas.

    Evolve - The project and team must be able to adapt to the latest software standards and needs/wants/expectations of the software and its users. The project must also stay active and continue to support the software. If bugs are no longer fixed and the team does not actively work on the software, then the users of the software may start looking for alternatives. For example, ever since Opera was no longer supported on Linux, many Linux-Opera users quit using Opera and found a different web-browser that they preferred.

    Listen to the users - Developers make software hoping that people use it. If no one used the software, then the developer may discontinue the software. Once many users are using the software, it is best to listen to their suggestions. Otherwise, if another similar project starts implementing the suggested ideas, then the number of users will decrease for your software.

    Get a large development team - Usually, projects with large teams tend to have more users than projects with very a small team. Think about Gimp, Firefox, and Blender. These open-source projects have many people offering various services and skills to the project which will help make the software better. The better the software, the more users it will likely have. Also, be open to new members. Some teams remain closed and the members run out of ideas or quit without being able to give the project to developers that understand the software and source code well enough to continue. Otherwise, welcoming new members provides new ideas and perspectives. This also gives the old developers a great opportunity to put a younger member in charge when others retire.

    Hosting Websites - These special websites allow developers to share their code with the world. Many of these websites also offer some interface that allows the development team to work on the project. Generally, the code is developed on a local system and special software uploads the newest code to the site.

    NOTE: This is not an extensive description of each hosting site.

    • https://github.com/ - Github is a commercial hosting site that uses the Git revision control system.
    • https://gitorious.org/ - Is like Github, but is not commercial and it limits bandwidth.
    • http://savannah.gnu.org/ - Only hosts free software. GNU Savannah provides mailing lists, bug tracking, and file hosting. GNU Savannah supports a few different version control systems like GNU-arch, Subversion, Bazaar, Mercurial, CVS, and Git.
    • http://javaforge.com/ - JavaForge is a free hosting site for OSS. JavaForge is not restricted to JAVA-based applications. The "Java" refers to the fact the site itself is JAVA-based. JavaForge offers bug tracking, chat, wiki, and other services and supports Mercurial, Git, and Subversion version control systems.
    • https://launchpad.net/ - Launchpad only hosts open-source software and does so free-of-charge. Launchpad supports the Bazaar revision control system, bug tracker, answers, translations, and blueprints.
    • http://sourceforge.net/ - Sourceforge is a commercial hosting site that offers free services for free software. Sourceforge supports SVN, CVS, Git, Bazaar, and Mercurial revision systems. SourceForge provides many services like reviews, wiki, and other services.

    Advertise/Demonstrate - The best way to gain a larger number of users is to inform more people of the program's existence and features. Make Youtube videos and post the program's download link and features list on various social sites. Be sure to be honest about the program. If users see that the team exaggerates the program's abilities, performance, or stability, then the project and the team will quickly gain a poor reputation. Just be open and honest about the application's features and condition. If the program is highly unstable, then say so.

    Diverse Skills - It helps a lot to have a team with a variety of skills and roles. Generally, a team should have a beta-tester, programmer, manager, coordinator, and promoter. Obviously, a single person can take on more than one or all of these roles. Popular projects may have a translator and financial-manager (for donations).

    Backup/Disaster-Plan - Even though each member on the team may have one copy of the project, always have many backups and archives. Besides the typical backup recommendations, keep a copy of the project on cloud storage like Dropbox, Ubuntu One, or some other similar service. Also, having a download mirror is helpful for when the website hosting your project is down for one of various reasons.

    These are some basic tips that should help inspire an OSS team. Good luck and happy coding.

Viewing 1 post (of 1 total)