New Timesheet Next Gen Website Launched

December 14th, 2008

This is just a quick post to say that this website is now defunct. We have moved to our new home:

http://www.timesheetng.org

We have also moved the bug tracker to http://bugs.timesheetng.org (all the login details have been copied so you should still be able to log in) and are in the process of moving the wiki to http://wiki.timesheetng.org

Please pop by and say hi

Thoughts for Timesheet NG

April 12th, 2008

As you may have noticed I’ve been a bit “off the radar” over the past couple of months. My apologies for that. It seemed that as soon as I wanted to settle down and start work on Timesheet NG a whole load of work came in, keeping me occupied for the last few months. To top that off I have exams for my degree (final year!) in May. Oh, and we’re moving country!

But all this time not spent on Timesheet NG has allowed me to think about Timesheet NG: what I think it is, could be and direction it should go. So here are just my thought, I would appreciate your comments on them.

Firstly I want to try and establish what Timesheet NG is not (or shouldn’t become)

  • Timesheet NG is not a project management solution - there are plenty of other PMs out there, such as dotProject, web2project, PHProjekt etc.
  • Timesheet NG is not an invoicing and accounting system - have a look at Bamboo Invoice
  • Timesheet NG is not a CRM system - SugarCRM
  • Timesheet NG is not an organiser, planner, address book nor issue tracker

So what is Timesheet NG?

Quite simply Timesheet NG is a way of tracking time spent on specific tasks.
Timesheet NG has two core functionalities:

  1. Tacking the users’ time
  2. Generating a report of what the users spent their time on.

That is the core of its functionality, and as such what this project should focus on. We need to make Timesheet NG the easiest way for users to be able to record the time they spend on tasks, and allow them to easily generate a report of this recorded time.

So what will this mean for Timesheet NG?

The way I see it, assuming the above statement to be true, the current incarnation of timesheetphp is upside down!

For a user to track a task they have to create a client, then create a project, then create a task, and then (and only then) can they start tracking and recording their time.

The very first thing a user should be able to do when they first install Timesheet NG is to record their time! So the flow needs to be more along the lines of:

  1. Start the timer
  2. [work]
  3. Stop the timer
  4. Select which task the recorded time was spent on, or create a new task that this time was spent on

Once the users have tracked their time, then they can generate reports of it as usual.

As I’ve said above, Timesheet NG is not a project management system. However, to track any time currently you have to enter client, project, task. But what happens if user already has a project management tool, or even an issue tracker that dictates what tasks they have to do. Are they really going to enter the details again into Timesheet NG, just so they can record and report their time spent on the tasks. I personally can’t be bothered to do that, and we shouldn’t force the users to either. Instead we should allow Timesheet NG to use the current tasks/bugs/milestones/whatever from the other systems the users currently, er, use.

Integration

Using the other systems as a basis for the tasks within Timesheet NG will obviously require integrating with the likes of dotProject, Trac, Mantis, Bugzilla, WebCollab), etc. This will most probably be quite tricky to get right, however, I think the benefits to Timesheet NG will be that we get to focus on the two main functions of the project (time tracking and reporting). As we’ll be focusing on just these two functions, it will enable us to really get these right, exactly as the user would want them.

However, what if the user doesn’t already have use a PM or issue tracker?

I still think we should have the client/project/task system, but not as developed or feature rich as full blown project management systems. We need to really focus on our core functionality. I personally think that we shouldn’t restrict the user at all. If he/she wants to track the time for a project on Web2Project, fine, the next day if they are working on a bug within BugZilla, great, we can handle that, next day, just a simple bit of work not in any PM tool, no probs, once you’ve tracked your time, just let us know what it is and we’ll report it for you when you need us to.

User Management

Next is the issue of user management. Currently the struture is that you have admins and others. Admin can obviously do adminy type things on top of the usual tracking of the time. Normal users can’t.

Now I think I’m going to be controversial here, but why not - it’s a long post and if you made it this far you might need waking up!

Scrap it!

