When creating an open source project it is really important to get stuff done and working as fast as possible. As soon as the initial project phase is over, things calm down and if the stuff is not working properly at this point, people lose interest.
So, you should try really hard to avoid that and get stuff done as fast as you can, so you have something to show. This does not mean that your stuff should be complete or everything should work as expected, but you should be able to show some basic features of the software, so you can inspire others to hack on the project and improve it.
Because that’s what keeps a project living: people and contributors which want to bring the project forward. And if you can show them things, they might get enthusiastic about the project and start contributing!
So, you should try really hard to get something which basically works.
Speaking of my semester project, we’re almost at the point where we have something which basically works. We have some very basic functionality, which means we can start a terminal and use it (not everything works as it should, but we’re working on it). So, we can show something.
The problem with software is that you don’t actually see what amount of effort is put into it. An experienced programmer can, of course, see it, but not the average guy from the street. So, with complexity of software and source code, the need to get something which basically works and can be used, increases rapidly. We in our project have written source code since end of September, we just hit and passed the 30k LOC mark. That’s great, because we have a great infrastructure of code, which is really powerful in my opinion. But, by now, we “only” can start a terminal and have some background image. We are not yet able to do more things. This will change in the next few weeks, but by now, a user can only see some really basic stuff. But there’s a huge amount of effort put into the project.
The User can’t see it. This is were things get complicated (also in regard of our assessment of our supervising professor). As soon as some more infrastructure is merged, we can actually start implementing the API, which can then be used to actually show things, so we hopefully won’t have this problem in a few weeks anymore. But until then, I consider this stuff as really critical.
We also have to provide a documentation of the project phase, which will be included in our grading as well, so at least that is not as ciritcal as it seems, but I would really love to have a working software at the end of the project phase. And by now, I don’t see we get there. It is not that much left to do, but much enough…
So, in my humble opinion, it is really important that one gets working stuff (in a open source project), so it can be shown to others and can advertise itself thereby.