This is a post written by Jacob Edie from Codecademy.
<< As more and more people finish codecademy it would be likely that many of them would want to work on collaborative projects together. Unfortunately, many users find themselves with lacking knowledge on how to create collaborative environments efficiently. Many collaboration proposals today only say things like “Let’s make a game!” or “let’s start a team or something…” without Adequate information on the collaboration, they plan on making. This Guide/ Tutorial explains on how to create successful collaborations that people will want to join and work on.
The very first thing you should do before creating a collaboration is to plan on what you hope to make, and what resources you will need to do so. Resources include:
• Amount of people
• Frameworks that you might use
• Collaborative tools such as Github, cloud9, google drive, pastebins, etc. (http://www.codecademy.com/groups/html-projects/discussions/51ea70889c4e9d0bbb002b70 )
• Computer languages your team will need to know
planning on what tools to use ahead of time is important and choosing the right tools will make your production go a lot smoother. I made a list tools you can use based on category. (Names with a “$” means they cost money usually on a monthly basis)
The Whole Package:
• Github- https://github.com/
• TeamBox$- http://teambox.com/
• BaseCamp$ – http://basecamp.com/
• ActiveCollab$ – https://www.activecollab.com//
• Photonotes- http://www.protonotes.com/
• ProjectPier- http://www.projectpier.org/
• BeanStalk – http://beanstalkapp.com/
• Jira$ – https://www.atlassian.com/software/jira
• OpenProj – http://sourceforge.net/projects/openproj/
• dotProject – http://www.dotproject.net/
• ganttproject- http://www.ganttproject.biz/
• consultcomm- http://consultcomm.sourceforge.net/
• taskjuggler- http://www.taskjuggler.org/
• collabtive – http://collabtive.o-dyn.de/?lang=en
• opengoo- http://www.fengoffice.com/web/
• Microsoft Excel
• Skype – http://www.skype.com/en/
• Email – https://mail.google.com
• Google Hangouts- http://www.google.com/+/learnmore/hangouts/
• IRC – http://webchat.freenode.net/
• Cisco WebX – http://www.webex.com/
• Join Me – https://join.me/
• Moxtra – http://www.moxtra.com/
• Podio – https://podio.com/
• Yammer – https://www.yammer.com/
• Github – https://github.com/
• Cloud9 – https://c9.io/
• Koding – https://koding.com/
• PastBin – http://pastebin.com/
• Google code – https://code.google.com/
• BitBucket – https://bitbucket.org/
• Stypi – https://code.stypi.com/b8h97ita
• RealTime board – https://realtimeboard.com/
• Prezi – https://prezi.com/
• XMind – http://www.xmind.net/
• SpiderScribe – http://www.spiderscribe.net/
• Coggle – http://coggle.it/
• FreeMind – http://freemind.sourceforge.net/wiki/index.php/Main_Page
• Haiku Deck – http://www.haikudeck.com/
• See more here: http://mashable.com/2013/09/25/mind-mapping-tools/
• KickStarter – https://www.kickstarter.com/
• Indegogo- http://www.indiegogo.com/
• crowdFunder – https://www.crowdfunder.com/
• RocketHub – http://www.rockethub.com/
• appBacker – http://www.appbackr.com/
• finding sponsors – http://www.wikihow.com/Seek-Sponsorships
Balancing your project-
When coming up with ideas about your project it is important that you keep a level mind about how ambitious your project will be. Sure ambitious projects sound a whole lot more fun to make but once you get started does it dawn on you how much work your project will really require. That is why of instead of making large ambitious projects first you should start on small projects before going on to larger ones. Too many collaborations and personal projects aim too high to what the developers can actually achieve and are given up on. Here is a post on the unity forums that explains this nicely. Link
The second step to creating your collaboration is to recruit members to your team. You do this by either contacting the people you wish to recruit directly, or posting a way for people to sign on to your project through a forum. It is important that in both cases that you inform them thoroughly on what type of project you plan on making, and convince them that your project is worth devoting their time to.
Recruiting through a forum:
• Good for projects that need a fair amount of people
• More visibility
• People come to you to join instead of you going to them
• You don’t need to know personal contact details beforehand
• With popular collaborations it will be hard to look through all people wanting to join
• Not suited towards projects that you don’t want to disclose much information to the public
• You have to compete with other collaborations for attention
When creating your forum it is important, that you give adequate information about the project you are creating. Here is a little template you can use when creating collaborations:
this is the first thing people see so make sure it accurately describes your project and is short to the point
BAD TITLE: Looking for people to collab with!! (not descriptive enough)
GOOD TITLE: Recruiting Members to build a program to Find the Largest Prime Number (Waaaay too long)
BEST TITLE: COLLAB: Finding largest Prime Number (short, sweet, and to the point)
Explains what you plan to achieve with your collaboration or what it is about. This is the make it or break it moment for most people interested in your collaboration.
BAD INTRO: I was thinking about making a game. (There are many types of games)
OKAY INTRO: I was thinking like a space fighter game but actually, I think a 2d platformer would be better. Maybe even a sandbox game… (Lacks a clear goal)
(perfectly explains what the collaboration project is about and also some features that will be made while keeping the reader engaged.)
Certifications to join (not required) –
this is where you tell the people interested in joining what they need to know before applying (can also be combined in roles) this can be determined by self-judging or series of tests that you might give them. This can be things such as age, time available, skill, experience, work effort, time zones, language, etc.
(there really is no correct or bad way to do this) example:
roles help people know what their job is. It gives them a sense of purpose. It is important that everyone is clear what his or her role is in your collaboration. One person that does not have enough skill or determination at their role can slow down the entire project.
BAD ROLE LIST: we need:
Programmers: lots!! (What type of programmers? What skill level?)
Artists: about 1-10
GOOD ROLE LIST: we need:
Web designers 3 (skill?)
BEST ROLE LIST: we need:
JS Leaders (1) (explains how many you need)
Show one of your best projects. Also familiar with Phaser.js
JS Devs (1-5)
Completed js track and is familiar with Phaser.js (shows what type of skill your looking for)
Show best project. Good art skills would be nice
Completed web fundamentals
Php dev (2-4)
All skill levels (make sure to note the skill level you’re looking for even if you’re not looking for anything specific)
Good at explaining problems that you had playing the game
Past Projects (Optional)-
you would put this here to show that you have some skill and are serious about this project. This is especially important if your collaboration is quite ambitious and you need to earn some respect so people know that you have the driving will to put this project through. Make sure to post only the projects you are proud of here.
BAD EXAMPLE: look at this moving ball I made in 5min. (make sure you post actual projects and not small tests)
GOOD EXAMPLE: I created this platformer over the weekend. (Impressive but does not show your skill with working with a group)
BEST EXAMPLE: check out what I did with the last collaboration! (Shows that your last collaboration was a success and this one is just as likely to succeed also)
Where to post:
Once you have written your collaboration proposal it is now time to figure out where exactly to post it. It is important that you post in a forum that generally has members of the skill your project requires. Here are places you might consider:
Codecadmey Groups: the people here are relatively young and are still learning, although many of them would be very happy to join a collaboration of some sorts.
HTML5 Game Dev forums: many people here are roughly in their 20s and 30s and are quite skilled but most of them aren’t looking for any sort of collaboration unless there is money involved. Link: http://www.html5gamedevs.com/forum/6-collabs/
GitHub: one of the best places to find collaborations of all skill and age levels Link: https://github.com/
*If You Know Of Any more Sites Please Tell Me *
• Get absolute control of who you want to ask to join
• Possibly quicker startup time
• Great for private collaborations
• Suited for small collaborations
• Sometimes hard to get a hold of people
• Person might not be interested
• You need to know a lot of people to get a decent sized collaboration going
Just like getting together a collaboration on a forum it is important that the person you are contacting sees that your project is worthy of his/her time and effort. To contact someone directory it is important that you have their contact details such as their email. It is also important that you think the person would be interested to help with the project in the first place. In this guide we will be focusing on contacting through email. Here is a guide to help you along.
make sure your subject is catchy and concise you have to speak curiosity so the receiver is lured in. Mention the most important details first.
if you do not know this person very well it is important to use “Dear” or “To” but if you already familiar with this person it is okay to use “hello”. Or even just write their name with a comma ex: “Susan,”
make sure you are to the point. Write shorter active sentences instead of long passive sentences. Take out “and” to form two sentences. Give the eyes a rest. Create brief paragraphs to break up text. A solid block of text can be discouraging to read.
make sure to use “Best,” “Regards” or “Sincerely,” followed by your full name. Do not use “Cio” or “cheers”.
Rules to go by:
• Use proper spelling and grammar
• Avoid abbreviations
• Never pile up exclamation marks!!!
• If you have important points to make regarding email content, simply quote the selected text and respond in the line below.
• Avoid Emoticons such as 🙂
• Make sure your letter is under 2mb (you only have to worry about this if you have images or files attached to your email)
Other resources when writing an email:
Now that you have all your members, it is time to get to work! Here are some tips on making sure that everyone is productive.
Make Sure Everyone is On the Same Page-
This is the most important thing that needs to be done for your team to be successful. Make sure that everyone has the same goals. If everyone is working on what they think will make the project better and not working as a whole, there will be many conflicts within the group. To fix this, you need to discuss your long and short-term goals of the group also, how you are going to go about them and who is assigned to what.
Everyone needs to know what he or she is assigned to and when he or she needs to be done with what they are assigned. It is also important that all the code that is submitted to the project works and is formatted correctly if not they need to know where they can get help to fix the problem.
Be open about everything-
If somewhere in the project you are stuck or don’t know something don’t be afraid to ask your group. Just because you are the leader of the group does not mean you have to seem the smartest or most talented member of your group.
Hold Effective Team Meetings-
Make sure each team meeting is a productive one; before you start a meeting make sure you have a purpose for it. Another good tip is to set an agenda. This way you can measure the success of each meeting.
More tips for effective meetings: http://thebuildnetwork.com/team-building/brainwriting/
How to create an agenda: http://www.omafra.gov.on.ca/english/rural/facts/05-037.htm
What to do if your project begins failing-
sometimes a collaboration is not successful either because one your important members quit, team members lose excitement for the project, you didn’t plan ahead enough and many other factors. To fix this it is important to get together with your group and see if your collaboration can be repaired. Often collaborations that fail at one thing can continue in other forms. Sometimes relationships established in collaboration can lead to new collaborative effort. Check out this website to see things you need to watch out for during your collaboration: http://www.hunter.cuny.edu/socwork/ecco/coalition_project/j.htm
Congratulations! You have finished your collaboration! Now it is time to spread the word about what you have made. Here are some sites you can use to promote your creation:
• Best Codecademy Projects – why not share your work right here at Codecademy and get reviewed by your peers. Link: http://www.codecademy.com/groups/best-codecademy-projects/about
• HTML5 Game Dev forums – If the project you made was a html5 game than this is the perfect place to post. Link: http://www.html5gamedevs.com/forum/8-game-showcase/
• SourceForge – If your project happens to be an open source application this is one of the best places to put it.
• Bloggers – if you know any bloggers that would be interested in your project make sure to contact them and they might feature a blog on your team’s work http://www.rocknrollbride.com/2013/08/10-ways-to-make-all-bloggers-want-to-work-with-you/
• Create a website- make sure you have a home page. Where you can keep your project and any news or updates to it.
How to create a website: http://www.codecademy.com/groups/html-projects/discussions/5167394881c2702060000d1f
• Ads – if your collaboration was for commercial purposes then you might want to buy some advertisements. Link: http://www.google.com/adwords/?sourceid=awo&subid=ww-ns-g-awhp_nelsontest3_nel_p&clickid
I hope that by now you have a good idea how much thought and dedication that goes into a collaboration. The main point I want to leave here is that collaborations are not for lazy people, most of the time it takes 10x more work to do a collaboration than it is to do it yourself. Being in a collaboration is probably the most enjoyable thing. Because you are making not only your dreams come true but also you get to be part of something larger than yourself.
Thanks for reading. I hope that this can be part of the growing list of tutorials on “Web Development Tutorials”. >>
*Also I am looking for more sites to put in the “Where to post section so if you have any suggestions please tell me.