multiple person project collaboration
Eric ColemanI've seen a lot of community projects fail. I would like to know what makes those projects fail, and what could be done to prevent that failure. For those that have been successfull at keeping a community project together, what is your secret?
SphereFor me, SoulofSphere was my first true videogame... I was working with for at least five other members but I was the only working on the game... Its took us two years to finish the game and I am planing to make another SoulofSphere maybe in 3D... Eric Coleman could you review Soul of Sphere(100% translated) ! Motivation is the only kyy to success: that was so much fun [8)] A+ [;)]
Almar JolingIndeed.. -People tend to get bored of a project soon, at the start everything is cool -People do not make their deadlines, people will wait, and then people will wait on those agan -No good source code versioning system (happend to Rene/Eddo as well, with his entry for the Christmas contest IIRC) -No real good project leader. -..And time. everyone is doing it as an hobby. When things change in their lives, or interest start to drop people will drop quicker cause they do not really know each other that well. Well, that's a few things I thought about [:)]
Eric ColemanHaving only 1 person on a team doing programming simplifies things, but I would like to hear more from people where there are multiple programmers on a single project. Any tips from you people?
ExcaliberI wouldnt know, as the current I'm on (Sprite Artist for TOL) only has one coder, and all my projects have been individual. It would be interesting if we started a project here. Something simple but fun, maybe networked. Dont know, everyone may be too busy.
Eric ColemanThe reason I'm asking about this is that I've been thinking about adding a project management section to this website. Something like sourceforge, although I've never used sourceforge, but something similar. The idea was to allow people to store their code on a server, and then allow members of the team to make changes to the code, and then keep everything versioned. Sourceforge is open source only, and I wanted the project management feature here to be configurable by the person that created the project, so it would be up to that person if he want's the project to be open source or closed source.
ExcaliberPersonally, i think that would be spectacular. It would also be nice to have a place to show off latest versions of the game, have (maybe) mini message-boards for each project, etc. Very Neat idea! Hope you follow through with it!
AmrazekI, too, would be interested in such a system. May get some great use! -Amrazek
Eric ColemanThis is not something I would be able to code all by myself, I don't really have that much time to devote a project like this. This project really needs more than 1 person working on it for it to be finished quickly. If anyone knows ASP (or possibly PHP ), and if you're interested in helping, then let me know!
Rag on a StickSounds risky... going for collaboration on this project, even though you see so many collaboration projects fail [:)]
Eric ColemanThis is like the chicken and the egg paradox [:)]
PeterEveryone knows the rooster came first :)
Rag on a StickChicken tastes better than egg. If the chicken had have come first, then man would have eaten it. A dozen eggs came first, man tried a few of them and threw the rest out. Those eggs hatched, and then there were lots of chickens and lots of eggs. It is really quite obvious [:)]
KriscI know some ASP, and I would love to know more...If you need me, I can do a bit of coding but currently I am working on a project with my friends for a contest in late March, but after that it is pretty much free time for me so I can work on this project if you need me... btw, over at http://NeHe.GameDev.net they have a Zelda project going and it is going very nicely. {I am not in it.}
Eric ColemanAt this point I'm looking for design ideas. The coding is the easy part [:)] This is a list of things that need further elaboration, i.e. to be designed. If anyone else can add think of something to add to this list, then please do!:
  • Communications
    • Bug tracking
    • Task delegation
    • Task completion
    • and general communictation
      • message board
      • email list
      • etc
  • Time Line
    • Task and bug tracking
    • Milestones
    • various tools to keep the project on a schedule
  • Files
    • Versions and comparision
    • Storage and archiving
      • seperate stand alone program for storage
    • Tracking
  • What else am I forgetting?
