Most of my programming these days involves two other people working together with me on the same project(s). Without these tools, working together would be much tougher. So here are the top three programming tools every team should have.
Tool Number 1: Subversion
If I had to pick only one tool, I’d pick this one. It makes it so easy to have multiple people working on the same project.
Subversion (a.k.a. SVN) is basically code on a server. Whenever people come to work on that code, they do what is called an “SVN Update” which downloads the latest version of the code from the server to their computer. Then they do whatever to the code, and when they’re happy with it, they do an “SVN Commit” which uploads their changes of the code to the server. Every time somebody does a SVN Commit, it doesn’t overwrite the code thats on the server; it just makes a new revision. Additionally, somebody can do an SVN Update on a specific revision, and get some old code off the server. This is useful if somebody adds a ton of code that seems like it works, but later they find out that they broke some major things. Then all they have to do is do an update to the revision before they added the code, and bingo, problem solved!
Read more about subversion here: http://en.wikipedia.org/wiki/Subversion
Tool Number 2: A Ticket Desk
Basically, a Ticket Desk is a way to keep track of what needs to be done on a project, and who needs to do it, and when. Mainly it is used by the project’s boss, who delegates tasks to the other programmers. But if one of the programmers finds a bug, they can post it to the ticket desk too.
When a ticket is posted, it has a title, description, assignee, and state. The assignee is the person who the ticket is assigned too. The state is default to ‘new’. That means its waiting to be worked on. When the assignee is ready to work on it, he sets the state to ‘open’. When he’s finished, and is positive that he’s completed the task, he marks it as ‘resolved’.
Tool Number 3: A Time Card Application
A time card application keeps track of what projects were worked on, when. At the end of a work day, the programmers update their time card via the application, and the boss can look at it and see who’s done what work, and bill/pay the right people accordingly. This is mainly useful for the boss, but can also be rather satisfying for the programmer, to look back and see “You’ve worked 52.4 hours this week”, or whatever.
So those are the top three programming tools you should use. With using all three of these tools together, your programming team will be quicker, and more efficient.