How To Work In Teams

How To Work In Teams

The first principle is that there must be communication to even have a chance at good communication and good communication is required for a successful project.

Discuss overall design/architecture together

Allocate tasks together; can't always get the fun ones.

One code base! Can explore in your "dev branch", but must work from same base or you have two projects! This absolutely requires an RCS system.

One person cannot do everything. Even if the other(s) do only 20% of the work, that prevents you from putting in 120% time.

Your team member(s) is there to let you "think out loud" so you can organize your thoughts and perhaps solve your problem just by explaining it. Often the other person just has to listen. This has the side-effect that other people learn the basic ideas behind your tasks.

When components/tasks interact in the code, you must discuss the changes. You cannot (a) make an unilateral decision and (b) not tell somebody about the changes affecting their work.

Making notes like a chemistry lab notebook is extremely useful for you and for describing your work to your teammates.

You should agree on a build/integration policy such as "all code submitted to the repository must compile and have passed the unit tests". Work out a software backup policy too.