Organization and project management have turned into very important skills even for developers. With growing demand for automation and the spread of information, companies are consistently working on new ways to organize, restructure and make data accessible.
If you are a developer, at some point in your career, it is very likely that you have run into trouble with a project running over the perceived time frame and/or original specifications. Everyone in the programming word has heard the horror stories of never ending features and lack of project requirements. I would not be honest if I said this has not happened to me. C'est la vie, as the French would say but I am trying to learn something from it.
Over the past few months, I have started to use several tools to keep track of project requirements/bugs/features, log tasks I have worked on/accomplished, and billing related data (tasks, time, invoices, etc).
After evaluating about 20 open source projects (thank you SourceForge), and some commercial products, I settled on using a open source project called RedMine. Here is the overview of RedMine's features directly from the web site:
- Multiple projects support
- Flexible role based access control.
- Flexible issue tracking system
- Gantt chart and calendar
- News, documents & files management
- Feeds & email notifications.
- Per project wiki
- Per project forums
- Simple time tracking functionality
- Custom fields for issues, projects and users
- SCM integration (SVN, CVS, Mercurial, Bazaar and Darcs)
- Multiple LDAP authentication support
- User self-registration support
- Multilingual support
- Multiple databases support
You can see a full list of features plus screen shots at the Features page.
The nice folks at Lifehacker have put together an excellent little script for logging your daily tasks. The basics of it are:
- You setup the script by editing the .vbs file, create a shortcut to it and setup a shortcut key
- You press the shortcut key and an input box pops up
- You enter the task/item you want to log and the script writes it with a date plus time to your log file
You can find the full details about it and how to set it up at Geek to Live: Quick-log your work day
Keeping Track of Billing Data
There is more than one tool for the job so choices highly depend on features, preference and price. For my need, I have found that a tool will need a least a minimum set of features:
- Keep track of clients and projects
- Log time and description per time spend on project
- Generate invoices for selected time frame
Considering the above, I can recommend a small windows application called Billing Tracker. The pro version costs $89. I am sure there are plenty of free web based applications that fall in this category too.
Bonus - Keeping Track of your Daily Tasks
Even with all the above, keeping on track with your projects and life can be hard. Not everything falls into a project and sometimes you do not want to create the smallest task as part of your project tracking. On the other hand, if you don't write it down, you will forget it, I do.
So here is where a To-Do list comes in. There are many, many free, web based to-do applications. I use Remember The Milk. Some nice features are:
- Offline access (with Google Gears)
- Task categories, lists and locations
- Integration with GMail (only for Firefox with an extension) and Google Calendar
- RSS of your tasks
No matter how you decide to go about it, most important than everything else is your discipline to track and log your work.