I have been around a fair while with the online scene, and I have been a member of various teams and a team leader on some extremely successful and unsuccessful projects so I thought I would share my thoughts about this.
Online teams/Virtual teams/Sceners lots of buzzwords surround these kinds of people but what exactly are they?
Well they are people who write and collaborate on online projects such as applications and computer games, some form permanent/semi permanent teams and approach several tasks. Some of these teams each member works as an individual submitting tools and programs while sharing source code with only other team members, then the program is released as a team project. Others actually have a managed team each person performing a part of the programming then a lead programmer putting it all together.
Which way is best? Well the best method I have found is the following:
Initial idea > Brainstorm > Design > Workflow > Handout tasks > Code > Document > Combine > Test > Release >
Each of these sections can flow back into any section before it creating a development flow eventually each flow back will stop until the project is no longer supported, this cycle on an ongoing project should never end there will always be balancing, extra features, new supported operating systems, etc to implement.
So what are each of these sections?
- Initial idea
This initial idea is the start of the project someone comes up with an idea a rough layout of what they want to do and grab peoples imaginations.
- Brainstorm
Brainstorming is the part where you expand the initial idea, this will be kept going long after the release stage of the project for an online collaboration the best way is to create a forum, a place where members of the team and friends can come together and throw ideas around the best ideas are then grouped together ready to build a design.
- Design
The design stage is where you sit down and chat with the design members of the project and the developers and one person talks to them all together going through the ideas for the project and working out the best way to implement each part, then the designer will draw up a design document and produce specifications for each part. Also make sure you outline what programs you will work with and your coding conventions!
- Workflow
The work flow decides what tasks need to be completed before other tasks, it is no good asking an artist to do a final drawing before the sketches are done right? This part often does flow back and forth through out development between the “Code” and the “Design” section as things are altered often to do with time, money or technology constraints.
- Handout tasks
This part is in essence the implementation of the workflow, often using an event manager to time line tasks a flow diagram also works and once a section is completed it can be used to start work on the next section, sometimes a problem arrises here team members aren’t available for this part of the project where as the person who would take the section after them are but this is where you need prompt decision making do you take out that person and find someone else, or do you let someone who maybe isn’t as skilled or perhaps on another task do it increasing their workload and increasing development time.
- Code
Several important things to remember during the Design stage you have already decided your conventions and what you should do with the code, try to make each persons task as simple and as abstract as possible hand out functions to program with desired input and output of the function, the lead programmer will receive all this and implement it.
- Document
With EVERY function there would be at least 1 line added to the program documentation to state what it does its definition where it is defined and what it is used for also include the function in the document after the description and if needed the design documentation too, also in here should be a full description of all media included their formats and format details and structure also UI design limitations and any problems found on the way by anyone and if they have been fixed or not.
- Combine sections
This is the lead programmers task, he combines all the functions written by everyone else all the sections all the media all the documents and often goes back to the programmers for alterations to the code, it is important that the original programmer if possible makes the alterations because if they then later submit an update to a new lead developer they may overwrite anything added afterwards, to further avoid this the project should make change notes for every change past the original creation.
- Test
Once the program has been finished it is time to test it out, hand it out to each programmer and ask them to test their part of the program as it is implemented and usable, and recheck everything every time something is added. Eventually you will get a fully working BETA product you can then have people BETA test it for you and make changes were needed.
- Release
Congratulations you have released the product make sure everyone who worked on the product is duly noted and make sure you have backups of everything.
Technology and general hints you can make use of:
Forums: The best one I have found is phpBB it has a lot of useful plugins for this sort of work including chatrooms, event timelines and other project management applications.
Teamspeak/Ventrillo: TALK TALK TALK talk properly not just in chats this is the major downfall of a lot of teams meetings should be done on voice and someone take notes type them up and publish them, also record meetings too so if anyone couldn’t attend then they can still listen afterwards.
Email: Get everyone’s email address, make a mailing list and keep people up to date with forum news weekly highlighting important topics sometimes if needed daily.
Getting team members: Find people who are like-minded on forums all over the internet add your advertisement to everywhere have a place to submit a team application and give an aptitude test! Most internet team leaders don’t do this but it is a must you don’t want someone saying they can do this and that if they can’t add up, make sure your test isn’t to hard make sure it only covers the basics with a few advanced questions thrown in to ascertain their real level.
Keeping team members: Make sure they don’t loose interest, keep them interested with emails, updated from other members encourage them to write a blog about their progress this can be later used for marketing your product.
Staying in control: The project manager must must must stick to his project managers job, don’t step on to many toes don’t start saying I can do this I can do that do your job let others do their job and congratulate them. What also is important don’t make yourself seem more than you are worth if you do you might just find a mutiny or people just leave you on your own.
The right members: Make sure you have the right members to start the project there is no use starting a 3D game if you don’t have a 2D or a 3D artist because you could get 4 months in and still have no one, build the team first then do the design you will need their input to get the project off the ground.
Don’t think this will make you rich: In fact MOST projects like this will actually cost you money, try to keep everything as free as possible, host the website on the cheapest Linux or windows hosting you can find even at home using dynamic dns keep costs down, well unless your rich.
For game development: Make tech demos for alpha with a design document before approaching companies as a Homebrew web-based team, without them you just won’t get looked at and if your not careful your ideas might get stolen.
Copyright: Make sure anything you put in the public view has a copyright notice, also if you take and store ANY ones details make sure you comply with the data protection act of the country you website is hosted in AND if you are a registered company the country you are based in.
Last of all if you lose focus look back at the roots of the project and remind yourself why you started it bring it back under control if your leading the team you need to lead and keep leading or it will fall apart fast.
HAVE FUN!
