Open Source Project Management for Beginners? 56
aendeuryu asks: "So I've been getting the programming bug again, and I started up a Sourceforge project for a game I'm trying to write. Development is going really well so far, but I've quickly realized that programming in my own personal vaccuum for my own personal pleasure is completely different from programming for the community at large. Things I never needed to worry about -- applying patches, writing documentation, license requirements, creating autoconf files for Linux compatibility -- are suddenly my responsibility. Now, I'm trained in programming in several languages, using databases and specialized libraries, etc. but when it comes to deployment for, and interacting with, the Open Source community at large, I know just about nothing. So, to all the veterans out there, where is a good place to go to get your feet wet on this? Is there any good advice for people who are getting started in OS project management?"
I recommend Tutos (Score:5, Informative)
Tutos [tutos.org].
Its one of the most versatile project tools I've used for development projects. Full time management and accounting, tasks, there were even gantt charts addons, although I cannot remember where to find them.
Beyond project management, this also starts to grow into things like resource management. Its a very comprehensive package that I find extremely useful.
PHP+SQL and released under the GPL2. Will run on pretty much any platform (I have it on OSX, Apache+postgre) and easy to use once you get used to it. ;)
Give your community a good place to meet (Score:4, Informative)
In my opinion, these are three essential things for your developer and user community to grow:
- bug tracking software (I recommend mantis)
- forums (I recommend anything other than the sourceforge forums)
- code repository (again I recommend using subversion on your own box rather than cvs at sourceforge)
The bug tracking software will allow you to set milestones and log issues so you can build towards those milestones. It gives active users as well as new users a good idea of what work is being done, at what pace, and your intended direction.
The forums are a great place for developer discussion to sort out what the next great feature will be or how to solve the current roadblock. Also makes for great reference material for new users. Almost like self documentation.
And obviously your code repository will give users easy access to checking out the latest changes and also commiting their contributions.
Let your community give you feedback on your project and steer the direction while you act as the figure head to sort out any conflicting needs/wants within the community. Remember that if your users/developers lose interest, your community will suffer.
wiki + cvs (Score:2)
Re: (Score:2)
Re:Give your community a good place to meet (Score:2, Informative)
One tool that gives you an excellent and basically unrivaled look into your code with subversion is trac [edgewall.com].
Definately worth checking out for any subversion users.
autoconf (Score:2)
Re:autoconf (Score:2)
yea, all the autotools were tough for me to get into, but the documentation isn't bad.
There is a whole book available online to help:
The Goat Book [redhat.com] (GNU Autoconf, Automake, & Libtool)
It's just macros anyway..
-metric
Autoconf sucks - use PMK instead (Score:1, Informative)
Re:autoconf (Score:1)
Dotproject (Score:3, Informative)
I evaluated dotproject not too long ago. The initative to implement it at my company got sidetracked, so I can't comment on actual usage.
It's on sourceforge and at http://www.dotproject.net/ [dotproject.net]
Re:Dotproject (Score:2)
Don't get too excited (Score:5, Informative)
If your case is typical, you will be programming on your own time for a long time to come. Just that it's on Sourceforge doesn't mean people are playing your game, let alone supplying patches - you should be very happy to receive one or two patches in the first year.
The important thing is to stay active, code a lot, and not let your project turn into yet another dead Sourceforge project. And then just handle things as they come up.
For 95% of the projects out there, there really isn't any difference between an open source project and something you just do on your own.
Re:Don't get too excited (Score:2, Interesting)
Actually, I just got my first one yesterday (the project's only a week old, and I'm pretty flattered that somebody took the time to bother), but I don't know what to do with it! I'm pretty sure it's filename extension related, but that hasn't been a problem for me on any of the Windows machines, and I don't have access to a Linux box to check and see where the errors may be coming from and how to fix them.
Re:Don't get too excited (Score:3, Informative)
Is it a
If so, try, on a shell terminal, something like this:
cd $project_dir
zcat $patch_file | patch -p 1
sorry (Score:2)
Anyway, cygwin [cygwin.com] is a good way to run Linux commands on a Windows box.
Re:Don't get too excited (Score:2)
Re:Don't get too excited (Score:2, Interesting)
I have a project on SF (pobs.sourceforge.net) which started when the activity measurements were cripled and since they still are (to my knowledge) they never measured any activity, even though I (together with one person) produced code on a daily basis.
The code was finished (at least from our perspective, we couldn't think of any way to im
Re:Don't get too excited (Score:2)
Do you ever get mail on these projects? I would expect that before anyone would contribute anything, they would first be using it, asking you questions about it, etc.
Re:Don't get too excited (Score:5, Insightful)
The code was finished (at least from our perspective, we couldn't think of any way to improve upon it) and now it looks like a failed project, even though it's finished, stable and documented.
But on Sourceforge you list it as "Status: Alpha/Beta", your last release was 0.2 half a year ago and the mailing list is inactive. You web site has no documentation, no references to projects using your code, and, again, no mailing lists. It has all the tell-tale signs of a failed project.
So my recommendations:
Re: (Score:3, Insightful)
Re:Don't get too excited (Score:2)
This is DEFINITELY a good advice. The other day I told the project manager that I was going to use this Java library and he came back to me, saying "hey, the library is versioned at 0.0.6, that doesn't look good AT ALL". No matter that it was part of Classpath [gnu.org] and passed a bunch of unit tests I threw at it.
Re:Don't get too excited (Score:2)
Offered the devs to send them the patch, never heard from them.
Follow-up questions on the above (Score:4, Interesting)
* All my development right now is on a Windows box. What's the best way to go about ensuring Linux/POSIX compatibility over the web? Compile farms? Recruiting a Linux maintainer?
* If I don't have access to my own server, where is the best place to host? Sourceforge (the only one I really know about) or somewhere else?
* Somebody's submitted a patch. What's the protocol for crediting them for the work?
* What are the criteria for determining whether or not something is "pre-alpha", "alpha", "beta", etc. Is there a set standard, or do I get to determine this on my own?
* How useful are wikis for OS projects?
* If I have legal questions regarding licenses or IP, who should I talk to?
Re:Follow-up questions on the above (Score:1)
Re:Follow-up questions on the above (Score:2)
And deciding alpha status? well that's just common-sense and randomness
Generally the only rule is don't break ABI between minor releases (3.2.x) and don't break API between intermediate releases. (3.x)
the diiference (Score:2)
Re:the diiference (Score:2)
I'd say pre-alpha means it doesn't crash.
Alpha probably means feature-freeze (big difference from 'all features have been implemented', if I'm interpreting right), and then release candidates for string-freeze and bug-freeze.
I don't think I've ever seen a OSS program that's Final or Gold.
Re:the diiference (Score:2)
Rant mode off, I think you catagorization is a bit off. I agree with pre-alpha with the added stipulation that non-developers shouldn't be working with it yet. Alpha, means a useful feature set that still has enough bugs t
Re:Follow-up questions on the above (Score:3, Informative)
First guesses at answers:
- Traditionally, if people wanted support for platform X, they could test it on that platform and tell you the results. If there isn't anyone willing to do that, apparently there is no demand for a platform X version and it's not your problem. Although if you feel that supporting Linux is important for getting developers to help you on your project, I really think you should just install it on another box or dual boot. Or find a volunteer, as above.
- I would think that Sourceforge
Re:Follow-up questions on the above (Score:3, Insightful)
You might look into Cygwin to get started. I haven't used it, but it is a popular POSIX layer for Windows.
You won't need a compile farm for a one-person project. IIRC, 90K lines of code took about 5 minutes to compile on an old Sun workstation, and Make-like tools speed incremental builds. Even on an old computer, you would probably spend more time figuring out parallel builds than you would save by using th
Learning More About Open Source Licenses (Score:3, Informative)
Re:Follow-up questions on the above (Score:3, Informative)
To some extent, this depends on what you're coding -- a script that should easily maintain cross-platform compatability, reliance on a cross-platform toolkit or something that will require a lot of work and prayer. My recommendations would be 1) install Linux somewhere you have some free disk space and 2) if you can't do that, get so
Re:Follow-up questions on the above (Score:3, Informative)
Re:Follow-up questions on the above (Score:1)
Re:Follow-up questions on the above (Score:1)
Guess I should proofread closer... I meant SourceForge when I was talking about compiling stuff... Ooops!!
Dang. And here I was checking the lameness filter for hidden "compile" switches...
Re:Follow-up questions on the above (Score:2)
* All my development right now is on a Windows box. What's the best way to go about ensuring Linux/POSIX compatibility over the web? Compile farms? Recruiting a Linux maintainer?
Don't worry too much about it. Just make sure you're software doesn't use too much that's obviously Windows-specific, and advertise that you're looking for somebody to port it. If your software is useful enough, somebody will do it sooner or later.
Somebody's submitted a patch. What's the protocol for crediting them for the wor
Never use a Wiki for technical documentation. (Score:3, Insightful)
> How useful are wikis for OS projects?
Never use a Wiki for documentation! Instead, you need a documentation maintainer to handle submissions. They will ensure that your documentation is clear, complete, correct, current, and consistent. This is hard work that goes largely unrecognized by the rest of the Open Source community.
Consider your documentation maintainer a part of your team. Give them CVS privileges. Don't disrespect them because they don't contribute massive amounts of source code. Answer
Re:Follow-up questions on the above (Score:3, Interesting)
I'm one of the developers for the Jaws Project [jaws.com.mx], which is currently taking off as an Open Source project, rather than a pet project under an OS license.
If you don't have any experience of developing under Linux, and you aren't motivated to get any, then let someone else do it. If you want to get to know Linux, there's nothing q
it's a bit personal.. (Score:2)
Pre-alpha: something working that it's worth to show.
Alpha: Most basic engine and gameplay components working.
Beta: I finally looks like the game I had in mind (that is, all features that I thought off for the game are working), but it's not finished yet (gameplay tweaks, maybe a bit more content, bugs, maybe some optimization..)
Final: It's ready (but can envolve further).
Re:Follow-up questions on the above (Score:5, Informative)
As an Open Source developer myself [jsyncmanager.org], who likewise has their project hosted on SourceForge [jsyncmanager.org], maybe I can help somewhat.
This can be a really hard question to answer. Ideally you'd like to find yourself a maintainer to work with you on this sort of thing, but finding one is a different matter. Such a maintainer will either worm their own way out of the woodwork, or they won't. Recruiting one yourself will probably be a lengthy and fruitless prospect.
In the more than two years my project has been Open Source (it was closed source freeware for 5 years), recruiting more people to work on the project has been nearly useless. In that time, after lots of recruitment campaigns, I've found only 4 or 5 people who have actually made any significant contributions to the project and all of its sub-projects (the last time I tried to run a recruitment campaign a few weeks ago I got about 50 responses, virtually all from India, who somehow interpreted "looking for a volunteer developer" to mean I was looking to hire someone for a job :P).
Depends completely on your project. SourceForge is a good general place to host your project if nothing else fits -- they provide a good service IMO -- but they also host any project which is Open Source. If you can find one, you might be better off using something which is a more targeted community for your type of project, whether it be by language/develpment environment used, target OS, application type, etc. That is, if you're developing a Java-based project, java.net [java.net] is a good choice, as everyone there is working in Java. If you're developing on OS/2, netlabs.org [netlabs.org] is where you'll find other OS/2 developers (what few there still are). If you're coding for Linux on the PlayStation 2, playstation2-linux.com [playstation2-linux.com] is the place for you.
Don't forget -- nothing really prevents you from registering your project on every project site that suits your project, although maintaining all of those active communities might prove very time consuming!
Create your own. Typically what I do is credit the user by name and e-mail address during the CVS check-in. As I use the CVS log as the basis of the changelog for each release, this information also becomes part of the changelog. I also try to add an entry for them to my "Special Thanks" section of my Release Notes, and sometimes a comment crediting their fix/addition right in the source code. If the contribution is really significant, they usually also get a credit in the copyright statement.
One thing you should do, however, (something that I try to do at least), is to ask them if they want credit. Some people won't (and I've had a few contributions like this) for various reasons. Maybe they don't want to be bothered with questions, or maybe their employer has a draconian policy against this sort of thing (although in the latter case, you probably don't want to accept anything new from them so as to CYA. A minor fix that won't be subject to any copyright problems should be fine, however (ie: someone pointing out that an "i--" should be "i++", etc.).
Well, there used to be a standard, but far too many projects have v
Correcting myself. (Score:2)
One minor typo/error in my list of release stages. The entry for "beta" reads:
...when it should actually read:
Sorry if this caused any confusion.
Yaz.
Re:Follow-up questions on the above (Score:1)
GanttProject (Score:3, Informative)
Re:GanttProject (Score:1)
The Art of Unix Programming (Score:1, Informative)
Follow GNU standards and maintainers guide (Score:2)
"Contributors" can do more than code (Score:2)
My experience with PM tools.... (Score:4, Interesting)
I once worked at company where the PMs were treated like royalty -- and with good reason. You saw them fighting Murphy's Law every day, and usually winning. I worked closely two of the most respected PMs ("respected project manager" sounds strange, since most companies treat them like shit) and neither of them relied on fancy tech. One simply kept a lot of notes on hard copy, email, and internal web sites. The other mostly did the same, but also hacked together a simple web-based database to help the developers on his team not trip over each other. Both did a really great job.
At the same company, I worked for the one department(publications) that refused to have a professional PM. (Manager was a socially challenged empire builder.) A lot of PM chores fell to me, because of the nature of my job (production for an online document bundle) and because I was the lowest-status member of the department. I knew jack about project management, and had to learn by doing. I made a lot of stupid mistakes, but the biggest was putting my faith in a Lotus Notes database to help me coordinate workflow. It looked cool, and it satisfied my long-frustrated desire to learn Notes, but it just didn't come close to repaying the amount of time I spent working on it.
Later I worked at another company where everybody had the more usual attitude towards PMs: they're petty bureaucrats whose only role is to waste everybody's time. Since there was no coordination, projects were always going off the tracks. Management lacked the ability to change the way people worked, so they kept coming up with silly magic bullets: weird organizational changes, rules for how people were supposed to do things (always ignored), and of course lots of fancy project management tools.
I spent hours learning and fighting this software. It wasn't totally hopeless, but it was overdesigned and inflexible. We would have been better off with simple web pages and databases. Wikis come to mind.
My point is this: you need to learn how to be a Project Manager first of all. Then you'll know enough to chose the right tools.
Trac is great for lightweight PM and SCM (Score:2, Informative)
Check it out at http://projects.edgewall.com/trac [edgewall.com]
Eventum from Mysql AB (Score:1)
be used by a support department to track incoming technical support
requests, or by a software development team to quickly organize tasks
and bugs. Eventum is used by the MySQL AB Technical Support team, and
has allowed us to dramatically improve our response times.
Product Overview:
http://dev.mysql.com/downloads/other/e v entum/index
Screen shots:
http://dev.mysql.com/downloads/other/event um/scree nshots.html
Features List:
http://dev.m