Yep, that’s right - get rid of it, it’s an old-fashioned, out-dated way of doing things (plus it’s hierarchical and a systematic display of oppression by the bourgeois elite!…. Sorry, going off into college-Marxist mode there)

But how will managers be able to report on the time spent working by employees? Good question, but run with me on this one.

Instead of having admin/others system, replace this with a “network” style system. Each user is responsible for their own time, their own set up (what tasks they are connected to etc) so they have full control of the way they want to do things - link into PM tools, keep it self contained, whatever. The allow users to be able to “share” or “network” their timesheets together - similar to Google Calendars I suppose. This way managers can network with employees, see what they’ve been working on and generate reports. “Employees” on the other hand can share their timesheet with their manager, but only share specific tasks, projects, clients worked on. This way a freelancer (for example) can have one timesheet that he shares with multiple employers, but those employers only see the stuff to do with them.

Obviously this will need some fine tuning, and will have to respect the privileges of other PM systems, but as an idea, please let me know your thoughts.

Cripes, long post - I’m now off to enjoy the sun in Berlin
Cheers
Rob

Sorry for lack of work

February 21st, 2008

Hi everyone.

My apologies for a complete lack of focus on this project over the past week. Things have really kicked off at work since the start of February, and to top it all off my girlfriend and I are in the process of moving to Berlin!

Better to be busy than bored is what I say!!

Have fun and hopefully when things have died down I can refocus on Timesheet NG

Thanks

Started Hacking Timesheet Apart

February 5th, 2008

This evening I started to hack apart Timesheet.php to begin to turn it into Timesheet Next Gen!

First thing is to make sure it can tun under PHP 5, and after a few bits of tweaking I managed to get it running with pretty much the same code (just lots of making sure full <?PHP ?> tags were used etc.

I next looked at the state of the database connection, and as it is currently using the plain mysql_* functions from PHP, I decided to switch it to using the ADODB database abstraction layer. I fiddled around with this, but I don’t think it will be possible to add it to all the old stuff. Instead, however, it will be much easier to convert all the main functionality (users, projects, tasks etc) into a much more OO approach, and in doing so, start to use the ADODB abstraction. So I think this is the next step.

This new development branch has been named 1.5.x, as opposed to the legacy support development branch 1.3.x. More information on these can be found on the wiki.

Also, I’ve been looking into some way to automate the whole release process, as it’s a bit long winded as far as I can see. Did a search and found a good article on automated PHP deployment using Capistrano, might come in handy!

Sunday evening thoughts

February 3rd, 2008

It’s Sunday evening and I haven’t been able to do much work on either the development of Timesheet NG nor the website, having spent half my time working and the other half watching the Six Nations on the BBC. However I’ve finally pulled myself round to doing some work for this project.

There seems to be much to initially sort out before coding can even start on either support for legacy versions of Timesheet.php and new development for the NG, and that’s what I’ve been trying to do (essentially messing about with the web site).

I’ve also been thinking a lot about the new version, and what it should consist of. I’m a big fan of keeping the underlying PHP code and HTML display code completely separate, so using a template engine (may be Smarty?) is a must in my opinion. Also, we need to bring the code up to scratch in PHP5, and seeming that PHP6 is looming on the distant horizon, developing it using OOP is also (IMO) a must.

However, the big draw back on both the above “musts” are that it will probably need a complete re-write, and I’m pretty adverse to that (as are others). If a re-write is needed however, the development might be quite slow and that “release early, release often” mantra is something I’d like to stick to!

[ about 1/2 an hour later ]

I’ve had a good look at the bits of code for the old Timesheet.php project that I didn’t really know, and I think it might well be possible to bring it up to OO and PHP5 with out too much hassle (famous last words). I might even give it a bash tonight!!
For those of you who still have a weekend left, enjoy it.

Welcome to the Timesheet Next Gen Blog

February 2nd, 2008

Hi Everyone, I have just set up the new Timesheet Next Gen blog.

Stay  tuned for the latest news about Timesheet Next Gen!

Thanks

Rob

Hello world!

February 2nd, 2008

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!