Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've recently switched from being an employee to self-employment. However, on lots of days I spend a lot of time being unproductive and procrastinating. Many of my days look like once described by Joel Spolsky, it takes some time till I can start working.

When I was still an employee in a company, this was part of my working hours. Now, I have the problem that I feel bad about billing my customers the time I'm not really working, but waiting to start working. On the other hand, I wouldn't be procrastinating if I would not work for the customers.

How do you deal with this issue? Do you charge your customers for that time?

share|improve this question

closed as off topic by Walter, Thomas Owens Mar 15 '12 at 14:29

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

Vote to close with no comment; 5 upvotes. If you disagree with a post please provide explanation as to your contentions with the post related to the SE its posted on. – Chris Apr 13 '11 at 16:50
+1 for the great question, and the great link. I enjoyed that read. I feel the same many days. – Craige Apr 13 '11 at 17:25
I'll answer tomorrow.... – user1249 Apr 13 '11 at 17:47
Very closely related:… – NickC Apr 13 '11 at 23:18
This question is not about something exclusive to the software development profession, nor can someone with education and/or experience in software development offer insights beyond what other professionals can. Because of this, it is off-topic. However, you may be interested in The Workplace, which is an Area 51 proposal to provide a home for general career and work environment questions. If you want to discuss this in more detail, feel free to raise it on our Meta site. – Thomas Owens Mar 15 '12 at 14:29

I always recommend a Chess Clock - either a real one or a virtual one.

Its easy to hit a button when your focus shifts, and hit it again when you get back to working on your Customer's project and at the end of the day you can view your totals as to how much time was spent on your project and how much was spent elsewhere.

I had a horrible issue with procrastination and someone recommend this, so I gave it a try and it has really helped keep me on track. I used to go "Oh wow did I really spend a third of my day surfing around on SO/SE!?" and now I can just glance at it and see "OK I've already spent 15min on here its time to get off and back to work"

share|improve this answer
+1, although that's more for the chess clock part, not the fixed bid. – khedron Apr 13 '11 at 17:22
-1 fixed bid, +1 chess clock. I guess we're even. – Rein Henrichs Apr 13 '11 at 17:34
Voting adjusted accordingly. – Rein Henrichs Apr 13 '11 at 18:02
Rachel, I think you shouldn't have edited it. You did say "it's not always possible, so...". Fixed-bidding is an important point of this issue. After all, it's most closely related to how we work when we are full-time-employees. – NickC Apr 13 '11 at 23:20
Browsing SO is not necessarily unrelated to work. It would be fair to estimate a fraction of that as being billable. – H2ONaCl Nov 25 '11 at 6:05

Ask yourself if you are doing mental work or not doing any work at all. What I mean is this: Often I will spend an hour or more thinking about a problem, maybe jotting down some notes or writing some pseudocode in a text editor, or looking at technical sites for ideas/solutions to help me. This time is actual working and you shouldn't feel bad about billing simply because you aren't writing LOC.

On the other hand, I take frequent short breaks for personal knowledge, this isn't related to work at all so I wouldn't bill (the time spent is too short to be billed, but assume it is).

Ultimately though, if your client is happy with your work and you are charging him a reasonable price, it doesn't matter if you bill him for procrastination or not as long as you aren't inflating hours by an absurd amount. The client won't care as long as he gets results without being screwed.

share|improve this answer

Procrastination is your subconscious telling you not to work on what you think you should be working on. Figure out why.

On charging customers: figure out how much they would have had to pay for that custom development if they had called Oracle. Adjust accordingly.

share|improve this answer

You might give the Pomodoro Technique a try. You might try a daily rate.

Don't do fixed bid: it's impossible to anticipate scope and requirement changes, and impossible to predict risk and complexity. Either you or your client will get screwed over. Usually you.

share|improve this answer

You could try charging based on the estimated scope of the job instead. At that point, if you procrastinate, it's costing you, and not the customer; but at the same time, if you work fast, it's benefiting you, and not the customer. This also means being careful about scope/feature creep and making sure that the statement of work is well-defined up-front.

share|improve this answer
Fixed bid contracts are a terrible idea. Have you ever actually tried them? – Rein Henrichs Apr 13 '11 at 16:26
@Rein: No; the closest I've come is hourly with a price ceiling, and I had the benefit of a contracting officer while doing so. We would still eat any costs beyond the cap, so I had to make every hour count (and it came close at the end). The customer and I had an implicit understanding that I was doing my best for the customer and that the scope would change (in both directions) based on the customer's priorities and what was most feasible. But I'll freely admit that it would be hard to duplicate this as a self-employed contractor. – jprete Apr 13 '11 at 16:50
Fixed bid contracts have the same fundamental failing as waterfall process: you can't accurately predict scope and requirements changes at the start of a project, nor can you accurately predict risk and complexity. It's impossible to give an accurate bid and impossible for it to still be accurate by the time you're done. – Rein Henrichs Apr 13 '11 at 16:56
Two weeks ago my client asked me for an estimate. I told them I couldn't. They still used me because I was the only person that knew their system well enough to work on it. – Christopher Mahan Apr 13 '11 at 23:01

I only bill customers for productive work time. I keep a list of start and stop times with a short description of what I was working on. If I'm not working I don't write down the time block. I use the list for billing hours and also to make sure I'm putting in a full day of productive work. Some days it takes me twelve hours to complete eight hours of productive work. I find that the list keeps me motivated to keep working rather than having my daily time card show that I was only "working" for 4.5 hours.

Regarding procrastination, for me it usually is a product of not having a clearly set list of tasks to do. If my list is too abstract I find it difficult to start working. When I realize I'm procrastinating I try breaking down the list into more concrete steps. Wash and repeat until there's something really easy that I can tackle. That's usually enough to get me going on the rest since the entire list is now doable well-defined tasks.

share|improve this answer

Try to negotiate a contract that pays based on what you deliver, not (primarily) on how long it takes you to deliver it.

share|improve this answer

Perhaps you can manage to get paid for the completed product/service, instead for time. Then you can pro- or contracrastinate as long as you please without feeling bad.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.