In this case, it's probably a good idea to fire the customer. These types of outrageous requests don't exist in a vacuum. People like this are very difficult to deal with, tend to be very miserly, and will be a non-stop headache. The customer will question everything you do, why you did certain things a certain way (even if he or she has no idea what they are talking about), etc. Drop kick this customer from your life - it's not worth it.
It may be a difficult client, but I can also see someone doing this out of curiosity: would it work? In a freelance relationship that is just beginning, there is not much to lose.
Historically computers have made micromanagement easier. Think about company vehicles being tracked by GPS. It also enables managers to manage more people more effectively, have a flatter organisational structure. IT people are doing this to others, there is no reason to expect it wouldn't happen to us :)
If the client is 'not worth it' you're just not charging enough. Just work out what your price is and send them a new quote. Don't ever fire a client, that's just silly. Make the client say no.
This is something I actually offer to my clients, and I do it for fun. I guess I was inspired by watching some of Notch's screencaps over a few days.
So I capture it with RecordMyDesktop (I run xubuntu), and run through an ffmpeg script (https://github.com/choptastic/watchmecode) that resizes the video to be the same length as an MP3, and makes an X minute screencap montage for the client.
Then it produces something like this, which I did while working on a specific feature[2] for my sports league management system[1]: http://www.youtube.com/watch?v=Hwn7mfmo0SQ
In my experience, my clients basically find it interesting seeing a snippet of how a programmer works. I had one client who would show the video around in his office like it was the greatest thing since sliced bread. At first, I thought the reaction was sarcastic, but I realized after the 3rd time showing another employee, and his elderly father, that he was just genuinely impressed by it.
THAT SAID, if a client required this of me because they wanted to monitor me (to make sure I'm working or whatever), I'd let them know that "sure, I can do it for the most part, but I have to disable it when checking my email, and any time spend curating the video due to privacy concerns will be billed to you as well."
But if a client asked it of me to satisfy their own curiosity of my workflow (which is unlikely, since I typically just volunteer it anyway), I'd be more than happy to do it.
[1] http://bracketpal.com (homepage is still embarrassingly sparse, as I've been working one-on-one with customers, a landing page redesign and online customers are coming first).
Watching Notch's Ludum Dare videos inspired me to create my first OS X app store app. It takes screenshots at a configurable interval and than creates H.264 encoded video of the resultant timelapse.
Man, I usually just send a detailed report of what I've been up to[1], but this just takes the cake. Really cool idea!
[1] puts the client at ease and ensures they don't bug me while I'm working and also reminds me that I did get things done even when it feels like the whole day just vanished somewhere in a sea of tiny obstacles
Agreed, it can be a lot of fun, and it's also interesting / useful to look back at it after the project is done. Here's a video I made a couple years ago of making a simple iPhone game:
ODesk have time tracking software. This system makes screenshot every minute I guess.
It's very helps when you working with new developers. And you want to know for sure that he works on your project.
As absurd as this situation was, it really doesn't surprise me in the least. Having been an independent consultant for several years, I've had some client requests that were real humdingers. My favorite of all-time (I'm paraphrasing, but this was a real conversation):
Client: We would like a fixed-price bid on this project.
Me: Well, let's talk about your project. What's the scope?
Client: We're working on a list, which will grow over time.
Me: Let's make sure I understand. You want a fixed price for a variable project?
Client: Yes. We're budgeting $5000.
Me: I'm sure I do not understand.
Do you expect the entirety of work to basically be my
bill rate X number of hours = $5000?
Client: We expect you to manage that. The reason we're interested in a fixed-price
bid is because we need to contain costs.
Me: You mean contain *your* costs. Do you think there is any risk
in this project from my side?
Client: Only your time is at risk.
Me: (face-palm)
What's the polite way to tell them "there's not a chance I, or any other reasonable person, would consider this request" and keep the door open to future work? Or is it not worth keeping that door open?
Something I dealt with a lot in oil & gas engineering, and have never personally witnessed in software engineering, is a "change order".
The contract is signed. At this point, if you deliver on your end of the deal, they have to deliver on theirs†. If they want anything other than what is in that contract - additions, changes, removals - you send them a change order. This is a new document for both parties to sign, covering the new request, and comes with its own price tag on top of the contract already agreed.
These are essential when you are engineering an actual physical product, because changing the specification of a natural gas compression plant when it's half built is very, very expensive. Change orders are an excellent tool for ensuring not that scope creep doesn't happen, but that scope creep doesn't turn a profitable project into a loss.
† Of course, practically, no-one wants to take on a client that they will have to sue to get the money from. But you should know where you stand when that contract is signed - you deliver your part, they deliver theirs. You can simply say "no" to additional requests and deliver on the original.
Oh it happens - that is how, certainly in the UK, the large consultancies like Accenture and Cap Gemini make their large profits, especially from Government type contracts.
They know that the customer will inevitably want change, especially with things like a new senior civil servant or politician wanting to "make their mark". At that point they are the only bidder, so no competition to drive down the price, and the client will generally pay whatever they ask - because it isn't their money they are spending.
This is extremely common in corporate software engineering, where a contract specifies exactly what will be delivered.
In practice, those change requests are usually rejected, because the people with control of the money aren't the people using the product, and the customer ends up paying for something they aren't happy with.
A lot of Agile methodologies are a response to this extremely strict change control.
Something I dealt with a lot in oil & gas engineering, and have never personally witnessed in software engineering, is a "change order".
This is commonplace in custom software development in my experience. Having a change control process in place, and negotiating a price-tag for changes to the original contract, happened all the time in my first programming job. We were mainly working for government agencies (municipal and county government), universities, etc., and this was all completely normal.
There aren't change orders per se but usually in one of the clauses in the contract you specify that work outside of the scope (outlined in the contract), once all parties agree, will incur an additional charge or something like that.
PRINCE2, baby. It's heavy-handed, produces mountains of paperwork that you hope to never have to look at again, and allows both parties complete clarity as to what is, and what isn't, in scope. You want to change the scope? Needs a change-request, a re-quote, a re-scope, and it all trickles back into the project plan.
The only problem with this process is that it actively encourages the client to find any shred of loosely worded anything in any specification, and interpret the hell out of it, rather than having to go through change control.
This customer sounds like a bad apple and should be fired, but there is some justification for such an idea.
ODesk enforces the use of their time tracking software for hourly projects. Their staff economist, John Joseph-Horton, has some interesting papers about the justification for this. He argues it is actually in the interests of freelancers to have such a system in place.
Basically, freelancers prefer to be paid hourly (or daily, or whatever), rather than per-project, because clients love ratcheting and requesting endless tweaks otherwise. But clients prefer to pay per-project, so they can predict how much stuff will cost and not have to risk paying for freelancers that pad hours. ODesk's solution removes some of the risk for hourly billing, making it a more acceptable solution for clients, which works out for the benefit of freelancers.
A similar concept is how companies benefit from being able to be sued. Because you can sue them if they screw you around, you feel more comfortable dealing with them.
In my screwing around with oDesk, I've selected flat per-project fees; no snooping and its a lot easier not to worry about hourly fees and angry clients imo.
As a past software manager of a elite team(of super smart people, engineers, phDs) and developer myself:
Never do that, say NO.
Don't try to justify it. Don't lose your time with this person, don't lose emotional energy.
It is one thing to be efficient, another to "look efficient". You can be not efficient but look like you are or the contrary, specially when your client don't have a clue in software.
The reason this customer wants the video is to go against you, as you said, he already does not trust you.
When you do, he is going to go and say: look, you are not working 80% of the time, so I am paying you 20%. Probably he already have plans for doing that.
He probably does not have the money, or the organization changed plans and don't need the software as much as when the agreement was done and wants to backpedal with any excuse.
This is very common on remote work sites like Elance. Elance calls their version WorkView. It's not strange at all and actually beneficial for both sides of the interaction. This is because if you accept an hourly job with WorkView, Elance guarantees you'll get paid for your hours. For the employer it is obviously beneficial as well because you have more piece of mind the worker is actually spending their time working.
The customer clearly doesn't understand how creative work is done and approaches it with a factory mindset where workers are busy with their hands. A large amount of software development work are done in thinking, which appears to be inactivity to the outsiders. A lot of problems are solved while taking showers or driving. Does he want to video record those?
Two approaches for this client:
- Simple say no, and don't waste time trying to reason it with him.
A lot of my work also happens on paper, and I don't share those either, as they are my notes and designs. Anything that needs to be sent on to the customer I transfer to electrons.
This answer is great: "This is the right answer. In business, when someone asks you do something extra the correct answer is "Yes I can do that. It will cost you $X." Make the other person say no if you really don't want to do something. Charge a ridiculous amount for it. Of course, there is the danger that they will agree which is why you charge something that would still be happy with. I would probably want it up-front as well."
The problem I'd have with doing this is that it would be difficult to think of a price I would be happy with.
The customer sounds like the type who would use this video to nitpick everything.
------
On June 1st from 11:03-11:07 you spent your time on google searching for something called an API. I demand you deduct 4 minutes from my bill.
------
Then if you get tired of dealing with it he can trash your reputation and he has edited video to back it up. Let's face it, if someone has hundreds of hours of footage of your work, they can find problems.
The whole thing sounds like a nightmare that could easily spiral out of control.
What is your customer paying you to provide? I've had an issue with "time-based" cost for a long time. I've done freelance work since 2001, and I use time to estimate my projects (very roughly) and even to invoice it (based on what I had estimated for them). Many clients are comfortable with that. On larger projects, I even paid other developers and had them submit their time to get paid. But I have never tracked my own time or outlined it for a client. In fact, with those other developers, I just wanted to know "how much" time they spent so I could pay them. The applications we worked on had the features implemented as requested. The client was happy with what was delivered to them.
While I did not track my time, I often found that I spent less time than I estimated. I say that because my freelance was on some evenings and weekends, and it simply didn't add up to a great amount of time. Once, I had a client over time, that often paid late, and we stopped working together when he had an outstanding bill. Much later, he contacted me with an urgent request. I got up front payment for twice what I estimated. Then I dug into the project and completed it in a tiny fraction of the time it took me to do it.
If you contractually agree to give clients "dedicated time being truly productive towards creating the requested end result", then I suppose you really need to be meticulous about tracking your time and providing records of how that time was used to move the project forward. I'd really rather not get in the habit of selling my time at all. I'm selling my ability to reach your objective, to build what you want to use. We'll define to the best of our ability what I'll be providing to you, we'll agree on the price, and then we'll measure our success on my delivery to you and your payment to me. What happens in between is of my concern, and it is in my best interest to spend my time effectively and perform efficiently.
This is part of a common trap in contracts and employer relationships, which is measuring and paying for the wrong thing. In this case it's time.
Afraid you're being ripped off by a contractor? Write the contract so that you only pay in acceptable increments against the deliverables you want at a price you're happy to pay.
We once had a client request we deploy software across all desktop computers to measure how many keystrokes each user made, how often their screen saver was on, etc. I pointed out that they were already measuring employee activities such as calls answered, customer satisfaction, policies not surrendered (i.e. customers planning to sever their accounts who were retained) etc. why measure and reward activities when you were measuring and could reward results?
Switch from being paid by hour to being paid by task. Client describes a project, together you split it into a list of small tasks, you assign value to each task, client agrees to it, and you get paid by task. Then it is up to you how productive you are..
We're quickly migrating to this model. You have to be (much) better about estimating work, but switching from cost+ to value added pricing really makes better sense (and your margins increase).
>>Warning: mysql_connect() [function.mysql-connect]: Too many connections in /var/www/html/hackertyper/config.php on line 6
DB Error, overload!!!! Crap, system crashed :/<<
Interesting how a single well placed post can achieve so much.
To play the devils advocate here, What if the customer wants to have a blog series on how that product was built? Key software design decisions, features, etc. What if he wanted to run this video by another software developer who only agreed to do software reviews, etc. How different would this from recording a bunch of screencasts on building a product. The customer gets knowledge of the entire build process, from the initial sketches to the final release.
But most if not all of it would be too much to deal with for a freelancer and should at least incur a 3x price increase to deal with the various variables involved.
Seems pretty clear this was not the case, since they told him they didn't believe he was working. I think this is just another point in favor of NOT billing by the hour for contract work. If you are billing for the product delivered, rather than your time, it takes your work habits completely off the table.
This really makes me angry. Not only the fact that there are actually customers out there who demand such outrageous bullshit from their contractors but also that most certainly there are freelancers who put up with that sort of behaviour.
What makes this all the more infuriating is that both the original poster and lots of commenters waste a considerable amount of their valuable time for justifying or coming up with a solution for weaseling out of the contract with the customer while the only reasonable answer to said customer is to bugger off.
[+] [-] downandout|13 years ago|reply
[+] [-] ntoshev|13 years ago|reply
Historically computers have made micromanagement easier. Think about company vehicles being tracked by GPS. It also enables managers to manage more people more effectively, have a flatter organisational structure. IT people are doing this to others, there is no reason to expect it wouldn't happen to us :)
[+] [-] Devilboy|13 years ago|reply
[+] [-] chops|13 years ago|reply
So I capture it with RecordMyDesktop (I run xubuntu), and run through an ffmpeg script (https://github.com/choptastic/watchmecode) that resizes the video to be the same length as an MP3, and makes an X minute screencap montage for the client.
Then it produces something like this, which I did while working on a specific feature[2] for my sports league management system[1]: http://www.youtube.com/watch?v=Hwn7mfmo0SQ
In my experience, my clients basically find it interesting seeing a snippet of how a programmer works. I had one client who would show the video around in his office like it was the greatest thing since sliced bread. At first, I thought the reaction was sarcastic, but I realized after the 3rd time showing another employee, and his elderly father, that he was just genuinely impressed by it.
THAT SAID, if a client required this of me because they wanted to monitor me (to make sure I'm working or whatever), I'd let them know that "sure, I can do it for the most part, but I have to disable it when checking my email, and any time spend curating the video due to privacy concerns will be billed to you as well."
But if a client asked it of me to satisfy their own curiosity of my workflow (which is unlikely, since I typically just volunteer it anyway), I'd be more than happy to do it.
[1] http://bracketpal.com (homepage is still embarrassingly sparse, as I've been working one-on-one with customers, a landing page redesign and online customers are coming first).
[2] The video above is the screencap of the implementation of this feature: http://www.youtube.com/watch?v=zxTfaSfa_dQ
[+] [-] passerinelabs|13 years ago|reply
Here it is: http://appstore.com/mac/ScreenshotTimelapse
Here are 25 promo codes if anyone wants to try it out: http://pastebin.com/K6Xx59jY
[+] [-] Swizec|13 years ago|reply
[1] puts the client at ease and ensures they don't bug me while I'm working and also reminds me that I did get things done even when it feels like the whole day just vanished somewhere in a sea of tiny obstacles
[+] [-] alex_c|13 years ago|reply
http://www.youtube.com/watch?feature=player_detailpage&v...
[+] [-] fixxer|13 years ago|reply
I would do it, but there would be a fee for the hassle and my legal expenses.
[+] [-] fnordfnordfnord|13 years ago|reply
[+] [-] hawleyal|13 years ago|reply
[+] [-] skisly|13 years ago|reply
[+] [-] csense|13 years ago|reply
Alternatively, you could just run multiple X servers.
[+] [-] jervisfm|13 years ago|reply
[+] [-] jroseattle|13 years ago|reply
[+] [-] Avenger42|13 years ago|reply
[+] [-] jiggy2011|13 years ago|reply
I see a lot of tenders on these for fixed price projects with stuff like "winning bidder will receive NDA and project description".
So the seller is expected to bid a fixed price before they know what work needs to be done?
[+] [-] goostavos|13 years ago|reply
[+] [-] ZoFreX|13 years ago|reply
The contract is signed. At this point, if you deliver on your end of the deal, they have to deliver on theirs†. If they want anything other than what is in that contract - additions, changes, removals - you send them a change order. This is a new document for both parties to sign, covering the new request, and comes with its own price tag on top of the contract already agreed.
These are essential when you are engineering an actual physical product, because changing the specification of a natural gas compression plant when it's half built is very, very expensive. Change orders are an excellent tool for ensuring not that scope creep doesn't happen, but that scope creep doesn't turn a profitable project into a loss.
† Of course, practically, no-one wants to take on a client that they will have to sue to get the money from. But you should know where you stand when that contract is signed - you deliver your part, they deliver theirs. You can simply say "no" to additional requests and deliver on the original.
[+] [-] cmdkeen|13 years ago|reply
They know that the customer will inevitably want change, especially with things like a new senior civil servant or politician wanting to "make their mark". At that point they are the only bidder, so no competition to drive down the price, and the client will generally pay whatever they ask - because it isn't their money they are spending.
[+] [-] smackfu|13 years ago|reply
In practice, those change requests are usually rejected, because the people with control of the money aren't the people using the product, and the customer ends up paying for something they aren't happy with.
A lot of Agile methodologies are a response to this extremely strict change control.
[+] [-] mindcrime|13 years ago|reply
This is commonplace in custom software development in my experience. Having a change control process in place, and negotiating a price-tag for changes to the original contract, happened all the time in my first programming job. We were mainly working for government agencies (municipal and county government), universities, etc., and this was all completely normal.
[+] [-] yogo|13 years ago|reply
[+] [-] madaxe|13 years ago|reply
The only problem with this process is that it actively encourages the client to find any shred of loosely worded anything in any specification, and interpret the hell out of it, rather than having to go through change control.
[+] [-] IsaacL|13 years ago|reply
ODesk enforces the use of their time tracking software for hourly projects. Their staff economist, John Joseph-Horton, has some interesting papers about the justification for this. He argues it is actually in the interests of freelancers to have such a system in place.
Basically, freelancers prefer to be paid hourly (or daily, or whatever), rather than per-project, because clients love ratcheting and requesting endless tweaks otherwise. But clients prefer to pay per-project, so they can predict how much stuff will cost and not have to risk paying for freelancers that pad hours. ODesk's solution removes some of the risk for hourly billing, making it a more acceptable solution for clients, which works out for the benefit of freelancers.
A similar concept is how companies benefit from being able to be sued. Because you can sue them if they screw you around, you feel more comfortable dealing with them.
[+] [-] pnathan|13 years ago|reply
[+] [-] forgottenpaswrd|13 years ago|reply
Don't try to justify it. Don't lose your time with this person, don't lose emotional energy.
It is one thing to be efficient, another to "look efficient". You can be not efficient but look like you are or the contrary, specially when your client don't have a clue in software.
The reason this customer wants the video is to go against you, as you said, he already does not trust you.
When you do, he is going to go and say: look, you are not working 80% of the time, so I am paying you 20%. Probably he already have plans for doing that.
He probably does not have the money, or the organization changed plans and don't need the software as much as when the agreement was done and wants to backpedal with any excuse.
[+] [-] lnanek2|13 years ago|reply
[+] [-] ww520|13 years ago|reply
Two approaches for this client:
- Simple say no, and don't waste time trying to reason it with him.
- Just say no to the project and move on.
[+] [-] chris_mahan|13 years ago|reply
[+] [-] rayiner|13 years ago|reply
[+] [-] learc83|13 years ago|reply
The customer sounds like the type who would use this video to nitpick everything.
------ On June 1st from 11:03-11:07 you spent your time on google searching for something called an API. I demand you deduct 4 minutes from my bill. ------
Then if you get tired of dealing with it he can trash your reputation and he has edited video to back it up. Let's face it, if someone has hundreds of hours of footage of your work, they can find problems.
The whole thing sounds like a nightmare that could easily spiral out of control.
[+] [-] neogodless|13 years ago|reply
While I did not track my time, I often found that I spent less time than I estimated. I say that because my freelance was on some evenings and weekends, and it simply didn't add up to a great amount of time. Once, I had a client over time, that often paid late, and we stopped working together when he had an outstanding bill. Much later, he contacted me with an urgent request. I got up front payment for twice what I estimated. Then I dug into the project and completed it in a tiny fraction of the time it took me to do it.
If you contractually agree to give clients "dedicated time being truly productive towards creating the requested end result", then I suppose you really need to be meticulous about tracking your time and providing records of how that time was used to move the project forward. I'd really rather not get in the habit of selling my time at all. I'm selling my ability to reach your objective, to build what you want to use. We'll define to the best of our ability what I'll be providing to you, we'll agree on the price, and then we'll measure our success on my delivery to you and your payment to me. What happens in between is of my concern, and it is in my best interest to spend my time effectively and perform efficiently.
[+] [-] raverbashing|13 years ago|reply
It's not even worth the cost of justifying it.
It's very simple: "I don't do this kind of service"
You'll waste less time that can be put to better usage like getting other customers
[+] [-] scott_w|13 years ago|reply
What's the standard rate? £400/hour for this, including set-up time, transferring the files etc.
The number doesn't even matter - just make it big enough to be worth your while in putting up with such nonsense.
[+] [-] podperson|13 years ago|reply
Afraid you're being ripped off by a contractor? Write the contract so that you only pay in acceptable increments against the deliverables you want at a price you're happy to pay.
We once had a client request we deploy software across all desktop computers to measure how many keystrokes each user made, how often their screen saver was on, etc. I pointed out that they were already measuring employee activities such as calls answered, customer satisfaction, policies not surrendered (i.e. customers planning to sever their accounts who were retained) etc. why measure and reward activities when you were measuring and could reward results?
[+] [-] urza|13 years ago|reply
[+] [-] goofygrin|13 years ago|reply
[+] [-] dexen|13 years ago|reply
[+] [-] deletes|13 years ago|reply
>>Warning: mysql_connect() [function.mysql-connect]: Too many connections in /var/www/html/hackertyper/config.php on line 6 DB Error, overload!!!! Crap, system crashed :/<<
Interesting how a single well placed post can achieve so much.
[+] [-] ameen|13 years ago|reply
But most if not all of it would be too much to deal with for a freelancer and should at least incur a 3x price increase to deal with the various variables involved.
[+] [-] ams6110|13 years ago|reply
[+] [-] BjoernKW|13 years ago|reply
What makes this all the more infuriating is that both the original poster and lots of commenters waste a considerable amount of their valuable time for justifying or coming up with a solution for weaseling out of the contract with the customer while the only reasonable answer to said customer is to bugger off.
[+] [-] TeeWEE|13 years ago|reply
I think most software engineers prefer this. But I'm not sure.
[+] [-] nsxwolf|13 years ago|reply
http://www.youtube.com/watch?v=vO_O4AD1MhI
[+] [-] realdlee|13 years ago|reply
[+] [-] amykhar|13 years ago|reply