Open Project Guide | For and about open source projects

Dec/09

23

There shall be light – things to keep in mind when starting a project

This article describes a few things you should consider before you start a project, like when to go public, which group of people you are targeting etc. The goal is to give some insights. It’s not getting very deep, because there will be dedicated articles for some chapters later, that are more detailed.

Do you have just an idea or maybe even started coding?

This is far more important than you might think. If you have working code you can easier attract other developers to join you in your journey. Having just an idea has the disadvantage that especially in the starting phase, a lot of time has to be spend for investigating the right technologies or preparing the infrastructure (which can be pretty boring). This will drive developers away or prevent them from even looking at your project at all. The small advantage of the possibility for other developers to give input from the start, quickly turns into a nightmare. With four developers you’ll end up with at least 4 different approaches for the problem. You have to give some “guidance” by writing code to get rid of the question, which basic direction the project should take. Another negative effect is that a huge amount of projects die within the first months and many of them don’t even publish code at all. You don’t want to be in this group of failed endeavors, so start coding and prove yourself to the community. Remember that it’s not very likely that you announce your new shiny project and suddenly a bunch of developers floods your inbox with requests to join you. The more information you put in the appropriate places like your homepage or the project homepage, the higher is the probability that you’re found by the right people. So, keep in mind: Prepare the foundation, think about the basic structure and start to implement it. Working code attracts much more than a “white sheet of paper”.

Who do you think will use your “product”?

Knowing what kind of people will build your user base is important. This will drive a lot of decisions that you will have to make. Are you just coding for yourself and giving the source to the public afterwards? This is the “easy” case. You actually don’t have to care a lot if there will be other developers. Obviously you have what you need and everything else is a bonus. When your goal is to be part or the head of a healthy project, then you have to keep your targeted “audience” in mind. I heard people complaining about missing involvement of their user base or other developers. This may be completely normal if you have a fairly small user base, because only a small fraction usually gets active. If you have only a few hundred (regular) users you have only small odds of getting something back from them. The percentage is higher if your targeted group consists of developers, but still the majority will only be passive or at most provide entries in your bugtracker. So knowing your audience helps in shaping your expectations, so you don’t get disappointed. Another thing that you have to keep in mind is that your “advertisement” on the projects homepage needs to be targeted for your audience. You can’t just provide API-Docs if your user base consists mainly of regular users, who just install the software and want to use it. On the other hand, you can’t just put up some high level feature lists on your homepage if you are targeting developers. There are many many projects out there, if you want to attract users, you should provide as much information that is interesting for them as possible (in a readable way!). To summarize it: Think about the kinds of users that you want to have and provide information targeted for them, to convince them that your project is good for them.

Do you have long-term interest in the project?

When you start a project you are of course pretty confident that it is important and interesting. This is perfectly normal, otherwise you wouldn’t want to start the project. But you should take the time to step back a bit and think if you really want to maintain and run the project for a reasonable amount of time. What some people don’t realize is that by participating in or starting of projects, they shape their “online reputation”. With a little bit of googling you can find out a lot about people and it’s not uncommon to do this. Potential employers or customers might check what the new employee or service provider has done in the past. So be careful not only how you behave, but also what you do with your projects. The Internet never forgets. Starting tons of projects that are abandoned after a short period of time may (or will?) lead to the impression that you are not capable of focusing or finishing what you have started. That’s not something that you’d put in your vita, so you need to think if before you start a project if you really want to do it. By the way, there are of course ways to start projects for example on hosting sites like sourceforge or kenai where you know that it won’t result in usable software for quite some time, but you need to have repositories to store your code somewhere. This is in my opinion perfectly fine, as long as you are honest about it and state that in the project description somewhere. So, as a summary: Be sure that you want to maintain the project or at least be honest about the kind of involvement that you plan to apply on the project.

Do you have another hobby?

This question sounds silly, but when you are in a prospering project with for example 5-10 developers, where 1-5 are “really” active, you might end up with a lot of traffic in your communication channels (mailing list, IRC, Skype Channel, …). This is not a bad thing at all. You are together with a group of usually like minded people, which may become really good friends. I have experienced this during the time that I was involved in a shopping cart module for postnuke (Postnuke is now called Zikula) and later when I was involved in the core development. You spend a lot of  hours reading and writing emails or simply chatting in the Skype channel.  This may be more time consuming than you thought. But it makes a lot of fun, nevertheless! Another thing that may be a time hog is user feedback. Bug reports, feature requests and user support may take quite some time if you want to do it right (but we’ll see in a later blogpost how this could be tackled). To keep a long story short: A growing project may consume a lot of time, be aware of that!

Conclusion

The statements above may sound like, starting a project is a bad idea. This is not true. It actually is a lot of fun, especially if you find users that like your work and/or other developers that like to participate. Just keep the mentioned problems in mind, so that you won’t be disappointed or overwhelmed by the amount of work that suddenly appears.

· ·

1 comment

Leave a Reply

<<

>>

Theme Design by devolux.nh2.me