Remember, this is to be desgined for VB game programmers. [:D]
Excalibermaybe a list of current dependencies that the project is using...just a thought
Almar JolingAn homepage which can tell what type of project it is or something? :) Or is it more going to be an private 'CVS'?
Eric ColemanYeah, this idea is similar to CVS and sourceforge. The difference is that this is more of a tool to help people work together (so that multiple person projects don't fail), than a versioning system. The version tracking and related stuff is just part of the package, and not the main reason for wanting to do this. If I can't find anyone that seriously wants to help, then I can't afford to work on this by myself. I also don't want to do this if no one wants to use it, so I guess I should also ask if anyone would be interested in using an online collaboration program?
ExcaliberI would use it in an instant. I have several projects I'd like to put up actually, and know several freiends that would too.
Eric ColemanI probably should have originally posted this at Lucky's, simply because of the low traffic here. So who is going to be helping me with this project?
kavehI think they fail because they're not well organized, and they dont make a complete technical design document before starting to code. People dont know what other functions/methods will be available to them and what data formats to use because other people haven't written them and theres no document describing the interfaces/data structures. So it gets to a point where everyone is waiting for everyone else to finish their part before continuing. Then people get bored, lose interest and go back to their personal projects.
Almar JolingWell Eric, I'd love to help, and I know enogh of ASP to do so... I'm just not sure about my time lately, I have 2 sites to program already, one ASP, and one PHP.. and the ASP thing has gotten on my nerves a bit lately :)
Eric ColemanIt seems no one has the time to help with this, so it looks like nothing will happen. [:(]
cbxFirst off don't set a time or date for the project to be compleated. And just because one of the comunity members does not respond or looks like he/she has quit the project don't assume that they don't still want to help. Keeping in regular contact if not on a daily basis is almost mandatory. Also time zones are a problem, but if you can get all of your members in one chat room (preferably with voice or webcam) all at one time that is a very big plus. But I would say to keep a lax and relaxing schedule between members is number one. If members being stressed for time becomes a factor, people will quit the project. My two bits.
quote:
Originally posted by Eric Coleman
I've seen a lot of community projects fail. I would like to know what makes those projects fail, and what could be done to prevent that failure. For those that have been successfull at keeping a community project together, what is your secret?
cbxI would like to add some extry additions to my prev post regarding multi member colabaration and my personal experience. 1: Don't seek out members over the internet. Put an add in your local paper first or talk to friends and spread the word locally that you want to start your perticular project. This will free you from having to deal with much of the problems that are raised when working in a disconnected environment like the internet. 2: Setting up a web site for the project is critical. Do not hold off creating the site until the project is under way. Creating a web site is the first thing you should do. Also equally important but not really nessary. Is to have a fourm on that site so that members and interested people can comunicate effectively. You can setup a wen site without fourms but it can make community feed back a little more cumbersome. Communication is key. Not having the ability to verbally talk to another real live person 1 on 1 can be a challenge using technology. It seems like I am always having to describe something to the other person more than once. And vice versa. And if you don't believe me just ask Eric, or refer to these fourm posts right here on vbgammer. [url]http://vbgamer.strategon.com/msgboard/topic.asp?TOPIC_ID=21[/url] 3: The next step I would say is to stop working on the project? I bet you are scratching your head right now. Again speaking from my experience I find it much more benificial to create a library(s) of objects, interfaces, and commands that you think will be helpfull when it comes time to work on your project. For example i am working on a couple of libraries, one of which is a DirectX 9 helper library called DX9Tools. This library will allow me to create DirectX 9 based apps quick and easy. Another library I am working on is called GameTools. And as the name implies will contain a set of generic game related functionality common to most games. For example Phisics, and ai objects etc. Also you should create any character or level editors first. That way when it comes time to actually create the game or application you have the tools to create the content for that project and do not have to split your focus between two or more projects So basicly you want to create a game that has no game engine to run it. This will allow you to focus solely on the game engine itself and not have to worry about anything else. Know what I mean? At the very least create the content for the first part of the game, so when you test the engine you have something to test it with. And yopu will be able to see what the game will both look and run like. 4: When working together on a project try to break the project up into a number of components. That is to say componentize the hell out of it. Or if you are using a language that supports interfaces, interface the hell out of it. But if you are using a language like VB 5 or 6 split the project up into a number of dll's. Then assign each member a component to work on. 5: Unfortunatly if you are the brain child of the project you are doomed to do most of the leg work. Constantly describing to members what you want done as well as how. But one thing to strive for is to keep in contact. Again just because one of the comunity members does not respond or looks like he/she has quit the project don't assume that they don't still want to help. Keeping in regular contact even if the member does not respond lets them know that you are not going anywhere and that you are serious about seeing your project compleated. 6: Also, you can dream big, but before you start coding the project make sure to scale it back by a factor of 10. This way there will not be any dissapointments about things not getting done. And remember writing software can be very flexible, you can always add features at a latter date. Some other quick tips are ... 1: Do not worry about coding for speed you can do it latter 2: Again keep a lax schedule or no scedual at all 3: If a member does not feel like helping anymore let him go do his/her own thing but keep giving them updates regardless. He/She may see that the project is picking up steam and may want to start helping out again. 4: I can't stress this enough start searching for members in your local area first! Even if they are a 1 hour drive away, they may be willing to commute very now and then for some 1 on 1 disscusion and planning.