Home >> Community >> Forums >>Software Engineering >> Online projects and motivation
Corman GDNet+ Member since: 10/23/2001 From: Crown Point, IN, United States Posted – 7/4/2010 11:50:49 PM
Sad news is that I see nearly 90%+ (my own personal stats, this can truely be all over the place) of non-paid/voulenteer development in games end up like this over and over again until even the very talented and hard working parties are jaded beyond belief (myself included over past projects). And is usually broken down like this:
1. A large number of people under estimate the task(s) at hand and equally over estimate their own or other people skills to suceed or follow through with these tasks.
2. Join a project believing a lot of tangible/end usable work has been done and as soon as they get access to the inner circle feel that every thing was just smoke and mirrors and is nothing more than just sugar coated talk.
3. Want to be part of something but feel that everyone else will teach them or carry them along to greatness.
4. Everyone wants to be the idea guy/gal and getting in on the ground floor everyone pulls in a different direction or trys to inject their own personal goals in everything they actualy do.
5. Feels that they are only here to be the designer and drops the project when they feel the coders or artists (if any) are not doing anything or what they want.
6. Are not aware of the large dead zone periods where there is nothing to show and jump ship feeling it is not moving at their pace.
7. View it as a personal elective that they do not have to do so they feel that any sort of procrastination is fine since any work they do is worth more than what they are getting in return (that is nothing).
8. Like shinny new things and will move on to another project if it looks like it has more people interested or that it will go farther.
9. Everyone is in different locations around the world and have drastically different schedules that do not aline with others so ant any given moment it feels like you are the only one doing any work.
10. Feel that they are indeed doing all the work as everyone else sits back and slave drives them for something they are giving freely of themselves to do.
11. Think different tasks depend on other tasks to be finished before they do their work (ex. “engine" must be finished before artist start creating content, etc.)
12. Honestly do not know where to start for a good foundation and everyone scatters to different parts they believe are more important.
13. Do not like the coding style of everyone else and gives up on “princple".
14. Different levels of experience clash.
15. It was nothing more than an impulse moment and just kind of forget about it because it really did not mean that much to them in the first place.
16. The person who started the project usually is the one who trys to take the leadership role even if their skill set is not fully up to par with managing a larger team and more times than not are not open to taking some one elses lead in return.
17. Do not want to take suggestions from the people with real experience or at least the ones who have tried a particular route and maybe even failed (I see the wheel re-invented over and over with wrong paths retaken just because people do not want to listen to honest advice out of spite).
18. Some people are driven by what you can see and play with and sometimes if it does not get to that point soon enough the non-technical people usually drift away.
19. More people worry about making engines than games or planning for a future of re-usability and expandability that more than likely even with success will not come.
20. Really are not into it more than to have a social group that they can brag about.
21. Spend more time in idle planning and endless research for the “silver bullet" solution that nothing ever happens since they believe they have all the time they want.
22. Feel that no work can be done until they get more people or every “position" seat is filled.
23. Hold out hopping to nab a professional to fix all their problems.
24. Aim too high and never target a project with a subset of tasks that are best suited to the people at hand.
25. People just get dropped in with the basic feeling from others that they should know what they should do and work on right off the bat.
26. They never do any small team building projects to get used to everyone and have early sucesses.
27. Various age ranges and mental/physical maturity that may or may not be shared with others that causes clashes or misunderstandings do to how they talk or express themselves.
28. Ideas really are a dime a dozen and people become so inflexible to changing anything that they sabbotage what can be done for what they beleive should be done to the letter.
29. Everyone is a zealot over something, be it os, compiler, editor, art tools, or coding style and fight over thigns that really do not matter.
30. Just do not speak up and feel nothing is worth fighting over and just leave in silence never to be heard from again.
This list is no where close to being exhaustive and could go on and on but is meant just to give a rough idea of some of the difficulties involved. So yeah, this is basically venting some frustrations I have come across and I am sure you and other have as well. There is no single solution or best pratice is this case since these sorts of groups are all over the spectrum. The only real solid advice is keep all these things in mind and understand what makes people tick and what they think and feel (like from the list above) and work to improve all the points even if it ends up being yourself and or your project itself.
這份清單可以不斷變長,但只是粗略地提出一些團隊會遇到的困難.基本上只是說明我曾經 遇過且我堅信其他團隊必定會遇到的問題. 對於各式各樣的團隊而言,沒有單一或最佳的解答. 唯一的方法就是全盤都考量,而且持續瞭解激勵(或使他們失去動機)每個成員的要素. 持續有進展,即便那些都變成自己的工作.要不然就好好保護自己.
Nihathrael Member since: 7/21/2010 From: Freising Posted – 7/21/2010 4:34:00 AM
Joining a new project with an existing code base means working into a lot of code, this often seems like a big hurdle for especially fairly novice programmers to take.
It’s the expectation of “I’m joining this new project and i’m going to change the world by doing it" which makes a lot of people leave quickly, when they see it’s not going to happen. “
Most of the people still underestimate the work they have to do, even if you tell them it’s going to be a lot, so don’t worry to much about scaring them away.
Here are some counter measures that can help (again, in my experience):
– Make clear to new people that working on a project takes a lot of time and is not always fun but even work sometimes
– Make them contribute their first 3 fixes through patches before you give them repository access (It won’t bother them and it will help you keep the repo clear of unnecessary users)
– Comment your code (yes it’s that simple)
– Have a bug tracker so people can find themselves tasks easily (and most importantly, without relying on your help. Working autonomously feels great!)
– Let the new contributer choose on what he wants to work
– We have an in-code tutorial which takes you through the important classes. It’s basically comments inside the code explaining what each portion of code does on a fairly high level and then says “To continue your journey, now check out xyz.file". It’s a little adventure through the code if you will. A lot of new folks have found it quite helpful.
我們有一個程式碼層級的新手教學.意思是透過註解讓你瞭解這些註解的目的.與檔案間的 連結.這很有幫助(譯註:幫助瞭解專案,同時維持coding style)
– Make sure you thank the contributer for his contributions! In open source world this is all they are going to get! So if someone supplies a patch, thank him for it. If he continually contributes, add him to the credits. I know this hard for us computer folks, but saying “Thank you!" really is a great motivation.
– Make them feel part of a team. Always talk in terms of “we are releasing a new version where we implemente a, b and c." “We have to tackle this new problem", etc.
– Create an IRC channel where you meet up with people regularly(this can be hard if you live in different time zones) and require regular contributers to join when they work on the game or even better always when they are online. Again this is a team building experience to everyone and you get to know each other fairly well. This will also help new people as if experienced contributers are online as often as possible, rather simple questions can be answered quickly instead of taking the new guy ages to figure out.