Working in a team

Some of the team members have expressed that they either haven't got experience in team driven projects. The purpose of this page is to explain the basic principles in order to work effectively in a team as well as trying to minimize the potential risks that occur while working with other people.

Run before committing

One of the most important things is that the source code in the repository stays healthy. Normally this would be checked by a continuous integration system but, unfortunately at the moment we don't have the resources to have one. That means that each one of us has to pay special attention to make sure that changes done by us don't break the source code in the repository.

In order to avoid problems when submitting the code, follow the next steps:

  1. Check out the latest code from the repository.
  2. Compile the latest code together with your changes.
  3. Run the application on your computer making sure you don't see any new errors. There is nothing more exasperating than to find someone else's errors on your machine. Should any one need help regarding errors, then the best way is to create patches and upload them to a support ticket.
  4. Commit your code with detailed comments (preferably these should include the task number you have worked on)

These basic steps should prevent you from messing up the source code at the repository. Nevertheless keep in mind something important: we are using a versioning system. What we mean by this is that even if you break the build for whatever reason, we can always rollback your changes! So there is no reason for not being active and start contributing with code from the start!

Update and Commit often

Updating your source code daily will provide you with a updated copy of the source code. if you wait

As long as your code doesn't break the existing code or prevents the application from running as if your code wasn't there, you should commit as often as possible. Don't wait until you have completed a task to commit all the code at once as this might lead to bigger source code conflicts and will take more time to solve.

Speak up

We all know it is hard to get up to speed in a project where different systems, technologies, frameworks, methodologies and so on are being used. Don't be shy, ask for help but ask in the right place. By this it is meant to use and leverage as much as possible to tools and resources available to the team: forum, mailing lists, wiki, trac, etc... If you ask to individuals about your problems or doubts, the knowledge generated by addressing your concerns is lost (we kindly you ask you to document the solutions you have found on our project tools). That way whenever another team member faces the same problem, he or she will be able to overcome it by following the same solution!

It is also important to note that you can involve yourself as much as you wish. This is an open source project from head to toes, meaning that you can participate in tasks and discussions that might differ from the role you have requested and assigned! If you are a developer that doesn't prevent you from participanting in functional decisions. Do you have a creative spirit? Please be our guest and send us artwork for the project! Do you feel like translating the project to your mother language? Feel free! For obvious reasons we can't afford to pay translators, so translations will only happen if you make them happen.

Keep focused

We are currently discussing the roadmap for the project. We believe that in order to keep the team stimulated we need to achieve goals and the goals are defined in the roadmap. So we need to make sure that we reach those milestones in a reasonable time for the sake of the project's life! If you think you are being assigned tasks you can not cope with, let the manager know so that he or she can assign you tasks that are more realistic. It won't serve a purpose if we don't have a realistic planning in our hands.

On the other side, if you feel you are being underestimated and wish to engage on more demanding tasks, let the manager know. The whole team will be happy to make the most progress possible.

Have fun!

And last but most important: HAVE FUN. This is a voluntary project that you have embraced at your own will. If you don't have fun, if you do things you don't like to do, nobody is going to force you to do them. So it must be you who at your own will accomplishes the tasks you are assigned (or have picked).

At the moment, due to the stage the project is at, the tasks are being assigned to the different members. We are doing so in an effort to match each members preferences (expressed when joining the project) to the work load to be done. Management is composed by humans and as humans they are they can commit mistakes. If you feel you don't want to do a task, it is better to express so. Because we know that if you don't want to do it, in a voluntary project you most probably won't do the task. So don't let the task rot, just express your concerns and ask for another task (if you see a task that you want to do in the list of tasks, just ask for it, we will be happy to assign it to you).