Share Tweet Share





Many hands make light work, as they say. More importantly, though – many hands come with many minds. An FOSS project consists of a lot more than just the source code that powers your application. Most successful projects consist of at least the following:

Website

Documentation

User Support

Application(s)



Website – The Front Page of your Project

Try as we might to not judge a book by its cover, we are only human. A project page that is well organized and aesthetically pleasing is much more likely to have someone stay and read than a page that is ugly and messy.

Creating a website that is clean and professional looking in 2015 is easier than ever with content management systems such as WordPress or Doku Wiki. If your project is hosted on GitHub, it does not require something as complex as a full-blown content management system. You can create a fairly slick page from a variety of templates in just a few clicks:

You can view the live version of this site here.



Documentation – The Map of your Project

Let’s face it – people who enjoy writing documentation are few and far between. That does not mean it is something you should just skip, though. You can have the best project in the world and it would be completely meaningless if no one can figure out how to use it.

Also, keep in mind that documentation does not just consist of end user facing documents. Documentation also extends to the code your are developing. No matter how pristine you think your code is, it is not “self-documenting”. The best way to get other developers on board is to have a code base that is not only functional, but also documented.



User Support – The Pit Crew of your Project

Even the most perfect of projects is going to have questions from its users at one point or another. Computers are just too complicated for anyone (or any team) to account for every possible use case scenario. Also – sometimes things just break!

Forums, mailing list, internet relay chat, or even all of the above – pick at least one and make sure folks are active on it. Not only are these great tools for helping out your users, they are some of the best methods for building a community around your project. If you create a friendly and inviting atmosphere while answering questions others will often emulate it. If people feel welcome they tend to stick around.

Finally – questions that you get from your users often make for some of the best topics for documentation.

Application – The Base of your Project

There are a variety of different application types that exist in the FOSS world, but there are a few tips that I believe can be applied in general when creating new software.

Know the scope of your project. Knowing how to say “No” is just as important as knowing when to say “Yes”. Having clearly defined goals for what you want to do is ideal. You do not have to please everyone (and honestly, you never will even if you wanted to).

Send those patches up stream. It is generally worth the small bit of time it will take you to send improvements you make upstream. Not only so everyone can enjoy them, but also so you do not have to update your patches every time the upstream project updates.



Wrapping Up

One of the biggest mistakes I think many new projects make is not asking for enough help. For anything beyond the most simple of projects having even a small team can be a great help. Having a team means that one person does not need to have the skills to do everything a project requires. If you are spending all of your time learning how to build a website, organize documentation, or answering every user question you will never actually get any code written!

So get out there and petition some help – I bet you will be surprised how much you can find.