A little bit about me. I've never worked in a company and I very recently started freelancing and got my first client. I have about 5 years of solid experience in web development and my priorities are quality, accessibility and following conventions.
The obvious answer here is that you should turn on the tracking software once you start working for your client's project and stop it once you... stop. However, I have a hard time identifying what exactly is considered project work.
Why time bothers me
I've set my hourly rate and me and my client have agreed on a certain amount of hours for my work. I pretty much doubled the time I initially thought it would take me, because I've never set times for myself before. Besides, he gave me examples of what I'll be doing, not the actual thing, not a finished design.
I don't want to work over that set time because we agreed on an X amount of hours, meaning we both expect to pay/get paid a set amount of money. Clocking in more time seems unfair and unproffesional to me.
What I can't figure out
I will now give examples of things that I'm not sure were project work.
Researching and learning how to use new tools. As I previously said, I value quality and I want to implement the best solution, not the one most comfortable for me. Researching - yes, I think finding the most appropriate tool for that project's problem is work on that project. However, if the developer is not familiar with that tool? I, as a developer, am expected to know how to "develop", which includes using various frameworks and tools. Learning to use such seems like a personal endeavor. Even though it's in that project's interest, the client pays for getting work done, not improving my skillset. I mean, he could have just hired someone who already knows how to use that specific tool, instead of paying someone to learn that?
Technical difficulties. Today, I spent 6 hours figuring out why I couldn't establish an SFTP connection with the server host of my client. I tracked 1 hour. Then, I continued working really hard on trying to fix the issue. Computer and router restarts, fiddling with settings, pinging, tracerouting, researching, trying different FTP Clients, posting on Super User... Turned out my IP was banned from the hosting platform for some reason. My client whitelisted it and everything was fine. However, I don't blame him, he didn't know I was banned, and neither did I. I feel like the platform should have put some kind of warning for IP bans in their Access Detail page... I added another 3 hours as offline work and left 2 untracked.
I haven't even started working on the actual project, I'm still waiting for the designer. Yet, 7 out of the 10 hours are already in! Those hours were spent doing things I wouldn't have been doing if I didn't take the project. From my perspective, it's project work. From my client's perspective, it appears the project hasn't progressed. It's worth noting that he didn't complain about anything at all. He's cool.
What worries me is that my client would pay for time spent:
- at zero percent progress
- resolving issues we both had no control over