Can I bill the client for my time learning his system? [duplicate]
Clash Royale CLAN TAG#URR8PPP
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;
up vote
36
down vote
favorite
This question already has an answer here:
As a freelance web developer, should I bill for my learning curve?
8 answers
I'm working on some bug fixes on web project for a client/friend. He has everything set up and working, but called me to fix a handful of bugs.
I've never used his system, I barely know how it runs, how it's organized etc and how everything works together. I'm going to need some time to understand this.
All this has to be paid for by him, generally how much time should be expected to understand his system? Is it uncommon to bill him for say a day or two if all I'm doing is understanding his system?
freelancing billing
marked as duplicate by gnat, Thomas Owens, scaaahu, yochannah, IDrinkandIKnowThings May 19 '15 at 21:50
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
migrated from programmers.stackexchange.com May 18 '15 at 12:37
This question came from our site for professionals, academics, and students working within the systems development life cycle.
 |Â
show 9 more comments
up vote
36
down vote
favorite
This question already has an answer here:
As a freelance web developer, should I bill for my learning curve?
8 answers
I'm working on some bug fixes on web project for a client/friend. He has everything set up and working, but called me to fix a handful of bugs.
I've never used his system, I barely know how it runs, how it's organized etc and how everything works together. I'm going to need some time to understand this.
All this has to be paid for by him, generally how much time should be expected to understand his system? Is it uncommon to bill him for say a day or two if all I'm doing is understanding his system?
freelancing billing
marked as duplicate by gnat, Thomas Owens, scaaahu, yochannah, IDrinkandIKnowThings May 19 '15 at 21:50
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
migrated from programmers.stackexchange.com May 18 '15 at 12:37
This question came from our site for professionals, academics, and students working within the systems development life cycle.
6
@Ewan I disagree tbh. I have worked at a blue chip where I was given 2 months to understand their system. There is so many variables to consider. However, you are right to say that OP needs to charge for his time.
– ham-sandwich
May 18 '15 at 11:57
5
"how much time should be expected to understand his system" - do you really expect the community here to give you an answer about a system unknown to them? It could be anything between an hour or a lifetime.
– Doc Brown
May 18 '15 at 12:09
2
You can (Should?) bill for everything the client is willing to pay for. Though it might be better to hide your "time spent learning how to program" inside something that looks better in the eyes of a paying customer...
– AK_
May 18 '15 at 12:18
7
@Yannis I would say there is a slight, but important, difference. The linked question is asking about time to learn certain generic technologies (like a coding language), whereas this question is asking about time to learn how to use a client-specific system. The former should not always be charged for, but the latter most certainly should be charged for.
– David K
May 18 '15 at 12:54
3
@TheWanderingDevManager Probably someone who, like me, had no idea that there was a freelancing SE.
– reirab
May 18 '15 at 20:41
 |Â
show 9 more comments
up vote
36
down vote
favorite
up vote
36
down vote
favorite
This question already has an answer here:
As a freelance web developer, should I bill for my learning curve?
8 answers
I'm working on some bug fixes on web project for a client/friend. He has everything set up and working, but called me to fix a handful of bugs.
I've never used his system, I barely know how it runs, how it's organized etc and how everything works together. I'm going to need some time to understand this.
All this has to be paid for by him, generally how much time should be expected to understand his system? Is it uncommon to bill him for say a day or two if all I'm doing is understanding his system?
freelancing billing
This question already has an answer here:
As a freelance web developer, should I bill for my learning curve?
8 answers
I'm working on some bug fixes on web project for a client/friend. He has everything set up and working, but called me to fix a handful of bugs.
I've never used his system, I barely know how it runs, how it's organized etc and how everything works together. I'm going to need some time to understand this.
All this has to be paid for by him, generally how much time should be expected to understand his system? Is it uncommon to bill him for say a day or two if all I'm doing is understanding his system?
This question already has an answer here:
As a freelance web developer, should I bill for my learning curve?
8 answers
freelancing billing
asked May 18 '15 at 11:44
Torra
28433
28433
marked as duplicate by gnat, Thomas Owens, scaaahu, yochannah, IDrinkandIKnowThings May 19 '15 at 21:50
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
migrated from programmers.stackexchange.com May 18 '15 at 12:37
This question came from our site for professionals, academics, and students working within the systems development life cycle.
marked as duplicate by gnat, Thomas Owens, scaaahu, yochannah, IDrinkandIKnowThings May 19 '15 at 21:50
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
migrated from programmers.stackexchange.com May 18 '15 at 12:37
This question came from our site for professionals, academics, and students working within the systems development life cycle.
6
@Ewan I disagree tbh. I have worked at a blue chip where I was given 2 months to understand their system. There is so many variables to consider. However, you are right to say that OP needs to charge for his time.
– ham-sandwich
May 18 '15 at 11:57
5
"how much time should be expected to understand his system" - do you really expect the community here to give you an answer about a system unknown to them? It could be anything between an hour or a lifetime.
– Doc Brown
May 18 '15 at 12:09
2
You can (Should?) bill for everything the client is willing to pay for. Though it might be better to hide your "time spent learning how to program" inside something that looks better in the eyes of a paying customer...
– AK_
May 18 '15 at 12:18
7
@Yannis I would say there is a slight, but important, difference. The linked question is asking about time to learn certain generic technologies (like a coding language), whereas this question is asking about time to learn how to use a client-specific system. The former should not always be charged for, but the latter most certainly should be charged for.
– David K
May 18 '15 at 12:54
3
@TheWanderingDevManager Probably someone who, like me, had no idea that there was a freelancing SE.
– reirab
May 18 '15 at 20:41
 |Â
