457

Working as a freelancer, I often see strange requests from my customers, some of which can negatively affect my daily work¹, and others trying to set some sort of control. I usually encounter those things during preliminary negotiations, so it's easy enough at this stage to explain to the customer that I do care about my work and productivity and expect my customers to trust my work.

Things were much harder² on a project I just accepted, since it's only after the end of the negotiations (the contract has already been signed and did not mention anything about video tracking) and after I started to work on the project that my customer requested that I record a video of all I do on my machine when working on his project, that is, a video which will show that I move the cursor, type a character, open a file, move a window, etc.

I work in my own company, using my own PCs.

I answered to this customer that such request cannot be accepted, since:

  • Hundreds of hours of work on a dual-screen PC will require a large amount of disk space for the recorded videos. If I don't care about space, I do care about this customer wasting my bandwidth downloading those videos.
  • Recording a video can affect the overall performance and decrease my productivity (which is not actually true, since the machine is powerful enough to record this video without performance loss, but, well, it still looks like a valid argument).
  • I can't always remember to turn the video recording on before starting the work, and off at the end.
  • It may be a privacy concern. What if I switch to my mails when recording the video? What if, to open the directory with the files about this customers project, I first open the parent directory containing the list of all of my customers?
  • Such video cannot be a reliable source to track the cost of a project (I'm paid by the hour), since some work is done with just a pencil and a paper (which is actually true, since I do lots of draft work without using the PC).

Despite those points, the customer considers that if I don't want to record the video, it's because I have something to hide and want to lie about the real time spent on his project³.

How to explain to him that it is not usual practice for freelancers to record videos of their daily work, and that such extravagant requests must be reserved for exceptional circumstances⁴?


¹ The most frequent example is to be requested to work through Remote Desktop on a more-than-slow server which uses a more-than-slow Internet connection, or to be forced to use outdated software such as Windows Me without serious justification such as legacy support.

² In fact, I already did a lot of management and system design related work, which is essential, but usually misunderstood by customers and perceived as a waste of time and money. Observing the concerned customer, I'm pretty sure that he will refuse to pay a large amount of money for what was already done, since there is actually zero lines of code. Even if legally I can easily prove that there was a lot of work undertaken on the design level, I don't want to end my relation with this customer in a court.

³ Which is not as risky as it could be, since I gave this customer the expected and the maximum cost of the project, so the customer is sure to never be asked to pay more than the maximum amount, specified in the contract, even if the real work costs more.

⁴ One case when I effectively record on my own initiative the video of actions is when I have to do some manipulations directly on a production server of a customer, especially when it comes to security issues. Recording those steps may be a good idea to know precisely what was done, and also ensure that there were no errors in my work, or see what those errors were.

First update

Since the question attracted much more attention and had many more answers than I expected, I imagine that it can be relevant to other people, so here is an update. First, to summarize the answers and the comments, it was suggested to (ordered randomly):

  • Suggest other ways of tracking, as shown in Twitter Code Swarm video, or deliver a "short milestone with a simple, clear deliverable, followed by more complex milestones", etc.
  • Explain that video is not a reliable source and can be faked, and that it would be difficult to implement, especially for support.
  • Explain that video is not a reliable source since it shows only a small part of the work: a large amount of work is done without using a computer, not counting the extra hours spent thinking about a solution to a problem.
  • Stick with the contract; if the customer wants to change it, he must expect new negotiations and a higher price.
  • Do the video, "but require that the customer put [the] entire fee into an escrow account", require a lawyer to video tape all billable time, etc., in other words, "operate in an environment void of trust", requiring the customer to support the additional cost.
  • Search for the laws which forbid this. Several people asked in what country I live. I'm in France. Such laws exist to protect the employees of a company (there is a strict regulation about security cameras etc., but I'm pretty sure nothing forbids a freelancer to sign consciously a contract which forces him to record the screen while he works on a project.
  • Just do it and send the videos: the customer will "watch a few ten second snippets of activity he won't understand", then throw those videos away.
  • Say no. After all, it's my business, and I'm the only one to decide how to conduct it. Also, the contract is already signed, and has nothing about video tracking.
  • Say no. The processes and practices I employ in my company can be considered as trade secrets and are or can be classified.
  • Quit. If the relation starts like this, chances are it will end badly sooner or later. Also, "if he's treating you like a thief - and that is what he's suggesting - then it's just going to get worse later when XYZ feature doesn't work exactly the way he envisioned".

While all those suggestions are equally valuable, I've personally chosen to say to my customer that I accept to do the videos, but in this case, we must renegotiate the contract, keeping in mind that there will be a considerable cost, including the additional fee for copyright release. The new overall cost would be on average three times the actual cost of the project. Knowing this customer, I'm completely sure that he would never accept to pay so much, so the problem is solved.

Second update

The customer effectively declined the proposal to renegotiate the original contract, taking into account the considerable additional cost. He agreed to continue the project without video recording.

The project continued without video recording. Eventually, the customer seemed satisfied by the final result and cost, so the video recording was not mentioned again.

peejay
  • 167

22 Answers22

481

You don't explain; not further, not at all. You just say no.

This is your business, and your choices about how to conduct it are not up for discussion. The terms of any contract are up for discussion; before signing, that is.

He's giving you multiple big red flags that this contract will be a miserable experience, that it will continue to be so even after you've billed for it, and that he will have nothing but mistrustful things to say to others about your work. Smile, because you're fortunate that he's communicated this before you're stuck with the jerk.

Thank him graciously for his time, return his deposit, and kick him to the curb.

Really, he's never going to be persuaded of your professionalism no matter what you tell him.

cczona
  • 516
401

(Or, the flip-side of my previous advice...)

You stop giving protestations, and say yes.

"Yes, I would be happy to write a new contract for these additional deliverables. Project-complete tutelege in my proprietary tradecraft is valued at (value of my projected income for the next $N years). There will also be a licensing fee $Y, for physical file ownership rights. If you would like to also own the video's content, I'll get back to you shortly with an additional fee for copyright release."

Lest you think that preposterous: seriously, what price makes it worthwhile to risk your business?

  • A competitor could use that video to criticize, mimic, or undercut your practices.
  • The client could edit it to make you look dishonest.
  • You've sacrificed the potential to monetize your business through video tutorials if he chooses to post excerpts of this one for free (or heck, what if he sold them?).

Value of a work product is not equal to the value of (work product + expertise + work processes)

An employer gets to own and direct all of these. A client only gets to ask "Do you offer__, and if so what do you charge for it?"

So, yep, these are reasonable terms for accommodating an unreasonable request.

BUT unless he accepts those terms and without further howling, I still say a flat "no" is the most persuasive you can possibly be that what he wants is infeasible.

cczona
  • 516
82

I wouldn't deal with this guy, period. It sounds like simply doesn't understand that much of the job is thought. If you supplied him with the video he's going to nitpick all the time you spend ignoring him (thinking about the situation.)

59

I think the biggest problem (other than having an insane customer) is that the arguments you make are weak:

  • Hundreds of hours of work on a dual-screen PC will require a large amount of disk space for the recorded videos. If I don't care about space, I do care about this customer wasting my bandwidth downloading those videos.

Disk space and bandwidth really shouldn't be a concern. You'll bill both of those at a significant markup in addition to the hourly rate you already negotiated.

  • Recording a video can affect the overall performance and decrease my productivity (which is not actually true, since the machine is powerful enough to record this video without performance loss, but, well, it still looks like a valid argument).

It's not a valid argument because, as you admit, it's simply not true. It may be a plausible argument, but you're trying to build trust with this client rather than undermine it, right?

  • I can't always remember to turn the video recording on before starting the work, and off at the end.

Counterargument: How are you keeping track of the time that you bill? You should be marking time when you start and stop, not trying to figure out how many hours you worked after the fact. Just make the video part of your process.

  • It may be a privacy concern. What if I switch to my mails when recording the video? What if, to open the directory with the files about this customers project, I first open the parent directory containing the list of all of my customers?

You should be able to handle that. Don't switch to your personal e-mail when you're supposed to be working on the project. Use an alias to get to the project.

  • Such video cannot be a reliable source to track the cost of a project (I'm payed by hour), since some work is done with just a pencil and a paper (which is actually true, since I do lots of draft work without using the PC).

Your billing process should be a separate matter. If there's a requirement for video of all billed time, that should absolutely have been part of the original contract. So you're right on this point: the video is not the source of billing.

The best argument, IMO, is simply that recording every second will make you feel like you have someone watching over your shoulder all the time, and that's not something you're comfortable with. If your client doesn't trust you to work and bill in good faith, he or she should pay for what you've done and find a new contractor to finish the work (with the understanding that very few professionals would work under the required conditions).

Caleb
  • 39,298
54

The client doesn't understand software development if he thinks he needs a video of your work. A good programmer will generate the most value for the customer when they don't appear to be doing anything with the computer at all. Maybe he'd like you to start billing extra for those times when you invariably think of a solution to a problem during your personal time, or while browsing Stack Overflow looking for something else.

The privacy issue (your personal e-mail being recorded) alone is enough to flat out refuse this request.

mootinator
  • 1,280
28

Do it but require that the customer put your entire fee into an escrow account; otherwise, how will you know he will pay you?

The escrow account should be created by a lawyer who will video tape all billable time spent on the contract.

The client must record all time spent approving the software. Preferably one video file per requirement.

If you're going to operate in an environment void of trust, you may as well go all the way.

Maybe you can just have a Nanny-Cam taped to the top of your head?

JeffO
  • 36,956
23

Yeah - absolutely not. My first instinct is to walk away - at such an early stage of the process, if he's treating you like a thief - and that is what he's suggesting - then it's just going to get worse later when XYZ feature doesn't work exactly the way he envisioned. Not doesn't work to spec, doesn't work to what he thought the spec should be.

If you absolutely can't walk away (we all have rent to pay), I'd suggest forcing the client to confront the monetized burden of his request. Create a set-up where all your concerns are solved. If he wants to pay for a dedicated machine, so there's no potential breech of information between other clients, the storage necessary to record said hours upon hours of video, and the administration support costs necessary for processing said video, then perhaps consider it. But if he wants you to document all your work, on video, for free - no way.

Fomite
  • 2,656
21

"How to explain to him that it is not an usual practice for the freelancers to record the videos of their daily work, and that such extravagant requests must be reserved to exceptional circumstances"⁴

Ask your customer: if you were an employee and not a contractor, would he stand over your shoulder and watch your work all day, every day? The answer is obviously no. It is a waste of time (yours and his) to record everything that happens on your screen.

You need to address the root cause of the problem. Your customer apparently doesn't trust you and thinks you are ripping him off. Since you've already quoted him a likely and a maximum price, you need to tell him: "You signed a contract based on a known price. That's how much it is going to cost you regardless of what you perceive my productivity to be."

Give him an option to buy out your contract based on the time you've spent so far. If he is that concerned about you ripping him off, he might consider that sunk cost to be worth it.

Joel Brown
  • 2,398
20

Why would you bother accepting a contract with such a pesky customer? If they don't trust you before you've committed to the deal it's not going to get better.

It's quite possible your customer has been burned in the past, and that's something you can sympathize with, but you need them to understand that programming is intellectual work, and time at keyboard isn't necessarily reflective of work product or value generated.

I've seen that certain low-end freelancing sites like odesk have software that they encourage freelancers to use which samples occasional frames from your desktop and allow the companies you engage with to see this video, but for me that seems at best a means to prove that you're not spending all your working hours browsing news and entertainment sites. It certainly can't prove whether you're "working" or not until the software can read your mind.

Sane customers will tolerate any of the following as a means to build trust:

  1. A short milestone with a simple, clear deliverable, followed by more complex milestones. Offer the option of canceling future milestones if the cost or results don't meet expectations.
  2. Lawyer-style billing with work items documented with the resolution defined at an agreed increment (6 minute, 15 minute, 30 minute, 1 hour), presented frequently (weekly or monthly). Ability to cancel future work at any time.
  3. An upper limit on hours for any specified work item, after which you agree to discuss any revised estimates based on the new facts that come to light (car mechanic style).

Once you establish a track record with a sane client, you won't need Orwellian monitoring techniques to make them happy. If you present yourself professionally and you can deliver the value the customer needs on a timely basis, nobody will care whether you were typing code at 80 wpm or thinking.

Personally, I prefer to work on projects that timebox deliverables (What can we achieve over the next 3 weeks or 4 weeks), and work on improving velocity as my team gets to know the business problem. In such a case, the customer has the ability the constantly reevaluate whether you're making forward progress or not and whether you're worth the money. I suppose this is why I work as an independent contractor than as a freelancer, and I tend to take on complex business problems rather than things with a "make me a web page" kind of scope, but in my world nobody worries about seeing what's on my screen every waking minute. If a customer had time to review every minute of video generated they'd have a pretty poor performing business.

JasonTrue
  • 9,041
16

Even if you are working as a freelancer, you need to maintain your work ethics and culture. If possible ask your customer to find another developer. Never entertain such requests.

RPK
  • 4,378
  • 11
  • 43
  • 66
12

I've run a consulting firm (12 people) and been a freelancer for 16 years. I've dealt with many, many sizes, shapes, and kinds of firms.

Believe me on this one: any firm that makes such a request has control & trust issues, and this can only end badly. The relationship is already precarious, I would even say damaged.

If you have the luxury, I'd consider running away from the client & the project as fast as you can. If financial or contractual concerns take "firing the customer" off the table, I feel for you. As others have said, this is a new contract: negotiate more money, etc. or just say that you cannot continue under any terms not stipulated in the original contract.

Some of the best business decisions I've made in my life have been when I've fired unreasonable/extremely difficult/impossible to satisfy customers. Doesn't happen often, especially now (my radar is more finely-tuned than it was when I started), but you have to know when to "cut bait".

Radian
  • 797
9

Is there any room for a compromise?

Maybe you could provide the client with repository logs or a local file history (as provided by Eclipse, I guess there are also stand-alone tools for similar tasks out there). This might satisfy them while not affecting your actual workflow too much...

9

It's very simple. The answer is no. The negotiations are done.

If he is concerned that you are going to rip him off, then you can find another way to satisfy his concern. With milestones, payment schedule, delivery of source code for him to inspect, etc.

If you can't find a way to satisfy him in a way that makes sense for you, then don't do the job. This world is filled with millions of clients which are less trouble and more sane. Kick him to the curb now before he causes trouble later.

One of the main benefits of freelancing is that you choose who you work with. You don't work with every person who says that they will pay you. You work with who you want to work with. If you don't like them then tell them no.

B Seven
  • 3,155
8

I'd simply argue, that it is not feasible. The biggest concerns are the privacy, and intellectual property of your company and other customers; and the fact, that time spent at the whiteboard, in a meeting, etc. is not recorded.

Sometimes you may need to consult a book, ask someone in IRC or even here, on one of the Stackexchange sites. Sometimes you need to make a call, talk to on-site admins in data centers, etc.

What if the video leaks into the internet, or gets otherwise stolen? In case he doesn't believe you, you could offer code metrics, and have them scrutinized by a 3rd party expert. This however, will add significantly to the cost, if not doubling them.

If he can't understand this, and can't be convinced otherwise, I wouldn't work for him at all. That kind of employee supervision is forbidden by law in Germany.

Before you start working on the project, you'd make a complexity analysis of the main identifiable sections of your project. Those will tell you the man-hours you need to implement or integrate parts of the program. If you stay around that time frame, there is nothing to argue about.

Lawyers, bankers, etc. work in a similar manner. They don't video-blog themselves when they do work for you either...

polemon
  • 337
7

Using a program like AutoScreenShot, you can easily make a (sped-up) video of the development process.

It doesn't take up that much space (one small ~80kb jpeg every 30 seconds), and you don't have to worry about turning it off because keeping it on helps with all sorts of things (proving the time it took to develop, if need be; going through your day to see all the things you wasted time on; etc).

I keep it on all the time. A month's worth of PC use takes up about 3GB (after which it automatically gets deleted).

6

Many people have come up with valid arguments (including yourself) to try to dissuade the client from requesting this video. But you needn't concern yourself with such things.

Businesses all operate differently. They have different processes and practices they employ to gain an edge, or just generally generate an income. All these practices fall under what is commonly known as "trade secrets" or "classified information" depending on your region.

These secrets are protected by law (check your region for more details) since a business' competitive edge, and thus livelihood, rest on them.

Let's take an example: Apple Inc. They have the most stringent security of any company in existence. They take the protection of their trade secrets with the utmost seriousness. One way they protect their secrets is to issue NDA (non-discolure agreements) to many that do business with them. Even iOS and OS X developers sign these agreements. This ensures that whatever bit of information that is not made publicly available will remain classified. Now imagine asking them to produce video of how they make their products. You'd be laughed out of their offices.

Recording the process by which you write code and design programs most definitely falls under classified information.

You needn't explain yourself to the client—they obviously don't have a good understanding on how business works. Simply inform them that you will not reveal your trade secrets (for obvious reasons) under any circumstances. They can then choose to end the contract or carry on with the work. But what's important here is not that they'll smear your good name or label you "shady" (I'm sure any intelligent person would balk at such an lunatic demand), but that you protect your business.

In closing, the protection of trade secrets are implicitly protected by law. They do not need to be included in your contract or reaffirmed in writing.

None
  • 101
5

Personally, I think it's a terrible idea. It's highly unlikely that your customer will watch the video, and if this is the level of micro-management you're getting now, then the amount of micro-management you'll get later is bound to increase. Unless you need this work, I would run away now.

peejay
  • 167
seanyboy
  • 269
4

The problem is, you've chosen with your customer that you will be payed by hours, not by effects. This is very attractive to programmer usually, because he need not to analyze, how much the development will take and he takes no risk of under-estimating the costs.

Otherwise, however, the problem is you will actually earn less if you do your job faster. It gives no motivation to make things quick done. From the customers point of view everything is OK as long as he sees the progress and the total cost will not exchange the amount of what he 'thought it would cost'.

Propably this amount was exceeded and now the customer thinks you're billing him for more hours you actually works on the project. He pay you for hours, and when he questions the hours specified, you have to prove him that you've worked f.g. 100 hours, and not 50. In fact, pay-for-hours is not as attractive settlement method for developer as it would see on begin.

3

Well, I agree with @cczona on both her answers. Also, I'm here to suggest an alternative, besides the video thing:

What if you suggest him that you can keep track of what you've been doing?

I.e. you make a log in (when you start working every day) and a log out (when you stop it, i.e. you could just take note of the hours you spent working that day). Besides, you write a little abstract containing your work-day, your accomplishments and so on, the topics you moved inside the code. Exactly what you did for that day, point approximately how much time you spent in each step. That's a little reasonable and wouldn't cost you so much disk space, nor privacy, nor the negative points listed by @cczona, since you receive your payment by the worked hours.

As a professor, I work with a system where it's mandatory to note the beginning and the ending of the classes, as well as an abstract of them...

If you're up this alternative, and he accepts it, then it's ok. Otherwise, just say farewell.

Good luck!

cczona
  • 516
Girardi
  • 101
2

Just to add another view, which is much easier, for your next request in line of this one:

Use a scm (like git) like you always do with your projects (right?). Hand over an export of the full repository, including the history, on delivery. This will be

  • cheap in terms of time (you already do it)
  • cheap in terms of disk space
  • easy to make an overview of (number of commits, dates between commits, graphs etc)
  • easy to look at steps in "the wrong direction"
  • easy for you to cover up steps in the wrong direction (merging and rebasing in git terms) but still keep the time log correct

The rest that's on my mind has already been said.

chelmertz
  • 101
0

As a freelance software developer in modern times, this is becoming a more common request than I would have expected if I hadn't experienced it. Having been the contractor offering work I have even had strong reasons to make these requests, in fact the reasons for requesting video or image footage of the remote development environment are as valid now as they were 20 years ago.

  • If you do not like it, do not accept the contract.
  • The customer should provide a means both to do the recording and a location to store the data, it is reasonable to ask for any costs to be reimbursed or that the contract rate is inflated to cover them.
  • If this is a trust issue, then the Customer should have no issues explaining their policy or requirement, if you still do not agree, again, you do not have to accept the work.

Much of my work now is through a site that forces periodic screenshots while you work on the clock. These screenshots are used primarily by the site to detect activity, but fulfill a general desire from the customer to know what is going on. This site is very popular and a lot of people gave up complaining about this a long time ago.

You would normally negotiate the terms of your billable time, how much time can be spent responding to emails and or research and how much is expected to be active coding. The video or image stream can be a proof that you are abiding by those terms and of course that you are not engaging with other customers or other projects at the same time. If you don't like it, then do not accept the contract, there are plenty of us that don't have anything to hide that will accept the work.

A video feed can be used to build trust, in this industry trust is not implicitly given, it must be earned. You also need to consider that there are many nefarious actors in the freelancing space, while you and I are doing the right thing, there are plenty of people doing the wrong thing, so much so that over the years that there has grown a general distrust of our profession and the damage that we can cause that the customers might be powerless to prevent or recover from without our help.

There is also the case of freelancers delegating out to other freelancers or employing the assistance of mentors or peer programmers/reviewers. The problem when this happens is that the original customer has not vetted nor established an NDA with these new third-parties. It is an easy way for a bad operator to gain higher privileged access into a network, codebase or database than they would normally have had access to. There is no knowledge of their contributions and no recourse to raise disputes, embargos or any legal actions.

The other consideration is other stakeholders in the data and or the software and IP that you will be accessing to complete your tasks. This is a power struggle, to complete your work you may need high privilege access and they can only take your word for it that you promise to do the right thing. So your customer has their own rights and responsibilities to protect the interests of the other stakeholders as well, these might even be their customer base.

There can be a lot at stake, if you are doing the right thing, a video or image feed will protect you, if you are not, it should expose you. So in the interest of building an evidence based history of your trustworthiness while you have access to your Customer's IP and core business ideas, its not really too much to ask.

-1

a really simple solution.

tell him everything the above people have told you. BUT, at the end, tell him, YOU trust him. and you WILL DO exactly as he asked. and you will not charge him a cent more.

BUT!

you want a video recording of everything he does since YOU start to work on the project, and until it ends.

basicly you both should have a same time amount recorded.

if he can do that, you will accept he's request.