show 9 more comments
6
@Ewan I disagree tbh. I have worked at a blue chip where I was given 2 months to understand their system. There is so many variables to consider. However, you are right to say that OP needs to charge for his time.
– ham-sandwich
May 18 '15 at 11:57
5
"how much time should be expected to understand his system" - do you really expect the community here to give you an answer about a system unknown to them? It could be anything between an hour or a lifetime.
– Doc Brown
May 18 '15 at 12:09
2
You can (Should?) bill for everything the client is willing to pay for. Though it might be better to hide your "time spent learning how to program" inside something that looks better in the eyes of a paying customer...
– AK_
May 18 '15 at 12:18
7
@Yannis I would say there is a slight, but important, difference. The linked question is asking about time to learn certain generic technologies (like a coding language), whereas this question is asking about time to learn how to use a client-specific system. The former should not always be charged for, but the latter most certainly should be charged for.
– David K
May 18 '15 at 12:54
3
@TheWanderingDevManager Probably someone who, like me, had no idea that there was a freelancing SE.
– reirab
May 18 '15 at 20:41
6
6
@Ewan I disagree tbh. I have worked at a blue chip where I was given 2 months to understand their system. There is so many variables to consider. However, you are right to say that OP needs to charge for his time.
– ham-sandwich
May 18 '15 at 11:57
@Ewan I disagree tbh. I have worked at a blue chip where I was given 2 months to understand their system. There is so many variables to consider. However, you are right to say that OP needs to charge for his time.
– ham-sandwich
May 18 '15 at 11:57
5
5
"how much time should be expected to understand his system" - do you really expect the community here to give you an answer about a system unknown to them? It could be anything between an hour or a lifetime.
– Doc Brown
May 18 '15 at 12:09
"how much time should be expected to understand his system" - do you really expect the community here to give you an answer about a system unknown to them? It could be anything between an hour or a lifetime.
– Doc Brown
May 18 '15 at 12:09
2
2
You can (Should?) bill for everything the client is willing to pay for. Though it might be better to hide your "time spent learning how to program" inside something that looks better in the eyes of a paying customer...
– AK_
May 18 '15 at 12:18
You can (Should?) bill for everything the client is willing to pay for. Though it might be better to hide your "time spent learning how to program" inside something that looks better in the eyes of a paying customer...
– AK_
May 18 '15 at 12:18
7
7
@Yannis I would say there is a slight, but important, difference. The linked question is asking about time to learn certain generic technologies (like a coding language), whereas this question is asking about time to learn how to use a client-specific system. The former should not always be charged for, but the latter most certainly should be charged for.
– David K
May 18 '15 at 12:54
@Yannis I would say there is a slight, but important, difference. The linked question is asking about time to learn certain generic technologies (like a coding language), whereas this question is asking about time to learn how to use a client-specific system. The former should not always be charged for, but the latter most certainly should be charged for.
– David K
May 18 '15 at 12:54
3
3
@TheWanderingDevManager Probably someone who, like me, had no idea that there was a freelancing SE.
– reirab
May 18 '15 at 20:41
@TheWanderingDevManager Probably someone who, like me, had no idea that there was a freelancing SE.
– reirab
May 18 '15 at 20:41
 |Â
show 9 more comments
5 Answers
5
active
oldest
votes
up vote
67
down vote
If it costs time, it costs money. The client should provide all the information needed to get started, including documentation of their system if it exists. From experience, it doesn't usually.
There are a number of variables here that both the client and the programmer need to take into account, although this list isn't exhaustive:
- Quality of the code base (inc source code comments)
- The size of the system
- Test Cases covered
However, if it is only small bug fixes, you shouldn't need to learn the system. I would discuss the complexity of using unfamiliar systems and explain that you would need to time to investigate and debug the code that you would need to charge for. Your friend, who is in the business of managing a website, should definitely understand this.
Yeah, you're right. There isn't really too much to understand. This is the first project I've worked on freelancing. Had to do it, or end up homeless. Anyway, I sort of feared it would be some huge system. It is, but there's only one repo I need to work on and I've pretty much found where a few of the bugs are happening. Thank you for your reply :)
– Torra
May 18 '15 at 12:16
7
If there are source code comments, the next question is - are they up-to-date with the code itself? The only way to really know is to analyze it. This is why few/no comments (but great naming and well-crafted code) may be preferable.
– Michael Durrant
May 18 '15 at 12:26
@MichaelDurrant Good point! Thank you for your contribution.
– ham-sandwich
May 18 '15 at 13:10
3
`if it is only small bug fixes, you shouldn't need to learn the system. "shouldn't need to" means "will not have to if the system is well written," not "will not have to." There are many instances where small bug fixes requiring understanding significant parts of the system. If ham-sandwich agrees and modifies the answer I'll upvote, since the rest of the answer is excellent.
– Gordon Gustafson
May 19 '15 at 2:28
2
@MichaelDurrant: This is why I prefer detailed commit messages to comments - you know the context of when they're added in the sequence of changes.
– R..
May 19 '15 at 2:42
suggest improvements |Â
up vote
33
down vote
All this has to be paid for by him, generally how much time should be
expected to understand his system? Is it uncommon to bill him for say
a day or two if all I'm doing is understanding his system?
In order to fix the bugs, you need to understand the system. (Or at least you should understand the system.) In order to understand the system, you need to spend time. You deserve compensation for that time.
You need to carefully craft your estimate/contract so that both you and the client understand these assumptions, and come to a mutual agreement on the compensation.
You need to do this before you start working.
3
Potential caveat: not if you could be reasonably expected to be familiar with the system (because it's so common, whatever). e.g. You call the computer repair guy to sort out some flashy-cursor malware issues; you don't expect to be billed for his time becoming accustomed to your OS.
– OJFord
May 18 '15 at 15:50
@OllieFord The system isn't common. It's bespoke. 2 of the systems use a framework, which has made it easier, but the main one is a bespoke system and pretty large - and not a very well developed one at that.
– Torra
May 20 '15 at 9:50
suggest improvements |Â
up vote
11
down vote
I don't see this anywhere but in comments, so I'll flesh it out:
You should bill for time understanding his specific system. The installation, how the applications interact, etc.; things that are specific to his company or project.
You shouldn't bill time for learning general things - like, say, how to program in C#.NET - unless it's discussed ahead of time. Things that you would normally be expected to know before being selected for the project, for example.
Since you say it's a friend, you might reasonably undertake to do something that's a bit outside of your normal skillset to help a friend out; I would consider then what things the average developer would know in order to be qualified to be hired for the position, and either make it clear to him that you're going to be spending time (and billing time) to learn new protocols or languages, or that you decide to consider it a learning opportunity and not charge for it.
I took the job because I am competent with the given languages. That side of things there's no issue. But to be given a lump of bespoke code, with no documentation, or code comments, and asked to "figure it out" is really the challenge. I'm making moves though, much of the code has been documented and I'm understanding it much more than I did yesterday.
– Torra
May 20 '15 at 9:52
@Torra - One I have been given far to many times myself. I feel your pain. And too often its a dead language that I never put on my resume to avoid getting tasks like this.
– IDrinkandIKnowThings
May 21 '15 at 21:57
suggest improvements |Â
up vote
3
down vote
So in my experience there are two parts to this:
- Spend some time with the client, allowing him to take you through the bugs, taking as many notes as you can (steps to reproduce, functional areas etc). This could be charged, but I'd maybe give this as a freebie.
- Investigation time. Agree a set time (say a few hours/half day) paid, that you use to investigate the issues. From this you can get a handle on how much KT/further investigation you need, so can prepare a real costing for rest of the work. You could (if practical) fix small issues whilst doing this if it's obvious which will show you aren't just charging time for the sake of it.
You probably won't need full KT for bug fixing (new work may be different), but don't be afraid to pad estimates for risk, unknowns, lack of tests etc, the cost is likely to be much higher to both of you if you get it wrong.
Like @JoeStrazzere's answer alludes to, this emphasizes the need for establishing a good working relationship with the client.
– mskfisher
May 18 '15 at 13:43
suggest improvements |Â
up vote
2
down vote
The answer is "yes", but how you charge that time is a more complicated question.
If you're charging them by the hour already, the simplest solution is to include the hours needed to familiarize yourself with the system. Be upfront about this, and ask them for any documentation or help they can provide to make this part go more quickly. Set up a schedule with your friend, with the understanding that everything on the schedule will be billed. Document this as well - especially if you're going to be reporting it on your tax return for this year.
suggest improvements |Â
protected by Elysian Fields♦ May 18 '15 at 20:56
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
67
down vote
If it costs time, it costs money. The client should provide all the information needed to get started, including documentation of their system if it exists. From experience, it doesn't usually.
There are a number of variables here that both the client and the programmer need to take into account, although this list isn't exhaustive:
- Quality of the code base (inc source code comments)
- The size of the system
- Test Cases covered
However, if it is only small bug fixes, you shouldn't need to learn the system. I would discuss the complexity of using unfamiliar systems and explain that you would need to time to investigate and debug the code that you would need to charge for. Your friend, who is in the business of managing a website, should definitely understand this.
Yeah, you're right. There isn't really too much to understand. This is the first project I've worked on freelancing. Had to do it, or end up homeless. Anyway, I sort of feared it would be some huge system. It is, but there's only one repo I need to work on and I've pretty much found where a few of the bugs are happening. Thank you for your reply :)
– Torra
May 18 '15 at 12:16
7
If there are source code comments, the next question is - are they up-to-date with the code itself? The only way to really know is to analyze it. This is why few/no comments (but great naming and well-crafted code) may be preferable.
– Michael Durrant
May 18 '15 at 12:26
@MichaelDurrant Good point! Thank you for your contribution.
– ham-sandwich
May 18 '15 at 13:10
3
`if it is only small bug fixes, you shouldn't need to learn the system. "shouldn't need to" means "will not have to if the system is well written," not "will not have to." There are many instances where small bug fixes requiring understanding significant parts of the system. If ham-sandwich agrees and modifies the answer I'll upvote, since the rest of the answer is excellent.
– Gordon Gustafson
May 19 '15 at 2:28
2
@MichaelDurrant: This is why I prefer detailed commit messages to comments - you know the context of when they're added in the sequence of changes.
– R..
May 19 '15 at 2:42
suggest improvements |Â
up vote
67
down vote
If it costs time, it costs money. The client should provide all the information needed to get started, including documentation of their system if it exists. From experience, it doesn't usually.
There are a number of variables here that both the client and the programmer need to take into account, although this list isn't exhaustive:
- Quality of the code base (inc source code comments)
- The size of the system
- Test Cases covered
However, if it is only small bug fixes, you shouldn't need to learn the system. I would discuss the complexity of using unfamiliar systems and explain that you would need to time to investigate and debug the code that you would need to charge for. Your friend, who is in the business of managing a website, should definitely understand this.
Yeah, you're right. There isn't really too much to understand. This is the first project I've worked on freelancing. Had to do it, or end up homeless. Anyway, I sort of feared it would be some huge system. It is, but there's only one repo I need to work on and I've pretty much found where a few of the bugs are happening. Thank you for your reply :)
– Torra
May 18 '15 at 12:16
7
If there are source code comments, the next question is - are they up-to-date with the code itself? The only way to really know is to analyze it. This is why few/no comments (but great naming and well-crafted code) may be preferable.
– Michael Durrant
May 18 '15 at 12:26
@MichaelDurrant Good point! Thank you for your contribution.
– ham-sandwich
May 18 '15 at 13:10
3
`if it is only small bug fixes, you shouldn't need to learn the system. "shouldn't need to" means "will not have to if the system is well written," not "will not have to." There are many instances where small bug fixes requiring understanding significant parts of the system. If ham-sandwich agrees and modifies the answer I'll upvote, since the rest of the answer is excellent.
– Gordon Gustafson
May 19 '15 at 2:28
2
@MichaelDurrant: This is why I prefer detailed commit messages to comments - you know the context of when they're added in the sequence of changes.
– R..
May 19 '15 at 2:42
suggest improvements |Â
up vote
67
down vote
up vote
67
down vote
If it costs time, it costs money. The client should provide all the information needed to get started, including documentation of their system if it exists. From experience, it doesn't usually.
There are a number of variables here that both the client and the programmer need to take into account, although this list isn't exhaustive:
- Quality of the code base (inc source code comments)
- The size of the system
- Test Cases covered
However, if it is only small bug fixes, you shouldn't need to learn the system. I would discuss the complexity of using unfamiliar systems and explain that you would need to time to investigate and debug the code that you would need to charge for. Your friend, who is in the business of managing a website, should definitely understand this.
If it costs time, it costs money. The client should provide all the information needed to get started, including documentation of their system if it exists. From experience, it doesn't usually.
There are a number of variables here that both the client and the programmer need to take into account, although this list isn't exhaustive:
- Quality of the code base (inc source code comments)
- The size of the system
- Test Cases covered
However, if it is only small bug fixes, you shouldn't need to learn the system. I would discuss the complexity of using unfamiliar systems and explain that you would need to time to investigate and debug the code that you would need to charge for. Your friend, who is in the business of managing a website, should definitely understand this.
edited May 18 '15 at 14:13
Community♦
1
1
answered May 18 '15 at 11:56


ham-sandwich
499614
499614
Yeah, you're right. There isn't really too much to understand. This is the first project I've worked on freelancing. Had to do it, or end up homeless. Anyway, I sort of feared it would be some huge system. It is, but there's only one repo I need to work on and I've pretty much found where a few of the bugs are happening. Thank you for your reply :)
– Torra
May 18 '15 at 12:16
7
If there are source code comments, the next question is - are they up-to-date with the code itself? The only way to really know is to analyze it. This is why few/no comments (but great naming and well-crafted code) may be preferable.
– Michael Durrant
May 18 '15 at 12:26
@MichaelDurrant Good point! Thank you for your contribution.
– ham-sandwich
May 18 '15 at 13:10
3
`if it is only small bug fixes, you shouldn't need to learn the system. "shouldn't need to" means "will not have to if the system is well written," not "will not have to." There are many instances where small bug fixes requiring understanding significant parts of the system. If ham-sandwich agrees and modifies the answer I'll upvote, since the rest of the answer is excellent.
– Gordon Gustafson
May 19 '15 at 2:28
2
@MichaelDurrant: This is why I prefer detailed commit messages to comments - you know the context of when they're added in the sequence of changes.
– R..
May 19 '15 at 2:42
suggest improvements |Â
Yeah, you're right. There isn't really too much to understand. This is the first project I've worked on freelancing. Had to do it, or end up homeless. Anyway, I sort of feared it would be some huge system. It is, but there's only one repo I need to work on and I've pretty much found where a few of the bugs are happening. Thank you for your reply :)
– Torra
May 18 '15 at 12:16
7
If there are source code comments, the next question is - are they up-to-date with the code itself? The only way to really know is to analyze it. This is why few/no comments (but great naming and well-crafted code) may be preferable.
– Michael Durrant
May 18 '15 at 12:26
@MichaelDurrant Good point! Thank you for your contribution.
– ham-sandwich
May 18 '15 at 13:10
3
`if it is only small bug fixes, you shouldn't need to learn the system. "shouldn't need to" means "will not have to if the system is well written," not "will not have to." There are many instances where small bug fixes requiring understanding significant parts of the system. If ham-sandwich agrees and modifies the answer I'll upvote, since the rest of the answer is excellent.
– Gordon Gustafson
May 19 '15 at 2:28
2
@MichaelDurrant: This is why I prefer detailed commit messages to comments - you know the context of when they're added in the sequence of changes.
– R..
May 19 '15 at 2:42
Yeah, you're right. There isn't really too much to understand. This is the first project I've worked on freelancing. Had to do it, or end up homeless. Anyway, I sort of feared it would be some huge system. It is, but there's only one repo I need to work on and I've pretty much found where a few of the bugs are happening. Thank you for your reply :)
– Torra
May 18 '15 at 12:16
Yeah, you're right. There isn't really too much to understand. This is the first project I've worked on freelancing. Had to do it, or end up homeless. Anyway, I sort of feared it would be some huge system. It is, but there's only one repo I need to work on and I've pretty much found where a few of the bugs are happening. Thank you for your reply :)
– Torra
May 18 '15 at 12:16
7
7
If there are source code comments, the next question is - are they up-to-date with the code itself? The only way to really know is to analyze it. This is why few/no comments (but great naming and well-crafted code) may be preferable.
– Michael Durrant
May 18 '15 at 12:26
If there are source code comments, the next question is - are they up-to-date with the code itself? The only way to really know is to analyze it. This is why few/no comments (but great naming and well-crafted code) may be preferable.
– Michael Durrant
May 18 '15 at 12:26
@MichaelDurrant Good point! Thank you for your contribution.
– ham-sandwich
May 18 '15 at 13:10
@MichaelDurrant Good point! Thank you for your contribution.
– ham-sandwich
May 18 '15 at 13:10
3
3
`if it is only small bug fixes, you shouldn't need to learn the system. "shouldn't need to" means "will not have to if the system is well written," not "will not have to." There are many instances where small bug fixes requiring understanding significant parts of the system. If ham-sandwich agrees and modifies the answer I'll upvote, since the rest of the answer is excellent.
– Gordon Gustafson
May 19 '15 at 2:28
`if it is only small bug fixes, you shouldn't need to learn the system. "shouldn't need to" means "will not have to if the system is well written," not "will not have to." There are many instances where small bug fixes requiring understanding significant parts of the system. If ham-sandwich agrees and modifies the answer I'll upvote, since the rest of the answer is excellent.
– Gordon Gustafson
May 19 '15 at 2:28
2
2
@MichaelDurrant: This is why I prefer detailed commit messages to comments - you know the context of when they're added in the sequence of changes.
– R..
May 19 '15 at 2:42
@MichaelDurrant: This is why I prefer detailed commit messages to comments - you know the context of when they're added in the sequence of changes.
– R..
May 19 '15 at 2:42
suggest improvements |Â
up vote
33
down vote
All this has to be paid for by him, generally how much time should be
expected to understand his system? Is it uncommon to bill him for say
a day or two if all I'm doing is understanding his system?
In order to fix the bugs, you need to understand the system. (Or at least you should understand the system.) In order to understand the system, you need to spend time. You deserve compensation for that time.
You need to carefully craft your estimate/contract so that both you and the client understand these assumptions, and come to a mutual agreement on the compensation.
You need to do this before you start working.
3
Potential caveat: not if you could be reasonably expected to be familiar with the system (because it's so common, whatever). e.g. You call the computer repair guy to sort out some flashy-cursor malware issues; you don't expect to be billed for his time becoming accustomed to your OS.
– OJFord
May 18 '15 at 15:50
@OllieFord The system isn't common. It's bespoke. 2 of the systems use a framework, which has made it easier, but the main one is a bespoke system and pretty large - and not a very well developed one at that.
– Torra
May 20 '15 at 9:50
suggest improvements |Â
up vote
33
down vote
All this has to be paid for by him, generally how much time should be
expected to understand his system? Is it uncommon to bill him for say
a day or two if all I'm doing is understanding his system?
In order to fix the bugs, you need to understand the system. (Or at least you should understand the system.) In order to understand the system, you need to spend time. You deserve compensation for that time.
You need to carefully craft your estimate/contract so that both you and the client understand these assumptions, and come to a mutual agreement on the compensation.
You need to do this before you start working.
3
Potential caveat: not if you could be reasonably expected to be familiar with the system (because it's so common, whatever). e.g. You call the computer repair guy to sort out some flashy-cursor malware issues; you don't expect to be billed for his time becoming accustomed to your OS.
– OJFord
May 18 '15 at 15:50
@OllieFord The system isn't common. It's bespoke. 2 of the systems use a framework, which has made it easier, but the main one is a bespoke system and pretty large - and not a very well developed one at that.
– Torra
May 20 '15 at 9:50
suggest improvements |Â
up vote
33
down vote
up vote
33
down vote
All this has to be paid for by him, generally how much time should be
expected to understand his system? Is it uncommon to bill him for say
a day or two if all I'm doing is understanding his system?
In order to fix the bugs, you need to understand the system. (Or at least you should understand the system.) In order to understand the system, you need to spend time. You deserve compensation for that time.
You need to carefully craft your estimate/contract so that both you and the client understand these assumptions, and come to a mutual agreement on the compensation.
You need to do this before you start working.
All this has to be paid for by him, generally how much time should be
expected to understand his system? Is it uncommon to bill him for say
a day or two if all I'm doing is understanding his system?
In order to fix the bugs, you need to understand the system. (Or at least you should understand the system.) In order to understand the system, you need to spend time. You deserve compensation for that time.
You need to carefully craft your estimate/contract so that both you and the client understand these assumptions, and come to a mutual agreement on the compensation.
You need to do this before you start working.
edited May 20 '15 at 11:06
answered May 18 '15 at 12:46


Joe Strazzere
223k106656922
223k106656922
3
Potential caveat: not if you could be reasonably expected to be familiar with the system (because it's so common, whatever). e.g. You call the computer repair guy to sort out some flashy-cursor malware issues; you don't expect to be billed for his time becoming accustomed to your OS.
– OJFord
May 18 '15 at 15:50
@OllieFord The system isn't common. It's bespoke. 2 of the systems use a framework, which has made it easier, but the main one is a bespoke system and pretty large - and not a very well developed one at that.
– Torra
May 20 '15 at 9:50
suggest improvements |Â
3
Potential caveat: not if you could be reasonably expected to be familiar with the system (because it's so common, whatever). e.g. You call the computer repair guy to sort out some flashy-cursor malware issues; you don't expect to be billed for his time becoming accustomed to your OS.
– OJFord
May 18 '15 at 15:50
@OllieFord The system isn't common. It's bespoke. 2 of the systems use a framework, which has made it easier, but the main one is a bespoke system and pretty large - and not a very well developed one at that.
– Torra
May 20 '15 at 9:50
3
3
Potential caveat: not if you could be reasonably expected to be familiar with the system (because it's so common, whatever). e.g. You call the computer repair guy to sort out some flashy-cursor malware issues; you don't expect to be billed for his time becoming accustomed to your OS.
– OJFord
May 18 '15 at 15:50
Potential caveat: not if you could be reasonably expected to be familiar with the system (because it's so common, whatever). e.g. You call the computer repair guy to sort out some flashy-cursor malware issues; you don't expect to be billed for his time becoming accustomed to your OS.
– OJFord
May 18 '15 at 15:50
@OllieFord The system isn't common. It's bespoke. 2 of the systems use a framework, which has made it easier, but the main one is a bespoke system and pretty large - and not a very well developed one at that.
– Torra
May 20 '15 at 9:50
@OllieFord The system isn't common. It's bespoke. 2 of the systems use a framework, which has made it easier, but the main one is a bespoke system and pretty large - and not a very well developed one at that.
– Torra
May 20 '15 at 9:50
suggest improvements |Â
up vote
11
down vote
I don't see this anywhere but in comments, so I'll flesh it out:
You should bill for time understanding his specific system. The installation, how the applications interact, etc.; things that are specific to his company or project.
You shouldn't bill time for learning general things - like, say, how to program in C#.NET - unless it's discussed ahead of time. Things that you would normally be expected to know before being selected for the project, for example.
Since you say it's a friend, you might reasonably undertake to do something that's a bit outside of your normal skillset to help a friend out; I would consider then what things the average developer would know in order to be qualified to be hired for the position, and either make it clear to him that you're going to be spending time (and billing time) to learn new protocols or languages, or that you decide to consider it a learning opportunity and not charge for it.
I took the job because I am competent with the given languages. That side of things there's no issue. But to be given a lump of bespoke code, with no documentation, or code comments, and asked to "figure it out" is really the challenge. I'm making moves though, much of the code has been documented and I'm understanding it much more than I did yesterday.
– Torra
May 20 '15 at 9:52
@Torra - One I have been given far to many times myself. I feel your pain. And too often its a dead language that I never put on my resume to avoid getting tasks like this.
– IDrinkandIKnowThings
May 21 '15 at 21:57
suggest improvements |Â
up vote
11
down vote
I don't see this anywhere but in comments, so I'll flesh it out:
You should bill for time understanding his specific system. The installation, how the applications interact, etc.; things that are specific to his company or project.
You shouldn't bill time for learning general things - like, say, how to program in C#.NET - unless it's discussed ahead of time. Things that you would normally be expected to know before being selected for the project, for example.
Since you say it's a friend, you might reasonably undertake to do something that's a bit outside of your normal skillset to help a friend out; I would consider then what things the average developer would know in order to be qualified to be hired for the position, and either make it clear to him that you're going to be spending time (and billing time) to learn new protocols or languages, or that you decide to consider it a learning opportunity and not charge for it.
I took the job because I am competent with the given languages. That side of things there's no issue. But to be given a lump of bespoke code, with no documentation, or code comments, and asked to "figure it out" is really the challenge. I'm making moves though, much of the code has been documented and I'm understanding it much more than I did yesterday.
– Torra
May 20 '15 at 9:52
@Torra - One I have been given far to many times myself. I feel your pain. And too often its a dead language that I never put on my resume to avoid getting tasks like this.
– IDrinkandIKnowThings
May 21 '15 at 21:57
suggest improvements |Â
up vote
11
down vote
up vote
11
down vote
I don't see this anywhere but in comments, so I'll flesh it out:
You should bill for time understanding his specific system. The installation, how the applications interact, etc.; things that are specific to his company or project.
You shouldn't bill time for learning general things - like, say, how to program in C#.NET - unless it's discussed ahead of time. Things that you would normally be expected to know before being selected for the project, for example.
Since you say it's a friend, you might reasonably undertake to do something that's a bit outside of your normal skillset to help a friend out; I would consider then what things the average developer would know in order to be qualified to be hired for the position, and either make it clear to him that you're going to be spending time (and billing time) to learn new protocols or languages, or that you decide to consider it a learning opportunity and not charge for it.
I don't see this anywhere but in comments, so I'll flesh it out:
You should bill for time understanding his specific system. The installation, how the applications interact, etc.; things that are specific to his company or project.
You shouldn't bill time for learning general things - like, say, how to program in C#.NET - unless it's discussed ahead of time. Things that you would normally be expected to know before being selected for the project, for example.
Since you say it's a friend, you might reasonably undertake to do something that's a bit outside of your normal skillset to help a friend out; I would consider then what things the average developer would know in order to be qualified to be hired for the position, and either make it clear to him that you're going to be spending time (and billing time) to learn new protocols or languages, or that you decide to consider it a learning opportunity and not charge for it.
answered May 18 '15 at 16:24
Joe
8,0322046
8,0322046
I took the job because I am competent with the given languages. That side of things there's no issue. But to be given a lump of bespoke code, with no documentation, or code comments, and asked to "figure it out" is really the challenge. I'm making moves though, much of the code has been documented and I'm understanding it much more than I did yesterday.
– Torra
May 20 '15 at 9:52
@Torra - One I have been given far to many times myself. I feel your pain. And too often its a dead language that I never put on my resume to avoid getting tasks like this.
– IDrinkandIKnowThings
May 21 '15 at 21:57
suggest improvements |Â
I took the job because I am competent with the given languages. That side of things there's no issue. But to be given a lump of bespoke code, with no documentation, or code comments, and asked to "figure it out" is really the challenge. I'm making moves though, much of the code has been documented and I'm understanding it much more than I did yesterday.
– Torra
May 20 '15 at 9:52
@Torra - One I have been given far to many times myself. I feel your pain. And too often its a dead language that I never put on my resume to avoid getting tasks like this.
– IDrinkandIKnowThings
May 21 '15 at 21:57
I took the job because I am competent with the given languages. That side of things there's no issue. But to be given a lump of bespoke code, with no documentation, or code comments, and asked to "figure it out" is really the challenge. I'm making moves though, much of the code has been documented and I'm understanding it much more than I did yesterday.
– Torra
May 20 '15 at 9:52
I took the job because I am competent with the given languages. That side of things there's no issue. But to be given a lump of bespoke code, with no documentation, or code comments, and asked to "figure it out" is really the challenge. I'm making moves though, much of the code has been documented and I'm understanding it much more than I did yesterday.
– Torra
May 20 '15 at 9:52
@Torra - One I have been given far to many times myself. I feel your pain. And too often its a dead language that I never put on my resume to avoid getting tasks like this.
– IDrinkandIKnowThings
May 21 '15 at 21:57
@Torra - One I have been given far to many times myself. I feel your pain. And too often its a dead language that I never put on my resume to avoid getting tasks like this.
– IDrinkandIKnowThings
May 21 '15 at 21:57
suggest improvements |Â
up vote
3
down vote
So in my experience there are two parts to this:
- Spend some time with the client, allowing him to take you through the bugs, taking as many notes as you can (steps to reproduce, functional areas etc). This could be charged, but I'd maybe give this as a freebie.
- Investigation time. Agree a set time (say a few hours/half day) paid, that you use to investigate the issues. From this you can get a handle on how much KT/further investigation you need, so can prepare a real costing for rest of the work. You could (if practical) fix small issues whilst doing this if it's obvious which will show you aren't just charging time for the sake of it.
You probably won't need full KT for bug fixing (new work may be different), but don't be afraid to pad estimates for risk, unknowns, lack of tests etc, the cost is likely to be much higher to both of you if you get it wrong.
Like @JoeStrazzere's answer alludes to, this emphasizes the need for establishing a good working relationship with the client.
– mskfisher
May 18 '15 at 13:43
suggest improvements |Â
up vote
3
down vote
So in my experience there are two parts to this:
- Spend some time with the client, allowing him to take you through the bugs, taking as many notes as you can (steps to reproduce, functional areas etc). This could be charged, but I'd maybe give this as a freebie.
- Investigation time. Agree a set time (say a few hours/half day) paid, that you use to investigate the issues. From this you can get a handle on how much KT/further investigation you need, so can prepare a real costing for rest of the work. You could (if practical) fix small issues whilst doing this if it's obvious which will show you aren't just charging time for the sake of it.
You probably won't need full KT for bug fixing (new work may be different), but don't be afraid to pad estimates for risk, unknowns, lack of tests etc, the cost is likely to be much higher to both of you if you get it wrong.
Like @JoeStrazzere's answer alludes to, this emphasizes the need for establishing a good working relationship with the client.
– mskfisher
May 18 '15 at 13:43
suggest improvements |Â
up vote
3
down vote
up vote
3
down vote
So in my experience there are two parts to this:
- Spend some time with the client, allowing him to take you through the bugs, taking as many notes as you can (steps to reproduce, functional areas etc). This could be charged, but I'd maybe give this as a freebie.
- Investigation time. Agree a set time (say a few hours/half day) paid, that you use to investigate the issues. From this you can get a handle on how much KT/further investigation you need, so can prepare a real costing for rest of the work. You could (if practical) fix small issues whilst doing this if it's obvious which will show you aren't just charging time for the sake of it.
You probably won't need full KT for bug fixing (new work may be different), but don't be afraid to pad estimates for risk, unknowns, lack of tests etc, the cost is likely to be much higher to both of you if you get it wrong.
So in my experience there are two parts to this:
- Spend some time with the client, allowing him to take you through the bugs, taking as many notes as you can (steps to reproduce, functional areas etc). This could be charged, but I'd maybe give this as a freebie.
- Investigation time. Agree a set time (say a few hours/half day) paid, that you use to investigate the issues. From this you can get a handle on how much KT/further investigation you need, so can prepare a real costing for rest of the work. You could (if practical) fix small issues whilst doing this if it's obvious which will show you aren't just charging time for the sake of it.
You probably won't need full KT for bug fixing (new work may be different), but don't be afraid to pad estimates for risk, unknowns, lack of tests etc, the cost is likely to be much higher to both of you if you get it wrong.
answered May 18 '15 at 13:02


The Wandering Dev Manager
29.8k956107
29.8k956107
Like @JoeStrazzere's answer alludes to, this emphasizes the need for establishing a good working relationship with the client.
– mskfisher
May 18 '15 at 13:43
suggest improvements |Â
Like @JoeStrazzere's answer alludes to, this emphasizes the need for establishing a good working relationship with the client.
– mskfisher
May 18 '15 at 13:43
Like @JoeStrazzere's answer alludes to, this emphasizes the need for establishing a good working relationship with the client.
– mskfisher
May 18 '15 at 13:43
Like @JoeStrazzere's answer alludes to, this emphasizes the need for establishing a good working relationship with the client.
– mskfisher
May 18 '15 at 13:43
suggest improvements |Â
up vote
2
down vote
The answer is "yes", but how you charge that time is a more complicated question.
If you're charging them by the hour already, the simplest solution is to include the hours needed to familiarize yourself with the system. Be upfront about this, and ask them for any documentation or help they can provide to make this part go more quickly. Set up a schedule with your friend, with the understanding that everything on the schedule will be billed. Document this as well - especially if you're going to be reporting it on your tax return for this year.
suggest improvements |Â
up vote
2
down vote
The answer is "yes", but how you charge that time is a more complicated question.
If you're charging them by the hour already, the simplest solution is to include the hours needed to familiarize yourself with the system. Be upfront about this, and ask them for any documentation or help they can provide to make this part go more quickly. Set up a schedule with your friend, with the understanding that everything on the schedule will be billed. Document this as well - especially if you're going to be reporting it on your tax return for this year.
suggest improvements |Â
up vote
2
down vote
up vote
2
down vote
The answer is "yes", but how you charge that time is a more complicated question.
If you're charging them by the hour already, the simplest solution is to include the hours needed to familiarize yourself with the system. Be upfront about this, and ask them for any documentation or help they can provide to make this part go more quickly. Set up a schedule with your friend, with the understanding that everything on the schedule will be billed. Document this as well - especially if you're going to be reporting it on your tax return for this year.
The answer is "yes", but how you charge that time is a more complicated question.
If you're charging them by the hour already, the simplest solution is to include the hours needed to familiarize yourself with the system. Be upfront about this, and ask them for any documentation or help they can provide to make this part go more quickly. Set up a schedule with your friend, with the understanding that everything on the schedule will be billed. Document this as well - especially if you're going to be reporting it on your tax return for this year.
answered May 18 '15 at 15:10
Zibbobz
6,68752453
6,68752453
suggest improvements |Â
suggest improvements |Â
protected by Elysian Fields♦ May 18 '15 at 20:56
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
6
@Ewan I disagree tbh. I have worked at a blue chip where I was given 2 months to understand their system. There is so many variables to consider. However, you are right to say that OP needs to charge for his time.
– ham-sandwich
May 18 '15 at 11:57
5
"how much time should be expected to understand his system" - do you really expect the community here to give you an answer about a system unknown to them? It could be anything between an hour or a lifetime.
– Doc Brown
May 18 '15 at 12:09
2
You can (Should?) bill for everything the client is willing to pay for. Though it might be better to hide your "time spent learning how to program" inside something that looks better in the eyes of a paying customer...
– AK_
May 18 '15 at 12:18
7
@Yannis I would say there is a slight, but important, difference. The linked question is asking about time to learn certain generic technologies (like a coding language), whereas this question is asking about time to learn how to use a client-specific system. The former should not always be charged for, but the latter most certainly should be charged for.
– David K
May 18 '15 at 12:54
3
@TheWanderingDevManager Probably someone who, like me, had no idea that there was a freelancing SE.
– reirab
May 18 '15 at 20:41