Negotiating Pay for Open Source Work?
OpenSourceforMoney asks: "For about nine months now I've been working on an Open Source software project; the first release was five months ago. It's reasonably popular given its age -- several hundred users at least (users, not downloads) -- but despite my best attempts, I've been unable to get even a few dollars in donations to help support this (and being a student, I really need to get some money from somewhere). Now suddenly I've been approached by a company which wants to pay me to continue working on this project. How should I handle this? Should I ask for an hourly rate, or should I come up with specific targets and attach prices to each? How much money is it reasonable to ask for, for doing work which I'd end up doing (albeit more slowly) even if I wasn't getting paid? How have Slashdot readers handled the transition from working on a project for fun to being paid to work on it?"
$25 an hour and they provide the hardware. flex time. try and get benefits too.
this sig limit is too small to put anything good h
I'd charge by the hour. That way you can work on it whenever you have the time (I'm assuming you're still a student). Keep DETAILED records of when you worked on it and what you did during those times, so they can't come back later and claim fraud. Good luck!
-jls
Techno-pagan
1. Start open source project.
2. Ask slashdot why I'm not getting paid.
3. ???
4. Profit!
Foschizzle!
They are solid. Either a feature is present and functioning or it's not. No need to quarrel over hours.
Yep, I never spell check.
More incorrect spellings can be found he
Yes I have. I lost interest right away.
I am however not a student and already have a full-time paying job.
There's something about a program being "your baby" and suddenly it being no longer yours.
Which project is it?
Don't forget that if you start getting paid for your work it opens up a whole new slew of responsibilities. You might not be able to slack off as much as you like, etc. It gets harder when you have to answer to someone.
on what this piece of software is, and how valuable it is to them. if it would cost them $20k to design it themselves and would be worth it for them to spend $5k for you to do it, then quote them that. but you need to sit down with them and come up with a approx time which it will be completed, how many hours you'd be putting in, etc. also, is there other software out there that does this, compare what you would charge to what it would cost to buy commercial software. will you be providing support, or development only. there's more than just what should i charge, you need to do a little investigation into what the company wants and what's out there, and how long it would take you to do this
Cyberbite Networks - Web Hosting, Dedicated Servers & Colocati
The way I look at it is that you should charge at an hourly rate requisite with your experience and education. I don't think open source software should be treated any differently than other software projects. That is how it works at my company (generally). We also try to reward contributors who don't work for us on a full-time basis as frequently as possible.
Then again, if the company that wants to retain you balks at that price point, then I guess you have re-adjust your sights....
smd4985
just send invoices to you clients for $699. Some of them will pay without bothering to find out what they are paying for.
New year Resolution: Don't change sig this year
I would ask them what type of support they had in mind.
If they are going to be benefiting from your work (attaching their name to it somehow), it might be good to get a peice of the company. Or profit sharing. Something. Sure the dotcom era has left a lot of people sour about working for shares in a company, but if you believe in the company, it could be worthwhile.
A company will not pay for time that they cannot audit you for. (Forget about filing claims at your local workforce/labor commission to collect for you) The best option is to have them pay on delivery of features & milestones. Well, maybe half up front, and half after b/c you don't want to get cheated and you need immediate motivation & relief. That way is a good way to compensate everyone and build trust between both parties. After a while of doing that, and building a reputation with them, maybe you can move to a different compensation system.
Hourly rate if you can. Projects ALWAYS take long than you think. Fixed price negotiations are generally bad news for "small shops" and individuals. I've got 22 years under my belt, and this is my experience.
--Slashdot: News for Turds. Stuff that Splatters.
From my personal experience: if are a student so there is only a certain amount of hours per week you can work on the project. See how many hours can you work, multiply by how much $$ you want per hour, and go for a salary. much less headache after.
Good luck and happy coding!
The more important the project is to you, the more you should ask. The less it matters (personally) the lighter your demands. As an artist, I charge more for paintings I personally favor. Do not try to negotiate a payment for what you have already given away freely by inflating your offer; you've given it away, and there is somebody else who could continue your work more cheaply. (Even if they are n't looking for one, it leads to resentment, as it's tacky.
Whatever you ask for, choose the offer that leaves doors open for the future. Avoid killing a golden-egg goose. If you are getting paid to pursue what you would do of your own accord, you are getting a good deal. The dream of capitalsim. And if the company you are working for thinks it's a steal to have you develop for them, so be it!
Looks good for your age..
Not that I've ever been in your situation, mind you. My life consists of paid projects I wouldn't choose to develop on my own to subsidize unpaid work on projects I love. Consider anything you get a bonus.
That said, there's no reason to tell your client the whole truth and nothing but the truth. Focus negotiations on the value your software represents to him. If your software is worth more to him than he is paying you to do the development work, the deal will get done. Let him know you would keep working on it for free, and even if he wants to pay you to speed things up, you won't get as much. Let him know that due to other obligations, you were thinking of maybe dropping the project, or at least drastically pulling back on the number of hours you can contribute. Encourage him that for the right price you can afford instead to drop your other obligations and make this product really kick ass, which is of course what you would prefer to do, if only it could be facilitated.
-- ShadyG
Nerd Rock In Progress
Don't hand in final results until you've received payment for a significant part of the project.
Contribute to civilization: ari.aynrand.org/donate
If you're in it for the money you'll do better hourly.
If you just need $x amount of money to keep going and you're happy with that you can bid by the project and do fine.
The man who trades freedom for security does not deserve nor will he ever receive either. - Benjamin Franklin
If they come back with a lower number, maybe a much lower number, then you can weigh what it's worth to you and whether you really want to take it. But negotiate from a higher rate rather than a lower one.
Unless it's personally something so important to you that you want to donate your time, but if that were the case you wouldn't be asking, would you? :)
Good luck.
I'll tell you what the 'effect' is! It's pissing me off!
I wouldn't - I'd charge them a fixed amount for certain functionality. You will both be happier that way, as you won't have to provide timesheets, and they can budget for it much more easily. You're not a salaried employee, or a contractor for them after all. You're just being paid to do some work, and they will want to avoid the bureaucracy (and legal paperwork too)that timesheets entail.
So.. the only question is what's reasonable.. I'd estimate the amount of time required, multiply that by an 'hourly' rate ($25? they won't squeal at that). Multiply by 1.5 just for contingencies. Then do the work.
Your biggest problem with this, assuming that they are paying for defined functionality, is to get that functionality explicitly written down. No way do you want them to withold payment because they say you didn't do what they wanted - some b*stards will change the goalposts as you go, so you'll be working for free, but with added stress, for quite a bit.
If, on the other hand, you're being paid to continue working in general on this project, then ask for a fixed amount periodically. hourly is probably too finegrained, ask for a chunk weekly or monthly, and estimate how many hours you can work on it.
You should bid the project out in it's entirety then sub-contract it to india for 1/5 what they are paying you. :) EVERYBODY WINS!!!!! :)
They get their project
Some indian Programmer gets paid a great wage for his market
You get your cut and can do something else
I think BARE minimum is pushing it there. Its no wonder companies are outsourcing to India. $125/hr is like average to high market place.
"A synonym is a word you use when you can't spell the word you first thought of." - Burt Bacharach
Why are they interested in paying you? Most likely, because they think they have a way to actualize profit from your work. So... what are they bringing to the table? If they're going to make 1000% more than you off this, how are you going to feel about it? Can you actualize profits without them?
Getting backing for your project is awesome. Think before you leap though, about how bitter you'll be feeling later if you get $30/hour for a few months and they make millions down the road....
I'd suggest a smaller hourly rate, and a contract guaranteeing you a decent cut of their future profits from the project.
Don't sweat the benefits and crap. If you're a student, you've prolly already got health insurance...especially if your folks are still listing you as a dependent.
Companies are much more willing to pay big $$$ to someone they don't have to give benefits too...so $50 - $100 per hour may not be out of the question.
Also, if you're only talking a relatively few hours, ask for more. i.e. if it's only 10 hours a week, $100/hour get's you a grand, while 20 hours a week at $50 gets you that same grand...it all looks the same on the company's monthly budget.
You didn't give any indication the size of the project or what the company is interested in. Do they just want to give you money and you work on the project as you see fit or are there specific enhancements they'd like to see? How much work are they asking you to do? Do they want/need these enhancements by a certain date? Are these enhancements going to be rolled back into the main tree for everyone? Are these enhancement modular or is it just one big feature that's hard to break down?
Regardless, I'd probably recommend that you work as a contractor for them. Depending on the amount of work/$$$ they're interested in, you should be able to determine if it makes more sense to be hourly or piece-work. Basically you want to be able to get paid semi-regularly as you get things done so that both you and the company have a good way to measure your progress.
If you understand the amount of work that needs to go into the project to meet the requirements of the company, then you might calculate an hourly rate and multiply by the number of hours. You must seriously ask yourself: how much is your time worth? Never mind that you would do this anyway: the company you're working for is getting a product they otherwise wouldn't have without you.
Realistically, how much do you think your product is worth? What price can the company bear? How much is your time worth? These are all vectors in your decision; the readers here will give their opinions, but only you know what the vectors truly are.
You can have my one-button mouse when you pry it from my cold, dead fingers.
How much money is it reasonable to ask for, for doing work which I'd end up doing (albeit more slowly) even if I wasn't getting paid?
:)
The fact that you enjoy what you are doing should not factor at all into how much you are getting paid. You do not deserve any less than a normal contracted programmmer (who may also enjoy his job as much as you enjoy this). Furthmore, the fact that they have recieved the fruits of your previous work for no charge makes up for the fact that they do not retain copywrite on the code you write for them.
You deserve no deserve no different wage than a normal programmer. Ask for what is competitive. As for specific number values for that I defer to other slashdoters
Get a price in your head that you would be willing to continue to do the work for them - then double it and ask for that. If they agree, great, you just made a killing. If they counter offer they probably won't want to insult you and agree on 130-150% of your acceptable price. Either way you win.
Left 4 Dead Gaming Group - http://www.l4dgg.com
Even though you may indeed deserve far more than the $0 you've been paid so far, you can't expect this one company to foot the entire development bill.
Don't try to charge this single company full price for your work, or the use of your program is likely to become more expensive to this particular company than a competing (and probably more feature-complete) commercial package. If your software's good enough to have attracted hundreds of users and a corporate sponsor, it'll probably become good enough to attract even more sponsors.
What you don't want is for the one corporate sponsor you've attracted so far to come away feeling as though you're trying to saddle them with a development bill that should have been more broadly distributed.
In summary: you're on the right track, but have patience.
You take a big risk if you agree to a fixed price contract. While it might seem like there is potential to make more by working efficiently, it doesn't usually happen that way. Estimating how much time a software project will take is *hard*, much harder than it seems. Even if you have experience making those kinds of estimates you are likely to be significantly wrong -- usually too short. Then there is the question of whether a feature is actually done. Particularly if there isn't a well documented requirements document, there can be a wide gap in expectations.
So you can chop the project into tiny, easy-to-estimate pieces and write up a huge requirements document to manage your own risk, or you can just take an hourly rate and code. I know which I'd rather do...
Viv
Gmail invites for ip
If they are paying you to develop something you should be paid for it just like any other job. If you want to work hourly, work hourly. If you want to do it as a contracted project, do it like that. It's really not different than if you hadn't been working on an open source version.
However, make sure that they understand that you want to keep the rights to the software (if you do, in fact want to retain the rights). Otherwise they might expect you to relicense your existing code and allow them to own your changes.
Everyone's favorite browser has a new preview version out for Windows, Linux, Solaris, and BSD.
For good info start at rate survey then move on to the forums at: realrates.
For a good way to farm out all the "back-office" hassle for like 3% of gross, plus get access to portable benefits, including retirement savings (the best time to start saving is when you are young, the magic of compound interest will handsomely reward you for getting an early jump on retirement savings and it isn't like you can count on Social Security pyramid scheme to be there either) - MyBizOffice.
What the hell makes you think people are going to pay for you to write open source software?
Umm, maybe a company that told him that they want to pay him?
I was in this situation a few years ago, when a company wanted some mods done to a camera-control library I had written and publish on sourceforge. Because they were a well-funded company, I charged them an hourly rate. However, because they were funding an open-source project, and because their changes were fairly small, I was willing to give them a break. I charged $50 an hour - less than half what I would have charged on a project for proprietary code.
I'd suggest you take into consideration who the company is, what they want to do with the code, and what their financial situation is. For example, I wouldn't charge a big, well-established company the same I would charge a non-profit.
Also make sure the company understands who owns the code you produce. Many companies don't understand how open-source licenses work, and might assume that, because they've paid for it, your code belongs to them and doesn't continue to fall under the restrictions of your chosen license. Understand your license fully and make sure the company that's paying understands it too. (Just to avoid disputes in the future, you might want to capture that understanding in your contract, or in a side agreement.)
Don't feel guilty about being paid for doing what you like to do. The whole point of this is that they are making enough money off of your work that they're willing to pay you to do it better/faster/stronger.
It's not like they're going to lose money by paying you do do this. Consider this as both coverage for what you've done so far, as well as the money that the project is going to make for them in the future.
If you think that Perens got minimum wage for the work he did at HP (It was Perens who worked at HP, right?) you've got news waiting for you.
Free Software: Like love, it grows best when given away.
what do you see yourself doing for your career? Are just doing this for money? if just doing for money try and negotiate for cash under the table with set goals for payement. If this is something that will look good on a resume or will fall in line with your career, then go for "position" in the company with benefits, 401K, hourly pay etc.. something solid to put on your resume.
Make sure if coding for the "man" that your work does not become theirs.
Good Luck
Before my easy answer, a not so easy question. How much is your time worth if you were doing contract programming in general? If you have no idea, and you're relatively inexperienced, $25 might be a good place to start.
The easy answer is you should charge $25 an hour for any time spent on implementing features, bug fixes, and changed, that this company requests. This is a job, it's irrelevant whether you would have done the work anyway.
Of course if they ask you to do something that is company specific, or doesn't make sense for the project as a whole, you should probably not put that in the main open source project.
Outside of your job, you can continue to do open source programming, on this project, or on any other.
I think it's great a company wants to pay you to make specific improvements to open source software. I think it's great that an open source programmer is going to make some money through open source.
---
I support spreading santorum
In true geek fashion you say: "G1bb0rz m3 j00r l337 c45h, f4gg0rzzz!"
Trolling is a art,
Make sure it is explicite that the code you write is your Copyright. Make sure the clasue Work-for-hire or anything to that effect is not in there.
The difference is major. If you do it as work for hire, they own it. If you do it and own the copyright, you are building equity.
Open Source Identity Management: FreeIPA.org
if you can convince them to pay you for time and a half during the Simpsons, South Park, and similar cartoons.
You can't judge a book by the way it wears its hair.
A dollar a byte (of code). :)
Make it hourly. Rates, $30-$40.
Important, do not accept anything without understanding your rights to the source and the derivitives they create from it! You might be openoffice.org (example), but Sun is packaging it at $70 per copy.
Make sure it is spell out what they are doing with it.
Make sure they don't gain the right to take you off the project if you don't meet their deadlines for releases.
Make sure that if they see Intellectual Property(IP), i.e. patent potential, that you do not sign your right away. If they are funding you, you could loose your rights to IP they pay to patent.
Make sure you have the right to "hire and fire" and personel they give you.
Talk to a CPA, yours not theirs. You want to make sure you are set up correctly for tax purposes. If this is open source of for profit, you are a business, if you are doing this for the good of mankind and envison your self as a non-profit, there are tax issues on either side of this.
If you are a business, they can loan you a machine. If you are a non-profit, they can donate the machine to the non-profit.
You need to think about what you want in the end.
Make up a spreadsheet of features the clients want, and estimate out the time it would cost for each, and as most do, add a little flex for unexpected details (which, luckily if you are the developer of the initial code, you shouldn't run across too much of).
/. to estimate how much you should charge, without knowing more about the project itself, so the best I can give is this rough estimate. Try to keep in mind that hourly is the easiest as far as getting paid for any extra things that crop up, but the timelogging can be a real pain in the butt, and justifying time over an initial estimate can be too. /. etc etc, so really a per-unit basis might be the best bet.
Then, once you've got that down, you can either estimate your charges based on:
a) Per-unit basis (charge per X feature)
b) Per-hour basis
c) Overall project basis
You can't really expect
For myself, I rarely work straight-through hours on contract projects, but usually stop to grab coffee, check
That way, anything extra they suddenly think of that they want (and if you have ever developed corporate software before, this is more common than not) can be tagged in later, and you can also set cut-offs for various functionality/features.
Also, get paid in installments because sometimes good projects get cancelled by bad budgeting. Thankfully an open-source project at least doesn't die in this scenario, as nothing is worse than watching your "baby" project die at 80% before reaching fruition.
Distros like Slackware, Mandrake, Gentoo and Fedora are quality, and I pay good money to develop them. But not all distros. The most shameful distro out there is undoubebly Debian. Debian is hard to use, ships with out of date software and supports very little hardware because it uses a FOUR YEAR OLD KERNEL!
If Debian shipped with upto date packages in the STABLE versions (read : Kernel 2.4.23, Gnome 2.4, Xfree86 4.3.2, KDE 3.1.6, gcc 3.3.3, OpenOffice 1.1, Scribus 1.1, Gimp 1.3.20, Mozilla 1.5, Abiword 2.0, Gnumeric 1.2, Epiphany 1.0, mplayer 1.0) then I would pay at least $100 for a boxed version. But since they don't, and its quite obvious why they are so behind (read : non-standard package format, the rest of the world uses RPM, which is the LSB Standard, silly politcal arguments, other re invented wheels such as the awful dselect and bootstrapper) I have donated over $300 of my money to real distrobutions such as Gentoo, Fedora, Mandrakde, SuSE. Mandrake and SuSE are ready to launch their new distros soon, and they will ship with the mentioned software versions.
I know some debian zealots want to mod this down (which I'll just repost because its true), but the moral of the story is, people wan't to pay for open source, but they won't pay for crap. Thanks to the wonders of tabbed browsing, I will mod myself up!
Negotiate a contract
Make a rough estimate on how long it will take you to do something, double that, multiply that by $100/hr and ask for that. Offer fixed deadlines for what and when you will deliver. Make sure acceptance test is spelled out. Make the deadlines easy to hit, and deliver early.
If you can't negotiate this, ask for a small fixed price to come up with a detailed proposal - say $100. You should already know approximately what they want. Then spend a day or so going back and forth until you can come to an agreement.
Maybe negotiate a bonus to have it done early.
The key point of your negotiation is who will own the 'work product' when you are done. If it's you, you can release it open source again.
TODO: create/find/steal funny sig.
As a small busisness owner myself there are a lot of potential pitfalls either way you go. On larger projects I prefer to bill by the project, this way if it takes more time than I immagined I'm not pissing off the client, however I loose out in the end, but I increase the possibility that the client will want to do more busisness with me. However on the smaller projects I bill by the hour. This is usualy because the task list from the client usualy is not complete until the job is finished, ie they don't always know everything they want done. However either way they are all charged for any materials used with a 15% surcharge. You never want to loose your shirt on materials. Time does not have a direct monitary cost, materials do, especialy when your budget might be tight.
Also when you bill you should negotiate the terms up front. If you go with net terms tell them what the penalties are for late payments.
Either way you should have some form of a contract with your client. The document should clearly state your expectations from them and their expectations of you. If you expect them to provide you with direction and vision and they don't, they might claim that you were unable to deliver because they did not provide what you were expecting them to. This happened to me once, it sucks! If you put any time deadlines in there, make sure you add to your estimate. Software design is notorious for taking longer than you first expect, after you have done many projects for clients you will get better at guestimating the time and cost.
Hope this helps!
---- Fight to protect your right to keep and arm bears! ummmm... ya I think that's right....
I have a similar project (DataVision, many hundreds of users, 7 languages, over 30 countries). Two different people have paid me $1K each to implement major features.
Transcript show: self sigs atRandom.
This all assumes you're in the U.S. I don't know how it works elsewhere.
.com days too so I'm not sure what you'll find out there as rates now.
You probably won't be able to get benefits as a student unless it's a large or foreign company and without benefits you want to be an independent contractor.
This means you need to negotiate an hourly rate with them. I don't know what level of experience you have but you should try to find people working in the field in your area with a similar level or experience (years working not expertise since companies watch years of service more than anything else regardless of how good or bad of a marker it is) and then undercut them by 30% or so given that you're a student and need money.
I may be missing something important but if you're anything like I was as a student then that worked well for me. I made around $20-45/hour depending on how much I could get from a given client but that was during the
Consulting agencies tyically charge significantly higher rates.
Check the details of the contract, i.e. who can terminate it, with how much advance warning, how conflicts are resolved, who pays for arbitration, if any, who pays for travelling, and so on. I always insist on the company paying arbitration, and paying my travel costs for arbitration, regardless of outcome. It lowers my risk significantly, and I have not yet had any trouble.
Stephan
Canopy group=BAD
SCO=BAD
Others=?
Do they only hire lawyers?
Have they laid off all their programmers?
Do they have a past history of lawsuits?
Do they try to steal code?
I am the unwilling control for my Origin.
1. Charge hourly. Writing software as a contracted consultant is usually over $100/hour. My last job like this was for $125/hour. Being open source, your experience, the company's level of need will influence the per hour price.
2. Complete requirements. The company should give you full requirements documentation upfront outlining all work that needs to be done. Read this document thoroughly and make sure it is complete.
3. Give them a project plan showing the milestones for the features, builds, testing, etc.
4. Be conservative on your time estimates, rule of thumb in software engineering is it will almost always take longer then you think it will.
Whichever way you choose, you've made one thing clear: you only have a limited amount of time to do the work.
Besides pay, you should also consider what happens when:
Contracts are there to define what your responsibility is, and the responsibility of another party. It's important to know what would happen if you were getting close to meeting a target, and the other group backs out - would they still have to pay you? If you were paid hourly, would half-written code be worth anything?
It's okay for two groups to be unhappy about a situation, but if you have forgotten to specify the responsibility of each party, then things get nasy. The worst thing that could happen is the project dies... okay not the worst, but it's up there
$125/hr you're a fool! But if your hiring consultants post your info :) Those rates went away with the last century. You can still get those rates, if you specialize and have about 15 years of experience to back it up. If I were someone with limited if any professional experience I would go around $40-50/hr, unless of course the skills you have are truly unique. Expect to start a fraction of that if you take a full time position.
It is true that some organizations (big ones, with good reps) charge more, but I have worked with several very qualified consultants from medium size firms recently in the $75-90/hr range, in the S.F. bay area.
Track down a GSA schedule for a computer programmer- should be around $70-75 dollars. Thats pretty reasonable, and a perfect way to back up your value... (though the fed. govt isn't exactly the pinnacle of cost management and efficiency).
It seems somehow you feel you should charge less because it is an open source application... I don't know why. If they want to hire a programmer, they will have to pay market value for a programmer.
Not to mention you're like, the author of the application and all.
Here's to finally giving Bush his exit strategy in November
You can't go wrong with hourly. If you try and go fixed price for functionality, there is too much room for error. You can estimate incorrectly. There can be miscommunication between you and the client. There can be a lack of clear goals, if they don't think you have finished, then you don't get paid.
Just charge them by the hour, a reasonable rate for your experience, and keep good notes of what you were doing for those hours.
IMHO
RTF
But isn't open source software supposed to be "free as in beer"?
Part of what you would expect in pay would depend on the license they want. If they want you to dual license the software, (GPL and BSD for example) so they can avoid releasing changes, then I would expect more simply because you are offering them more value, with no requirement that they put back into the community.
I personally don't see a problem dual licensing, but you have to be very careful to not put stuff you added in THEIR licensed version, in your GPL version, or they could get pissed and take action. You would have to decide if its worth the potential risk.
Tequila: It's not just for breakfast anymore!
After you take their money, will they 'own' the code?
Not if you negotiate right. Be SURE that is part of the contract.
negotiate down .
Sounds good to me.
Companies interested in already coded starting points that just need a few more features (most GPL/OSS projects) will have a cutoff point as to where they would:
A. Start from scratch in house
B. Expand upon the source with in house team
C. Bring someone (contract/consultent) in to bone up on the code and fork it to their needs
D. Find a different package that meets their needs
The fact they are looking to the original team to do it means that they are looking for the most efficient (both in knowledge and cost) solution out of the gate.
If the cost remains cheaper than it would be for them to do it "in house" or bringing in a contractor -- then that would be the sweet spot for all involved.
(+1 Funny) only if I laugh out loud.
When you start receiving money to develop the project, is the company still willing to keep it open sourced? If not, you should consider whether you are going to take the money, or keep on working for free on behalf of the community. Either way, make a conscient decision.
of getting payed to be creative in an enviroment geared to quantify "production." So many worthless widgets produced an hour at so much value per widget and such.
You ain't alone. This is an issue that musicians, artists, conventional authors etc. have been wrestling with for centuries.
Your own quandry gives all the evidence needed that there is no clear answer; and where there is no clear answer people on both sides always feel "funny" about the whole thing. Feeling "funny" leads to discontent and acrimony.
Therefore the ideal solution ( which is to say as reasonable an approximation of the ideal as you're ever going to get) is always highly dependant on the very nature of the parties, which is going to be different in every specific case.
Again, as example, you've actually gotten a lot of good advice already, based on real experience of real coders, and a lot of it conflicts. Different parties, different results.
I'd suggest you go to the people who are relevant to this discussion ( the people offering you payment ) and telling them your desires and fears over how to arrange this, ask them their own desires and fears; and then see if you can come to an agreement up front as to how best meet those desires and alleviating those fears.
In short, talk to them kid.
( And a lawyer never hurts. Trust, but verify. You can be damned sure that's what they'll be doing)
KFG
Don't go hourly. Unless you are super-fast, everyone will be unhappy.
We all know how something seemingly trivial can suddenly turn into a time sink when it doesn't go exactly as planned or when your new employer asks for something a little different than what you planned.
So break your project into sections. Define very clearly what the section does--its features, links into other sections, operating platforms, testing process, a timeline for completion, what parts of the scope your new client can define (and when), and any limits.
Going through this somewhat tedious planning and defining part will make both sides of the transaction comfortable with what's being delivered and when--and it allows you both to note any potential problems. It also gives you both something to point to when the project is changed (you can ask for more money) or not delivered according to scope (they can withhold payment).
To price the section, I estimate the time it will take, add 10% because I usually underestimate, and multiply by my hourly rate. That's the fixed price. If it takes me longer, I lose. If I work faster than I expected (ha!) then I win. Usually, I'm right about on time.
(My hourly rates vary based on the type of work but range from 3,500 yen to 10,000 yen/hour. I do love those 10,000 yen/hour jobs but they are few and far between.)
If your section that's going to take months and you need rent money, then work out a payment schedule with target dates for certain key goals within the section.
In the US, contracted work is usually done with a 1099, in other words, you're not their employee so you won't get any benefits and you'll have to pay self-employment taxes.
I run a rather successfull Open Source project. phpBB (bulletin board software, http://www.phpbb.com)
I've had more offers of money then I can shake a stick at. People have offered to pay us for development, sponser our website, and just buy us outright. I've turned them all down. Why? I don't trust corporations...
Ultimatly the people paying you to develop are going to expect something back, and most likly that will be ownership of your code and the right to dictate what you do with it.
If you do accept their offer and take payment for your Open Source work make DAMN sure you're not signing away any of the rights to your code.
"Only in their dreams can men truly be free 'twas always thus, and always thus will be."
--Tom Schulman
Mozilla is alright, and the birds are good too even though not much work is being done on them.
But I still prefer Opera over them all, the development has really picked up lately.
It is often difficult for those who are not used to billing their time to accurately assess the amount of time a feature will take to implement, including time costs such as requirements definition, maintenance etc.
When I started consulting, I took the amount of time I thought something would take and quadrupled it, which seemed to be about right. After many years and much experience, I only double it. However, the point is that even for experienced consultants, predicting time committments is an art frought with uncertainty.
So to prevent yourself from getting into situations where you end up taking four times as much time as you thought you would take and consequently only making a quarter of the rate you thought you would make on an hourly basis, simply charge them on an hourly basis.
A second recommendation is that you not sell yourself short in your hourly rate. As a student, you may not have ever earned $25/hour. However, you have unique knowledge of the product and are doubtless a talented programmer with marketable skills. Don't be afraid to ask a bit higher than you may otherwise be comfortable with and be prepared to negotiate to a midpoint if they balk.
A third recommendation is that as an independent consultant, you document your activities much more thoroughly than you otherwise would. Write down the requirements they specify. Record your hours and what you did during the hours you bill them for. As someone who is not a regular employee, you should endeavor to be able to justify any and all billing questions or other decisions in a way that regular employees would not need to.
Finally (and this is perhaps the most important point), do not let them convince you to sign over your intellectual property as a condition of your employment or take full ownership of intellectual property you create in their employ in a way that compromises your project. Read everything they ask you to sign. Take documents home to read them over, take them to a lawyer, take them to more experienced friends and solicit their advice. If you are uncomfortable with something, cross it out, initial it, and ask a company officer to initial it as well. Everything is negotiable, including intellectual property arrangements.
Good luck!
-- My choice of computing platform is a symbol of my individuality and belief in personal freedom.
I'm uncomfortable charging by the hour, since the clock and calendar do not really reflect my productivity. If I'm not feeling motivated I could take a month to finish a project, or I could complete a month's work in a single intense evening.
Charging by the delivered product just makes sense to me.
It's pretty straightforward - you want all you can reasonably get out of them. They want to pay what's fair, or less if they can... so the intersection of that is, what's it worth to them?
They probably won't want to tell you that - they may not know themselves, right now. But without more information on what your project's about and who the company is (not to mention what work they expect done), it's difficult to speculate on what the value is. It may be up to you to figure out what benefit they will receive from your work, and base your compensation (hourly or package-deal) on that.
How do you do that? I dunno. Track down other people they've funded, or former employees (or maybe just some people lower-down in the food chain than whoever contacted you). Look up their financial reports, try and guess how much your work will affect their business. For example, if you're writing a driver for a product of theirs, find out how many they sell per year and try to guess how many more they'll sell with your driver available. It's probably worth your while to do some legwork.
Or just make it an hourly rate. But I'm not always comfy with them; some days I do a lot more work per hour than others...
Perfectly Normal Industries
you should first discuss budget, i.e. do you have a budget in mind? based on the budget they give you, you can determine whether you want to actually proceed or not. you should still have an idea for what each target should take you time wise, but at least by quoting per target, you won't get nickeled-and-dimed for every minute...
the company who approached you probably sees functionality in you project which is similar to a commercial product. find out if the commercial product IS your competition, perhaps that is one way of determining what value your project has for this company.
if the company has no budget, proceed with caution. open source doesn't have to mean that companies can avoid paying the true value of software, it should mean that they have input in expanding the capabilities.
at the end of the day, it is your project, you have to decide whether you want to give it up, maintain it for someone else, or expand its capabilities with the feedback/input of paying customers.
P.S. $25/hour is too cheap. insurance, workman's comp, unemployment, 401k, etc, all the benefits you don't get because you are a "contractor" should be applied to your hourly charge. if you go hourly, $50-75/hour is a better starting rate.
three can keep a secret, if two are dead - benjamin franklin
If you release your work under the GPL, divide it by 2. If it works on Linux only, and requires extensive patching to run elsewhere, divide again by 2. If you have a stallman-like beard, multiply by 2 and give the now-gained half to the barber's shop.
Please excuse me if this has been covered already. Is this your project, or a project that you simply happen to be participating in? There is a big difference between hiring the guy who presumably knows the most about the product in question, and just hiring one of the (possibily many) people who is in a position to contribute code to it.
I agree with the posters who have cautioned against low-balling yourself. In fact, I know someone (not a coder) who used to get more clients by raising his fees. All the same, make sure you're at least in the right ballpark. The company probably won't negotiate with you if they don't think they can.
I worked at a print bureau in Orlando, We had Macs and PCs :)
......
On a G3 300Mhz vs P3 300Mhz with the same amount of RAM (256 MB)
Running Adobe Photoshop: (We had Graphics speed races on the same image file)
Mac's Rotate large images files faster, slightly.
PC's downsize large images faster. Very much so
Viruses are much more pleasant on the Macintosh (Autostart at the time)
PC's (Win 98SE) network faster that Mac's (OS9)
Macs make nice car crash sound for SCSI bus errors.
Mac's do Pantone colors better.
I prefer Linux to both
I am the unwilling control for my Origin.
If you're the recipient of money, you don't normally want to be the first person to call out a number, so ask the giver of the monies how much it's worth to them. This will also keep you in a reasonable 'ballpark' figures. For instance, if you answered back that it would cost them $150/hr, when they were only wanting to give $25/hr, that's quite a difference and the company may just give up and decide not to pay you alltogether. The same is true if you decide to do it based on features and you say 'Feature X will cost you $5000' and they were only thinking of maybe $500. If you're a busy college student it may be more difficult to keep track of individual hours, so you may want to consider a pay-per-feature plan. It may also be easier for the company to think of paying you by the feature and then they are basically donating lump sums of money to your project.
The moral is to try and get a number out of them first and then negotiate from there. If the number they throw out is completely unreasonable, let them know and (more importantly) let them know _why_ it's unreasonable.
I hope this helps, congragulations and good luck!
Things you think are in the Constitution, but are not.
... but I'm not going to bother, I'm guessing that this entire story is either a troll or a joke. At least, I'm hoping it is.
if you go flat fee, get your requirements up front! make sure they are very detailed about what they want. once that's done, guestimate how many hours it will take to do, multiply that number by three and half. now, mupltiply THAT number by the hourly wage you'd like to get - $25/hour is a good start. if that number is too high or low, adjust accordingly. if the hours are going to be pretty high - over 40, go with a high estimate since it will probably take more time than what you expect.
Well, I think the project was Open Source. Sure, you still should keep the copyright, but you won't be really building equity. If they would own the code, then they still would had to adhere to the GPL, so in the end it won't make much of a difference.
If this is the only thing you'll be doing, figure out your costs, what are your yearly bills, divide by 2000 and you'll get a number you can start with.
If there's enough work to do, incorporate (about 3000, if you do it through a lawyer) and do it as a corporation, you'll be able to keep more of your cash that way.
BUT you need to be careful and CYA either way you go:
If you go for a pay-per-milestone sort of thing you need to make it CRYSTAL clear in the contract what each minlestone is. Make sure that all the features are documented and what they are is well defined. Otherwise, you'll get feature creep. They'll get something and try to wheedle more out of you. Make sure it is spelled out in detail so they know what they are getting for hteir money and they can't cheapskate you because they decide they want more down the road.
If you decide to go the pay per hour route, make sure you keep very detailed records of what your time was spent on. Having some secondary verification like time tracker, and keeping nightly snapshots is a good idea too. Remember that in programming some thigns that seem really simple or have no surface changes can take a long time. Like maybe you have a database driven app and you need to totally rewirte the database backend. The user isn't going to notice any difference, it just needs to be done for the next pahse of the project to work. You don't want them to try and screw you because from their perspective you weren't doing any work.
Basically, have good records either way you go. If it's a pay for what you get done situation, you need to have clear records upfront of what you will be getting done to earn the pay. If its a pay for hwo much you work, you need to have clear records of what you did during that time so you can prove you spent the time doing it. Companies always want more features and would love to get them for free if they can.
Oh, and don't sell yourself short on money. Ask for more than you think you're worth. Don't be insulting or anything, but don't short change yourself. If they came to you, they are interested and won't just walk away without trying to negoiate. Ask and see what they say, they will probably make a counter offer, which you can counter and so on until you both reach an agreement.
I want to know that I can pay you $2K to build me a furtzwangler, and get $3K's worth of value out of it. I don't want to hear about how your PC needed to be reformatted (in my time), or how you looked at a cool new solution to a particular design problem (in my time) or how you had to rearchitect your OO persistence layer using the gesundheit design pattern.
It comes down to risk : software development is inherently unpredictable. Someone is going to have to take a risk - will the features I asked for take 6 weeks, 6 months, or 6 years ? You are in a far better position to estimate the duration of the project than I am, so it's only fair that you bear the risk.
Of course, that assumes that I am not a psychopath who changes the requirements every week and "forgets" to tell you it also has to run on the Amiga platform. That is the risk you bear - you might be able to build the required features in 6 months, but not if I keep changing my mind....
So here's what _can_ work as long as there is an amount of trust between you and the company who want to pay you.
This allows you to reduce your risk by not allowing the client to change their mind once you've agreed your current iteration's scope. As the scope of an iteration is likely to be relatively small, your client does not have to make a big, irrevocable decision about what they want exactly so you can do a big complicated estimate. The risk is effectively shared.
By seeing how much you get done in your iterations, you get a way to adjust your prices in a way that reflects reality - if it turns out you had to work day and night to complete your iteration, you need to charge more (or reduce the scope of what you take on in an iteration). If you have time to spare, you can take on more in the next iteration.
It's all very well in practice, but it will never work in theory.
It seems to me that this has really become a commissioned software project. This is how I would handle it. develop a well defined scoped of work with the client. From that project definition calculate how many hour it will take you to complete. add 20%, and multiple by your hourly rate. what's your hourly rate? well from your (limited) description of yourself and the project I'd say around $30-$35. Now think about the value your project has to the client. Are they IBM? are the going to make $10 million in the next year off your code? are they a non-profit? will any money be made by anyone? will your code save the lives of children in Africa? adjust the total according. up a bit if world domination is a possibility for your client and perhaps down a bit if only good will come of it.
Now, remember the project scope you laid out? if the project creeps, even a little, you _must_ go back for more $$, perhaps at this point on an hourly basis. otherwise the job will never end and you'll end up getting paid 33 cents and hour.
Wow, a lot of folks love charging hourly rates.
:)
Don't do it. Start with a fixed rate deal, and then if they start wanting all sorts of stuff do hourly rate. But a fixed rate lets you spend the time you want where you want. If you do hourly, they are much more likely to pay attention to how you spend your time. Don't ask for rediculous amounts, $5k is a good starting number. Get enough to live. The fact is, you would do this work for FREE
From the sounds of it, you have no idea what the project is worth to this company. In the end, the value of what you are doing is related to the how much money the company is planning on making from your work, and the people asking you to do the work have probably got some number in mind already.
Why not ask them what they have in mind first, before you go and put a figure on the table that may well undershoot what they are prepared to offer.
They approached you - ask them to make you an offer.
My advice is to consider these points;
1. You are a student so experience and resume are paramount (pay is good as well).
2. Establish ownership of your code and control of your project. It is easier to work on a ship that you steer, and hard to work on a ship that has been taken over by pirates. If they own your work they must pay you more (for you to put up with them). If they let you keep it and are a "partner" that keeps you financed in "your" project you can discount a bit.
3. Getting paid by the project makes most companies feel like they can bother you for years without ever paying you again. If you are not hourly/salary you need to have a clear systems analysis and design from the outset. Settle on the features (make them sign something) and do not accept changes without change orders (establish a cost for change orders when they lock the features, and make it $hurt$). They might give you compensation based on milestones, but you need to make them sign something once they are completed. Upon completion have them sign something affirming completion (give them some time to test and tweak). After that, go hourly for maintenance (and stick to your guns)!
4. Finding a company that will pay you by the hour is golden, but they are few and far between. If the company agrees to this, make sure not to take advantage of them.
5. As for hourly rates, as a student I would start the negotiation at $50USD/Hr and go down to $20. The risk you take is saying $50/Hr and them agreeing and chuckling under their breath. If you are in a college town and CompSci geeks are a dime a dozen I would start at $30 and work down to $15.
Good luck, and remember this is just advice from someone on the Internet...
Modification makes things better, this is gonna be much better. -jesse james
Do they want to finance my open source project too? :-D
Legend of the Green Dragon
Slay a dragon... over lunch!
Download a 1099 form from the government website for your state. Fill it out and give it to them. Then negotiate a per hour rate. Open source or not, you're doing work. You should get paid for it. You could probably get $40 to $60 an hour depending on your prowess. Hourly is always better than fixed pricing or projects. You have the flexibility to work when you want and bill them for the time spent on their project. Plus, if you're inexperienced, what you think is a 4 day job, could turn into 8 days. But if you think: 4 days X $50/hour = $1600, but it takes you 8 days, then you're screwing yourself.
I tend to prefer ratio based after implementation with an eventual negotiable release (but I'm not greedy and have developed a profile of being a bit more then fair).
Your situation (student/money/now). Try to get enough to get by and an agreed sum on completion. Treat them right for references or for employment, feel out the right balance of communication and isolation. Complete the task.
Good luck.
The implications go far:
...
... or more on weekends?
a) 25$ is far to less
b) are you a skilled programmer? why asking less an other skilled programmer would ask for?
c) do you fear to be drawn into "work" and drawn away from studying?
Considering that the company approached you, they surely have a benefit from using your software.
Try to figure what that benefit is and put your work (price!) in relation to that.
Regarding your question about hour rate or payment per milestone I would say this:
Where does the motivation for you come from? From a steady money flow or from making a successfull product?
What is the benefit of your customer? Is it possible to define features? Which can be prioritized? So you get an idea what is important and what comes first? Can the customer use early finished features in production environment?
What is the budget of the customer? Can he plan for $2000 each month? Or has he a complete budget of $45,000? Or is he able to determine his gain very well and would say, feature set A is worth $10,000 to me. Feature set B is worth $8,000 for me. And so on
How do you plan to work? Some hours here and there when you are not at the beach? Or every day 4 hours
Find questions like those above, answer each one, and look at the big picture. It will likely be easy to make a desicion then.
Regarding wages, a skilled programmer/developer should ask for about $75 to $100. However I have no clue how your local wages are and how your economic situation is. Nor do I have a clue how much money your customer would spend.
Conclusion: adapt the price and working model to the circumstances. Ask for the same wage you would ask, if that product would be the companies in house product and you would be hired like any other non student.
Regards,
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
The second half of your legitimate complaining was about non-IT industries and unskilled, non-professional labour which has nothing to do with outsourcing a programming project.
As for the IT industry, well, what would you have the Indian IT industry do? Not advertise its services? Shut itself out of the largest IT market in the world? Say, oh, no, we won't accept offers from the USA because it's not fair to workers there? Puhleeeze. Canada, for example, became a great IT (especially programming) resource because it had an educated workforce, able and willing to work for cheaper than Americans. The lasted for some time, but the Canadian IT workforce has hit similar slowdowns as the Americans now also. The difference with India is even greater. Indians found a market where they can do comparable work (I'm not saying better or worse, but comparable) for much less cost. They moved in. That's the natural progression for anyone rational.
The writing has been on the wall for 10 years or more. Robert Cringley wasn't the only one writing lucid books on "The Decline & Fall of the American Programmer" in 1993. Any American who has entered the IT profession in the last 10 years either did their research and knew what the risks were, or simply didn't do basic research about where their IT industry was going and what its competition was going to be. The latter group missed the cluetrain and it was their own fault. This is not news.
In general, hourly is what you want to do.
If you have very clear, undebatable specifications from them, and you can accurately conclude how much time it'll take you to accomplish a task, then you could be paid "per feature".
But that's just a bad idea. What if they don't like your work? Then they might not pay you. Working hourly is the way to do it. It's just cleaner.
Since it's your project, make sure you understand who owns the work you do. That can be fuzzy, and generally when it's the employer footing the bill, they own the work.
Okay, contact me. We can talk. I might have something.
As I understand the GPL, if the company in question wishes to pay any individual to work on code...code which they will be using "in-house," they CAN insist that those changes not be made public.
Admittedly, this does not benifit everyone in the OSS community, but my understanding is that this is legal...so long as they don't try to resell it anywhere....
Obviously we are talking spot work, not a two year gig.
However, Joe's Corner Computer Store & Soda Shoppe won't send a pimply-faced teenager to your house to plug your computer into the wall for anything less than $125. Two hours will run you about $250. Plumbers charge similar rates.
DO NOT SELL YOURSELF SHORT!!!
As a graphic designer and uh, web developer, I've stopped being a wage slave. The more experience you get, not only is your end product better, but the faster you work. But even if you are twice as fast as a beginner, you can't double your hourly rates: clients don't think that way. What you can do is come up with a fixed rate based on the value that your work will have to the company. Even if the client still thinks in terms of 100 hours at $40 an hour, you know it will take you 50 hours and therefore you just doubled your take. Other clients may not consider the labor involved at all: they'll approach like a resale. In other words, it cost them $10k for a website that will gross them $50k in sales the first year alone. Put it to them that way and they will see it's a bargain. They won't go back and think, yeah, but why should we pay this guy $10k for 100 hours of work? Sell your expertise, your results, your product, not your time.
In this case, the guy should ask the company about their plans for the product. And then determine a price that is worth it to them.
Be a commodity, not a laborer.
If the company expects that their contract will be your focus, $1000.00 per day is a reasonable day rate in my field. It's close to the $100/hour other posts have quoted. Plan to drop out of school for the duration of the contract. If you're a grad student, talk to your advisor. He might be willing to keep writing ``satisfactory'' on your progress reports while you work exclusively on this.
If the company wants to let you own the code, I'd suggest working relatively cheaply. I might let them bargain down from that $1000 per day. As another post said, you're building capital. If the company expects that they will own your output, then $1000/day is too low, in my opinion. When you're done, you'll have nothing but the money, so it had better be a BIG pile. After all, this will monopolize your life, you're putting off graduation, and so on. Either way, make sure that ownership of the resulting code is clearly spelled out in the contract. Hire a lawyer to review the contract.
Finally, have you talked to your university's legal department? Is there any way that this project could belong to the Uni? Are you sure about that? If you are an undergrad, you are probably in the clear. If you are a grad student, there is a very good chance that ALL your work is the property of either the Uni or some granting agency. If this was part of work you did for the Uni, it is almost certainly theirs. I'd ask for permission to release it under your favorite Libre license BEFORE I mentioned the commercial interest. Most Uni's are VERY interested in exploiting their ``intellectual property''.
Above, I told you to hire a lawyer to review the contract. Do NOT depend on the University's lawyers to do this for you. They are working for the Uni, not for you. Their responsibility is ONLY to the Uni, and if you get screwed, tough. If you're not paying the lawyer, he's not on your side, period.
See what I've been reading.
Make sure if they pay you by check, cashiers check, money order that the phrase "Work for hire" has not been written any place on the check. If you sign it you lose all rights to your work. I had a company try to do this to me, I refused to sign the check and told them they would not recieve the code unless I was given a new check without "Work for hire" written on it, and they agreed after we drew up a contract.
"If the facts don't fit the theory, change the facts." -Albert Einstein
Karma? There's a serial modder out there.
I have received, not long ago, an email from a certain Basil which, he said, was very impressed with my project that I had on sourceforge.net He wanted me to work on their instant-messaging product, by telling me that it's a 1 to 2-week job for which I would get paid at the end. Given that I do not know this Basil or have even seen him (or will - given they are a 'company' of people which work from home), I did not find acceptable their policy, and of course, started investigating. I went to their website and aside from the page banner which does not lead anywhere, that was it... Something was rotten.
.class (java compiled classes) of the project so I could test drive it. I saw also a few documents in the project's sdk as well, written by a certain guy (don't remember his name) You bet that I contacted him by email, given that he worked on this project before), asking whethere this Basil was worthy of my trust. He was very prompt and answered that I shuold not attempt to do business with this Basil because, at the moment of the pay, the 'bank' had 'problems' getting the 'check' to the developer's account. Uh-huh. The worst part is that this coder did not even realise he got scammed. That scared me.
Since this Basil wanted to impress me and fool me into working on this project, he gave me the
So it seems that a new class of scammers start developing on free-software writers, which, for many of them (not trying to offend anyone), seem to be people proud of themselves, but very naive, given that the time spent writing free software is not spent with real friends outsite. They are easy prey to scammers, driven by their own pride...
you dont want to ask for too much becuase if they already view you as some college kid, they'll say fuck you and take your code and start their own project, keeping it opensource, but making it much better, you're out of money and your project looks like shit compared to theirs (presumably)
whatever, really.
It depends on the situation, if they're gullible and desperate, ask for a nice hefty wage, if they want you for your project, you might want to be careful with that, becuase more than likely, after you bein work, they'll hire in other programmers that will slowly overshadow you and you'll get fired from the project.
so, whatever, try not being too desperate yourself.
If they approached you, then they already have a pretty good idea how much money they're willing to spend on this project. So, start there. Find out what they're willing to spend, and then negotiate how much work and what kind of work you're prepared to do for that compensation.
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
"Whoever says a dollar number first loses!"
Ask them to make you an offer of what they think the project is worth to them -- per hour, or per change, whatever.
If you like the offer, take it. If not, make a counter-offer according to everybody else's suggestings.
Every time I have mentioned a number first, I've been sorry.
Regardless of what you choose, be sure to get a signed contract. I know this may seem obvious, but many beginers in their eagerness to do well and joy at having a project to work on neglect this part and pay dearly for it later.
Don't price yourself too low, figure out how much money you need, then add 50% to that for taxes. Assuming of course your in the US.
Generally I also take my best guess estimate and double it just to cover the inevitable unknowns. I've tried other things, but this seems to be a good rule of thumb.
Have fun.
they approached him because they liked his work. never undersell yourself. if the price is too high, they'll tell you and you negotiatem they wont just drop you.
tasty electronic music vittles
If you charge by the hour, you are committing to a larger workload. Create a specific list of deliverables (small, workable code chunks) and price each one according to about 150% of the number of hours you anticipate times the going rate of $50 to $75 an hour. This gives your client a fixed cost (which they should appreciate) and you the flexability to work at your pace. You'll have some evenings you'll bust out a massive section and others that are slower but it won't matter if it is a fixed cost. I released three titles under this model and it halted many arguments. One warning... set your timetable within easily reachable goals. Your client will expect a finished (and working) product exactly on the day you promise it. Good luck and welcome to the evil corporate world! AG
1. Flat rate - You list requirements, charge a price, they pay you at the end or at milestones. DO NOT DO THIS if you are a student, as no matter how smart you are you will make mistakes in your scoping, since scoping is 99% experience based, and you will get hosed and/or not get paid.
2. Hourly rate - Set goals, give estimates for milestones, get paid as you go. If they don't pay, you stop working and you're only out a few weeks of effort. If they pay, you're golden. This is the way you, as an inexperienced professional developer should go.
3. Salary - You commit to give them X hours of time per week and they can assign you tasks however you want. You get a fairly stable income, but the company will probably not want to do this because there is high upside risk for them, especially if contracts are involved and you aren't as capable as they/you think. Also it puts the management onus on them. The type of person/people you are working with determines if that's a good or bad thing.
This is not the greatest sig in the world, this is just a tribute.
Two months ago my main sewer line backed up, and I had shit and water all over my basement floor. The plumber came and cleared the drain while standing in my family's shit for two hours.
Don't begrudge them $125/hour. It is hard earned money.
It's not wasting time, I'm educating myself.
One MILLION dollars!
For instance, if you can offer training, documentation, support, bug-fixing - all can be charged at rates competitive with them having to hire staff. You can offer it all, as the world's #1 expert on the product.
Avoid any exclusivity agreement in case another company wants to hire your expertise.
and some place to sleep
If the company just wants to support the project, like some voluntary work and do not claim anything of their ownership, then you can charge a low hourly rate or some flat price.
Make sure you don't sign away IP rights over your project when you agree to "work for them".
Speak truth to power.
What happened to me was: I started working on the side job for a given number of hours, then after a few weeks, while I was at lectures I would be worrying about the side job progress, and then while working on the side job progress I worried about not studying.
Slippery slope and I ended up with no degree. I still regret it 12 years later.
I ask for two reasons: 1) that could influence how much they're willing to pay. 2) I'd like to make some cash myself ;-)
You have very specific skills and experience that places you in a unique position. If this product is truly important to the company that has approached you, then you are in a highly priviledged negotiating position.
In the Silicon Valley, when I did contract or consulting work, my rates ranged from $80 / hour up to $250 / hour depending on what it was doing and how much flexibility (read: responsibility) that I had.
If you are working from home, when you want and not having to deal with the daily grind of their organization, you should probably charge per "milestone" (e.g. put a price on each feature or bug-fix that is requested). This price should reflect the complexity of the feature as well as the market prices that the target company is used to paying. In general, you should never charge less than $2k for any feature or basket of bug fixes, and never more than $15-20k (depending on how large the feature request is). It is really okay to have a chat with the manager who is authorizing each feature, start by asking "what do you expect to pay for X" and be prepared to gently press him/her higher. Your job is to try to find the highest price for each feature that he/she is comfortable with. If you are also comfortable there, do it.
If you are going to spend time at the company, you should charge hourly rates. These rates should be HIGH in comparison to local consulting/contracting rates because of your unique position as author/co-author of the product that they want you to work on. If you are in northern California or the East Coast, for instance, you should not agree to work on the customer premises for less than $100 / hour. And depending on who you would be working for, the duration of the contract, what you will be working on and the demands placed on you, you may be able to push that as high as $200 - $300 / hour. Generally, the shorter the contract, the higher the rate.
Whatever you do, don't take the "donate your time" attitude that you have in developing Open-Source software and direct it at a profitable business. Giving to the community is one thing, and very noble. But when it comes to business, nobility is derived from profit.
The reason that it can be true that 1+1 > 2 is that very peculiar nonzero value of the + operator
No complaints about all the suggestions; i just find it a bit sad that this has to be spelled out:
Write down the requirements they specify.
I'm currently in a project where we, thanks to an obscure industry standard, have to provide traceability matrices! From System Requirement to SW requirement, to Design, to Code and finally to Test case.
It's actually not a bad feeling at all to do this once in a while...
You might want to consider if you could write a manual for your project and sell the manual. That seems to be a classic way to make money off open source.
People seem to be much more willing to by manuals than software. Look at the number of manuals written that duplicate the manuals that come with various software packages. The manuals would be available to the user if that person had not borrowed a copy of the software in the first place.
Have a good day.
William
Sorry, AC posting due to fogetting password while at work.
Here's my work's procedure:
1) write detailed design document (at their expense, hourly rate)
2) in a spreadsheet: write quote for each point in the design document, in hours. (at their expense, hourly rate)
3) add up the above hours. Then add on a solid chunk for testing, another chunk for documentation, and then multiply the whole thing by 1.5 for "contingency" (ie. things taking longer than expected)
4) Convert this total hours into a dollar value by multiplying by your hourly rate
5) present this spreadsheet with final figure to them.
Then there may be a bit of negotiation - if the figure is too high, they may want to drop a few features from the list to get the price down.
You want him to drop out of college for a few thousand dollars? Stay in school, get your degree, the money will come soon enough.
The bit mistake you (people) make when thinking about their "free" software projects is that they act and think that because they don't normally charge money, their work product has little or no value.
Consider:
1) the product is valuable to you because it satisfies, or at least addressess, a need for you.
2) the product is valuable to others for the same reason.
3) you are engaged in a valid (in the contractual sense) exchange of goods for services when you make open source software available.
Even though no money has changed hands, at a minimum, the software is valuable in the "other consideration" category. Even the most plaintive user is providing test-iterations and feedback on the code base. Some few will do more by returning ideas. Fewer still will do more by returning code. But all of this is labor time at the least, and as we know, time is actually money. You *are* engaged in a reasonably balanced contractual exchange, and the contract is embodied by the license you release under.
So you should not feel any form of "guilt" for charging someone for work you "would have done anyway." That work had and has real comercial value.
What you are selling, when you get paid for open source development, is "concentration." The business world recognizes different levels of concentration to be a real asset. When you are paid a retainer, you are promising to "answer the phone" and, presumably, keep yourself generally ready to answer the phone by spending some minimal effort to remain viable in your field. A lawyer, for instance, may take a retainer for a clent. The client is "buying into" the fact that the lawyer is lawyer-ing to stay laywer-ey so that if they need him he will be ready to at least decided whether he want's to represent the client.
The absence of the retainer, or indeed all retainers, doesn't mean that the lawyer will stop lawyer-ing. And for those days or years before and between the clients and retainers, a lawyer keeps lawyer-ing (if he's smart) so that he is ready to lawyer for cause.
So you program, and you pursue this particular project at whatever rate you feel approprate for your needs.
This client comes along and gives you money to buy a degree of attention and concentration above your needs and into the range of their needs.
Presumably they are buying:
1) the project getting done faster.
2) influence on the prioritization of tasks. (e.g. that you will work on "their features" first if a decision needs to be made between alternative elements)
3) insight into the product. [They get to talk to you and they get a disproportionate share of the expectation that you will listen. They get to ask you questions that, were they to come in via email, you might more certianly blow off. They get to ask you to *explain* instead of reading the code and documentaiton for themselves.]
All of this is worth buying if and when a customer decides that your project meets their need.
So ask yourself which of the three buyables (among possible others) you are really willing to sell and to what degree.
If you are only selling mostly #1 (faster, targeted completion) then charge by feature and target date.
If you are selling primarly #3 then you are in a time-and-materials sort of circumstance. They want not just your product, but a slice of you. You don't "finish" by milestone so you shouldn't be paid by milestone.
If you are stuck in the middle (mostly both, i.e. #2), split the invoice. Charge by the feature for the features and by the hour for all non-design/development time.
So a mixed approach:
Feature X will be N dollars and includes M hours of support and training.
For all X, the cost is the sum(N), for hours in excess of sum(M) the hourly cost is L per hour. They/You pay travel expenses (to whatever limits) and so on.
If they don't want to be this formal, don't you dare let yourself feel tha tyou have agreed to this fomality. Tha
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
He wasn't a student, but he worked at a school (he also came up with the ph/qi phone book program).
Then along came a company who wanted to pay him to work on Eudora for commercial porpoises :)
He declared: There will always be a free version. (they said ok)
I won't leave the incredibly flat midwest (they said ok)
He also said other things. Perhaps you could ask him or give him a call.
One might suggest setting salary that is feasable for the experience you have, the skills you bring to the table (including being the most intimate with the code) and keep it realistic.
I gotta say, when I interview someone who's got 1 year of experience and expect to make closer to 6 figures they either have to a whole lot going for them or, if they DO get hired, they're gonna be the first on the layoff catapult.
The boom tainted everybody into thinking they were worth $80k or more when they weren't. Everyone is senior until they get enough experience to realize how much they don't really know.
thats why I tell my clients:
"100.00 an hour and it will take [puts pinky to mouth] 1 MILLION years."
I have never had a project take longer.
The Kruger Dunning explains most post on
My first real programming Job, the manager asked what I wanted to get paid.
I had no clue, but I was making about 12,500 dollars a year at my current job, so I thought 'what the hell. I'l ask for double",
So I said 25k.
He paused, I thought I had blown it, and says "40K? no problem."
being new i.e. dimwitted, I say:
"ummm, 25..."
he cuts me off.
"right 40k"
me: "Sounds great, when do I start"
"In an hour."
The Kruger Dunning explains most post on
There are a bunch of great suggestions here, but they all miss one facet I think you should consider; namely, how much do you need? You are a student. If you have any potential at all, this will not be your only project over time. So, charge what you need to charge to make some money and get the project (and your first client). There will be plenty of time in the future to optimize earnings. For now, make money and get customers. You'll never have the freedom you have now to pursue either.
BTW, I'm a CTO. I out-source programming, in-source programming, and write code myself. As a student, you're off the curve. Be glad you're getting experience and money!
I'd negotiate specific goals in exchange for a yearly salarly of say $50,000 to be paid out bi-weekly or something. Without knowing what the specific project is and the user base etc it would be impossible to give you a specific amount to ask for, but being salaried would probably be easiest since you are a student and will be working in bursts.
and my mentality has always been that if someone needs the software then they'll pay for it to exist, even if they don't want to sell the source code afterwards. And to a large extent, this works. In fat, it works perfectly. I've never had anyone say "well you're writing free software, so why should we pay you?". In fact, often the software I write is for universities, who would rather release the code open source than hang on to it. This is just the mentality that unis have, I guess.
Indeed, lots of people have paid their own way.
However...
It's tremendously more feasible to do that with financial aid. The student, if of typical student age, will need parents (guardians, whatever) to fill out the forms to qualify for financial aid; so parents who refuse to fill out the forms, and also won't pay, can be a substantial obstacle to attending college. Not impossible to overcome, though - apparently it's possible to get some kind of legal separation from parents to get around that. I imagine there are some hurdles to clear with that, and that relatively few people in that situation have the saavy to go that far.
End of message.
This issue is a bit more complicated than you think.
25$ ??? Where do you live? Venezuela? Seriously, if that is your project, don't settle for entry level.
He's is a student working on a small open source projects. That is entry level. If he were not entry level he could get a part time job programming elsewhere, or at least a paying cooperative education type job (Local company advertises job with University, student gets pay and course credit). These co-op jobs are far more useful than open source with respect to getting jobs after graduation. Friends had co-op jobs at CalTrans and JPL.
You haven't really provided enought information. Probably because you haven't thought this completly through.
1. what are they paying you for?
a. support/consultation
b. software development
c. donating to a good cause
You really need to work this out with them before you start talking about how much. You should also work out your position. How much time you really have to work on this. How much control do you wish to maintain.
Thank you. Finally someone who understands. :-)
I recommend using a combination of fixed and hourly rates. Determine a fixed rate for the features that you can negotiate with specificity with the client. Within that fixed rate, determine how many hours, maximum, you are willing to work to reach that particular milestone/feature. After you have reached the maximum number of hours, begin to bill an hourly rate. Also, make sure you get a retainer of at least 33% - 50% of the fixed rate and add a provision that the retainer needs to be refreshed by another 33% - 50% if you go over the maximum number of hours and need to start billing hourly. Also, to prevent surprises to your client, send them regular, weekly, status reports that include the time you've spent and exactly what you have accomplished and any problems or concerns you are having and any additional information you need.
For example: Add exact feature, $5,000; $50 per hour for each hour over 100 hours needed to complete.
I agree that most companies would love a fixed rate. And the fixed rate should be your main selling point. However, you will get screwed if you do not put a cap on your time and enforce that cap by billing for additional time and taking an additional retainer. The maximum hourly cap protects you and reminds the company that vague specifications and constant change orders will ultimately cost them (not you) more.
Something that is important to keep in mind is the taxes you will have to pay. The first time I ever did contracting I made a flat $12k for less than 50 hours of work. Originaly I bid five grand and thought I was getting away with a steal. However, the large, non-IT related institution I was working for felt that I couldn't be taken seriously at that rate and suggested I charge more. Needless to say I was psyched to be making more than $200/hr.
.55)/hr and adjust your pricing accordingly. Also, make sure you save all your receipts. They will come in handy around the beggening of April.
However, I didn't realize that when it came time to do my taxes I would be charged my normal tax rate (about 30%) plus self-employment tax (15.3%).
By the end of the year I ended up owing the government about $5.5k. I was able to get this number down by claiming a room in my house as a home office, and expensing some computer equipment, meals and other stuff I bought, but it was still a nasty shock.
My advice to you is when you make this bid don't think of it as $25/hr, instead count on it being ($25 *
Good luck!
One more thing that I have learned recently about trying to earn a living. I forget who said this but it is very important to remember when negotiating with someone who wants you to provide a service or product. There are three possible outcomes:
(1) Provide a service or product and get paid a fair value - "best of all worlds."
(2) Do not provide a service or product and don't get paid - "not so bad, at least you didn't give up your free time with family or friends or sports or hobbies."
(3) Provide a service or product and don't get paid or get paid below market - "absolutely the worst situation; now you are climbing just to get out of a hole and up to ground level." Doing something for free has a name - charity!
1) where do you live? It costs a lot more to live in SF or NY than Orlando or St. Louis.
2) Is this job full-time & permanent or is it a 1- to 12-month position? If it's a nice, permanent, long-term position they're offering (with bennies) then you'll be asking for a lot less than than if you're just contracting.
Contracting in SF? $100/hr, easy. Permanent in Orlando? $25/hr would be pretty damn good. Or anywhere in between, depending on where you are and how long they'll pay you.
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
I wrote a simple IDE extension for an RCS, then contacted the company to see if they wanted me to build it into a full-featured integration.
They did -- so we worked out an agreement. I made a list of small-scope enhancements, and put a dollar amount on each (based on my time estimates and a good hourly rate). Per the contract, I made the listed enhancements, and released the project as open source (which make the source available for any other developer who wants to enhance it for them! nice bonus for them, isn't it?).
Worked out exactly as designed, win-win.
I will mention that just listing an hourly rate is tough in a few ways. You have to keep careful track of your hours, which can be hard, PLUS they aren't sure what they're really signing up for.
It's a good idea to try to keep track of your time (because otherwise your estimates will be *way* off), but giving a single dollar figure for development, testing, deployment and those few bug fixes is better for both of you as long as your milestones are small (because if your estimates suck you don't want to get screwed over too much).
Don't forget to consider stuff in the contract like:
- unforseen *large* setbacks might force you to revise your price/deliverable midway
- only bugs that significantly impair functionality AND are discovered within the first month after release are included in the original contract
- owernership and copyright clearly remains yours; the funds provided are purchasing your time, not the finished product (which will be licensed to them under the same license everyone else gets)
Good luck!
There are only 10 types of people: those who understand decimal, those who don't, and, uh, 8 other types I forget.
How is this a troll?
I currently work for $AU 30/hr (about $US15). This is considered pretty damn cheap, but I maintain that rate because I get a hell of a lot of work word-of-mouth.
Next year (after finishing university) I will have a lot of experience under my belt, a reputation for getting stuff done properly cheaply, and a lot of loyal clients.
I find it quite interesting to see references to "entry level" jobs being $50/hr or $50k/yr. Over here (in Australia) entry level IT jobs are generally around $AU30k/yr ($US15k), although I'm hoping to get around 50-70. Perhaps I should move to the states.
That seems to indicate that your tax return was for $260,000 minus operating expenses. Would you check your return again and let us know for sure! The comptroller's office was not aware of any programming project going for $125 per hour.
All fun aside, if you really are in need of help there, I know a bunch of Unix and C++ people that would like to work for less than half that.
Stop what you're doing right now, go to the library and listen to Roger Dawson's Secrets of Power Negotiating. If they don't have it, order it (and no, I'm not a rep or get paid to plug his stuff).
Too many techs I know think that employers will "just know" how much they're worth. No one will value your worth as a programmer unless you can stucture the negotiation so that you not only get what you want, but your employer gets what he wants too. It's called win-win negotiating, and Roger Dawson is simply the best at it.
Ruby on Rails Screencast
Finally, have you talked to your university's legal department? Is there any way that this project could belong to the Uni? Are you sure about that?
There's actually more than that, and I hope this comment (and yours!) gets noticed:
If he's an undergrad, or even a grad working at the University's campus, he may not be legally allowed to earn money for a project he's working on if he's using the University's resources. That means the ever-so-wonderful "massively fat pipe" that the University provides. You need to be very careful about doing things correctly with universities. Hell, I know for me (I'm a grad student), I'm not allowed to take another job (without explicit permission) - it's in my contract.
Universities are terrible at paying attention to legal details. You'll get away with absolute tons, for the most part. Every once in a while, though, someone jumps up and notices something, and tries to capitalize on it. You need to be very careful, because a lot of times, there is a lot of fine print.
I thought that Open Source way is to work for free to ensure that monopolistic companies can't make even more money. So disappointed in you all. All Open Source projects should be free (as in free speech & free beer). Hows that? Warnie!
Except I asked fore $50k, but said me worth $100k.
What you can do is simply licence them a copy of your project (what is it by the way). And then charge them time & materials for the mods that they want. They will then expect you to provide warranty and support and expect free upgrades in the future. Hey... but doesn't that sound like evil commercial software companies?
1. Get $60,000 each from Perl Foundation
2. Try to code something that will run Ruby, Python, Brainfuck, and if there's time left over - maybe Perl.
3. ???
4. ???
(crickets chirping)
5. ???
(two years pass)
6. ???
7. Why aren't we getting any more funding?
Fifth reason is that he intimately knows the package, and this translates into high productivity.
...
I think his rate should be over $50/hour and depending on the package and the customer up to $125/hour. But its OK to do a fixed price if he knows what needs to be changed on his own package.
If you are on your own, $9.00/hr will barely pay your expenses, even in central Alabama where the cost of living is quite low, and for sure will not allow you to put aside for college.
The company will work with you if you set a reasonable price and tell them honestly that it is to pay for college. Make out a wish list of salary and benefits you would like them to consider, perhaps including a new computer or laptop that you will own, and any other thing that you might want considered in negotiations. Make sure you write down that you are not selling them the product, you are only completing or modifying per their specifications.
I suggest you propose a salary closer to $25 and see if they can afford to consider it. After all , you can come down in price, but you can never go up. Tell them you would like to see something closer to $25 if possible and let them make a counter offer.
Indian programmer are, on average, just about as good as US programmers. Some are great, some are terrible. But it's not nationality that does it. Same goes for Russian, Chinese, South African, or any other programmers mentioned in the thread. I've had plenty of problems with US-born programmers too; it's nothing special.
What is a lot more likely is that hoggoth's outsourcing woes have to do with the *outsourcing* part of it. If you dump code on people without adequate specs, documentation, and yes, supervision, you are not going to get something good back. That fact has little to do with how much you pay them, in fact. And it gets even worse trying to move a project from someone who is intimately familiar with it to someone who has to scramble to figure out what it is/does--not that you always have the former to start with, but you always get the latter when you outsource.
Yours, Lulu...
Buy Text Processing in Python
Unless it's for a big company, keep the honor system in mind as a possibility. Say you have Widget version n and somebody contacts you asking for some paid development. The features they're requesting would have been added at some point anyhow, but now you have incentive to add them now (possibly deviating a little from your original development plan). Negotiate a price. Develop the features. Release version n+1. If the person/company who asked for the feature(s) is at all honorable, they'll pay up. Most likely you'll already know something about them anyhow if they've ever posted to your message board or email lists. If they don't pay up, it's really their loss because they'll never again be able to ask for more work done and you can easily censor them from the message boards if they ask for help. I've never had this problem though. Most people are honest when it comes to this sort of thing.
But remember, this is for small-time work only. You wouldn't do it this way if you wanted to make a full-time career solely out of OSS development. And if it's a job worth over say $1k, it's probably time to think about formal contracts.
Assuming the company does permit an hourly rate, then how much? You've said that you would do the work anyway, albeit more slowly, so it comes down to what cost for your commitment.
By accepting money for your sevices, you are agreeing to commit a (probably) larger amount of your own time to the project - what is going to lose out as a result and how much is that worth to you? The benefits to you are (aside from the money) the formalisation of the experience gained - the work will have far greater credance on your resume as a paid job than as a 'hobby' (that's how it will be seen, it's wrong but that's life).
Most contractors I've known in Oz and the UK will go for an hourly rate (in 15min increments), occasionally a daily/half daily, but rarely piece work because there's always the unforeseen to consider. I've been contracting for 17 years and always use hourly figure based on the project duration (shorter = expensive), my skill suitability (am I the guru?), opportunities to reskill (saves on training costs) and role responsibilities (I just wanna code, not manage!).
In your position I would recommend an hourly rate which is fair to both sides (I can't give a figure but don't be greedy) and which reflects both the benefits to you of the formal relationship and which compensates you for the lost 'free' time you would otherwise use for other activities. Sorry if it sounds waffly but it's what I live by and I'm happy with the result.
Go permanent? In your dreams and my worst nightmares.
The best thing is if you can meet them in person and talk about price.
1) Suggest that you work for a range of prices depending on the number of hours per week and the length of commitment. Start naming numbers going up, when they blink, you know you've reached your price point.
or
2) Ask, "How much are you authorized for?"
or
3) Ask, "How much do you pay your best contractors?"
or
4) "What is the budget for this project?" (if none, when will it be assigned, who will do the asignment)
5) Look at their job postings for technical lead or senior positions, if they have a dollar figure, use that to base your rates (i.e. 80k/yr = about $40/hr + benefits, the bls has statistics for % of pay in terms of benefits by area of the country) Add this to their effective hourly rate. This is the minimum you should charge, you have unique experience with something they want!
I'm an independent consultant for a living.
As others have said, you need to define the relationship you will have with the company and then determine a fair market value for the work you will do.
As an open source product, you hold no proprietary rights in the code other than those stated in its license (I am assuming it's GPL'd), i.e., the commercial firm can grab your code and extend it themselves as long as they release the extensions (or license it from you for commercial use; and other possisiblities).
My suggestion: see if there is a faculty member with indie consulting experience and ask him to help you negotiate. It took me a few years and a number of scars to understand the fine print in contracts, strike a reasonable negotiating position and figure out from looking at a project what the market would bear. You are wise in asking for help; you may well be able to find it in yor university's CS/IS department.
The firm would obviously prefer to a) use the original author of a work as he understands the architecture/concept best and/or b) support open-source software. However, they are under no obligation to use you in particular. Don't pretend this is any more than a commercial transaction and price yourself accordingly.
Best of luck! Working for oneself is the only way to go!
Sheesh, were you abused as a child, or what? Talk about hostility...
.sig Realistic fines for copyright in
It depends on where you work and the type of contract te company is willing to offer you. If you are supposed to work as a contractor in a fiscal paradise (don't forget uncle sam when you make up a price !!) your bruto income equals your netto. But if you live in a, let's say European country, where taxes are extremely high (30 to 55 %) you certainly need to charge those taxes too.
... or you might end up with nothing at all.
I don't know what your capabilities are and what work you are doing, but consider the simple economic law of supply and demand. If you are positive that it is very easy for the company to find a replacement for you, it might be interesting to settle for less
I think you will get more money if you can make a price for the job. So the company knows what it will get and what it will cost. With an hourly wage the company is forced to get into an adventure where costs can get skyhigh without getting anything. Also with a global price you can more easily charge other costs as books or internet connection, phonecosts that can be brought in as 'research', documentation and administration for yourself or the project as 'backoffice and documentation', coding, debugging and testing as 'design and implementation', parts of utilities-bills and fractions of hardware-cost as 'logistics' etc. This way a company knows why you charge them 1000$ for 10 hours of work instead of claiming that you are worth 100 $ an hour...
Here in Poland professional IT developers (software for Banking, Insurance, etc.) usually work for 5-10 USD for hour. 25 USD is considered a very high wage usually awarded to project management people. The software runs well - it has proven to be trustworthy in the biggest of Polish banks, having about 10 million clients countrywide.
Those developers usually know english very well, some have PhD degree, sometimes they are also open-source developers.
You can defy gravity... for a short time
Wait a minute here, by the rules of natural law, and through the suppression of IP rights ... you should not be implementing any ideas with any intent of benefitting from it! Just give it away to all.
... where did that goof go that was so against the horrors of intellectual property rights? Lord knows IP rights have no place in this thread about a hard working guy with good ideas just trying to get ahead in life.
You are supposed to be giving away your hard work to everyone for free, expecting nothing in return, yet slave away at it everyday so that I can enjoy the products of your ideas for free!
oh wait a minute, this is the wrong thread isn't it!
George Bush + Linux = "I will not let information get in the way of the fight against Windows"
Here are my 2 cents for a successfull negotiation:
1) Talk about money last. First try to define what the company wants, and by when. This gives you an opportunity to define the pay mode (by objective or by the hour) that will best meet your respective requirements. Also, when a company has taken time to discuss their needs and objectives for some time with you; there is some "lock-in": they will be less willing to start it all over again with someone else, and this gives you an opportunity to price you up.
2) Have 3 targets levels: - MFP: Most Favoured Position - What would you love to get. This must always be your opening bid, otherwise you loose the chance that the company may just accept it. - RTP: Realistic Target Position - What do you think you will realistically get. Not something to mention, just to keep in your mind at all times. - WAP: Walk-Away Position - The point where things break. That is the point where you say to the other party "that's it, I quit". Never accept anything below what you have set yourself as minimum objective.
3) Let them make the first move. If you do not have a clue about where to start, let the other party make the first move (That will be their MFP, i.e. paying you 3cts/quarter, or their RTP, if they are bad negotiators, which is often the case). You may have a good surprise if they exceed your expectations. Then settle. Job done.
4) Negotiate every concession Any cash concession can be negiotiated against a little something: hardware, paying the phone, broadband connection,...
5) When a deal is done, talk about something else. No getting back.
6) Put it in writing.
7) Think long-term. You could weigh the short-term cash benefit against satisfaction by the company, that can result in a later job, be it with this company or another.
8) Remember that you are a student: it might be difficult for you to commit the time implied by an hourly rate. On the other hand, committing to a deadline/objective leaves you in charge of your time management and other commitments (like studying and exams).
As soon as you start charging money for your work it will become insanley boring.
i'd make 3-5$ an hour coding over making 6.65$ an hour cleaning up puke and scrubbing shit off of bathroom stalls, any day of the week. anything more and that's just arrogance.
GENERATION 26: The first time you see this, copy it into your sig on any forum and add 1 to the generation.
Ok here is what you should do: calculate how much money you need to cover your costs, plus a little extra for the fun things in life, and that's your price. Make it a monthly thing.
Hourly rates wouldn't work because nobody could pay that much. And I'm sure that company would not want to accept anything where the amount of money is so unclear as in this case. Also you'd have to keep track of hours, and all this paperwork ain't for us programmers, is it.
Also, with a set amount of money, you yourself can better work. You know what you have and can concentrate on your work. And if they don't accept this form, the idea you named is the second best I guess, the goal based one. In that case, don't forget to apply the magic formula to calculate how long each part takes:
(Your estimate * 2) + n
(where n=nose factor)
If a train station is a place where a train stops, what's a workstation?
If you want to retain control of the software written under contract, you must make sure that your contract doesn't include the term "Work for Hire".
Many companies will include a "Work for "Hire" clause in cosulting or subcontract agreements. "Work for Hire" means they completely own the new software as if it was created by their own employee.
Since the new software is a derivative work of something already licensed by the GPL, the new software must remain under the GPL.
However as someone already mentioned, if they don't distribued the software outside the company they don't have to share the source, not even with you after the job is completed.
Very very true. As an entry level South African programmer programmer I would charge no more than say R50 an hour. That prices like $50 are recommended is apalling. The exchange rate is R6.70 to the Dollar ATM. Makes the rate R335 / hour. Crazy. If you want to compare user the international standards, the big mac and a can of coke. Mac = R8,95 and coke = R4,00. I could live like a king on that kind of money.
Outsource it to South Africa for that 1/5 price.
There are so many qualified and talented programmers here that are unable to find any work after the dotcom bubble burst, imploded and went thermonuclear.
Luckily for some of them still get jobs in the IT sector although as technicians or Network Admins (like myself).
I must also admit that with the general expansion of the IT industry preceding the bubble burst and the terms like "The money's in computers" the industry has bee flooded with nitwits and no-brainers thatwant to make money.
In the case of India IT is a state sponsored occupation, thereby making it easy to get a cheap degree. In that case you're getting people not truly dedicated to programming or truly talented. They are however qualified.
Thebest advice would be to get someonew that knos what they're talking about, check out their resume/plans and keep a good avenue of communication well open.
Ive seen suggestions for Hourly pay, Daily pay, and lump sum ammounts. Surprisingly I havent seen any suggestions for Profit sharing. Considering that this is your baby it wouldnt be out of line for you to ask for a percentage of the future earnings for this project. This would more than likely net you more than any other option. Besides its a quality control issue with that. 1. The better the product, the more users. 2. The more users the more people buying said product 3. More people buy it, more $ for you and the business. This would make me work harder to ensure that I made the best product possible. I dont think that 15-20% is too high, with a stipulation that any versions that you dont work on after this version you earn 5-10%. If the company is willing to do this it could be your option.
Peace, Love, and BFGs.
You should be paid a proportion of the value of the software to the customer.
You need to understand what it's worth to them, and charge appropriately.
One of the biggest problems which working on a system largely on your own is keeping at it and not getting sidetracked. I have always liked to work on a 'price for the job' basis, because it keeps me focussed and it keeps me honest.
Work out what the next few key targets of your project are, and work out how long you think it should take you to achieve each one. Then, multiply that time by how much you'd like to be paid per hour, plus your overheads; then, add 10% for contingencies. Use that as your fixed price.
Ask to be paid one third up front, one third when you deliver (when you think you've achieved your target) and one third when they're satisfied that the target is achieved (this is known in some places as a 'shipyard contract' and is good because it gives you money to live on while you're working).
I'm old enough to remember when discussions on Slashdot were well informed.
What do you _really_ want? Do you want to quit student life and become a contract programmer? If so, push for a decent rate -- $100/hour w/out benefits, minimum 40 hours per week is a good starting point.
The fixed-price-per-feature idea is OK, but again you'll be working 40+ hours a week on it and you might as well not be a student.
A more rational approach is to work 'as available' for a monthly stipend. Get enough to cover your rent and maybe some pizza and a car payment. Say $1,500 so you end up with $1,000 after taxes. Make sure the contract states you retain all rights to your code (although you will probably have to give a license to the company).
They are buying first-priority access to your time -- you will implement the features they want even if they are boring or difficult. No other promises.
If some other company approaches you then do the same thing. If you're running out of time (too many companies) re-negotiate and go with the highest bidder(s).
If they offer some kind of 'in-kind' service, like hosting a server or whatever -- then all the better (just keep good backups in case the relationship sours).
Just a thought.
"But actually trying to use m4 as a general-purpose langage would be deeply perverse" --ESR
Your best option is to charge per hour. You never know what bugs turn up and sometimes it just takes a while to develop. However for the company, they tend to prefer that they pay for a finished product since they can then turn it down if it is not finished to their request.
I relate this to the title as such. IBM Global Services is hired to write a specific piece of code, they will do an hourly rate and magically never meet their estimates.
it's quite possible to get financial aid w/o any signatures or forms from the parents. i started college when i was 18, and was completely on financial aid. some low-income grants, but mostly loans. 6 years out of school and still paying 'um off. the "hurdle" was that i was an independant student .vs. a dependant student. (two years of not being a dependent on mom's taxes).
I was retained a few years ago to help a company when they needed help with their Ciscos, UNIX boxes, etc. I stress that this was a retainer from which I could be expected to maybe do a few hours work a month, and anything over-and-above that would become a project.
;-)
This retainer was a couple of thousand dollars (Canadian). I commented to the VP at the time that this seemed like a lot of money, and was told that it was quite a bit of money to keep someone on call, but that they could also expect/demand that I drop pretty much everything when they needed some help.
He also went on to mention that if he went to President and said "we can retain this really good guy...it's a little pricey, but he's really good" then that was an *easier* sale for him interally.
One thing he reminded me of at the time was that the guy who came to fix their copier/printers at the time was billed out by his company at something like CDN$120/hr....so surely a sh*it hot Cisco/UNIX guy is worth lawyer rates
-psy
The fact that you are student shouldn't affect how much to expect to get paid, but it will affect how the prospective employer sees your time.
...
Students aren't generally used to contract work, focusing in on a single task for a whole day, tracking time and expenses etc. You shouldn't worry about this, and the employer is going to doubt that you will want to learn.
Not knowing you, they may also be concerned about what sort of bills they may wind up seeing - they don't know anything about your productivity, how well you can implement certain tasks etc.
Instead, offer them a set price to implement the features they need. If you continue to work for them, occasionally you'll be over, occasionally under and usually it will work out. It frees you from accounting, and builds faith from the employer and in the end will give you more freedom.
2c from someone who hires folks like you
+--------------------- You idiot! I told you we were facing the wrong way!
A good benefits package costs between $10,000 and $15,000 / year. Insurance is half of it, and 401K match the other big chunk. The other benefits, like a free cell phone or free DSL at home are maybe 20% of that total amount.
How do I know? Because I buy benefits for 3 employees.
If the employee is full-time, and you run an efficient business, you'll get 1,500 productive hours in a year. Amortize your benefits against that and you get about $10 / hour for benefits. If someone is willing to work for $25 / hour with benefits or $50 / hour without, they're giving away $15 / hour when they work with benefits.
As for setting the rate, the big questions are:
Does the company have an alternative to you? How much does the company lose every day without your software? Or, how much do they believe they stand to gain when they put your your software into production? Do they believe they're facing a competitive window that requires a quick solution?
If you ask them why they want to use your software and what they want you to change, they'll probably be only too happy to tell you, if they haven't already.
Check exactly what your college position is on intellectual property generated while you're a student. I've heard the occasional rumour about unfriendly terms hidden away. In particular students agreeing to abide by the college standard terms and conditions only to find "...intellectual property belongs to the Regents of the University of ..."
That when you start out, the most important thing is Getting Work. Sure you could get paid $50/hr and make some money for a while, but if you get paid $25/hr, you'll find that they'll continue to find work for you because they can afford to.
Don't worry about 'standard market rates' etc, that sort of mentality is the reason work is going overseas. The original idea of 'market rates' is that the skilled worker Supplies a service. Supply is limited, so as Demand for your services goes up, Price goes up. Price doesn't start at the top.
Also, if you are good, you'll find that word-of-mouth starts to spread news of you and you never will need to sit through a job interview. Each new job you get, put the price up. Reputation builds and eventually you can choose your price AND get more work than you can handle.
Put the price up too early, you won't get enough work as people dont know if you are good or not AND they won't be willing to pay that price for someone who has no history. So you'll end up with a high-paying job that is NOT full time. Thats much worse than a mid-paying fulltime job that gives you the opportunity to grow faster.
Good luck, there is no hard-and-fast rule with this sort of thing.
This is a project you were doing for free. Now somebody is offering to pay you for it.
Instead of trying to figure out how much you can gouge out of them, how about show a little gratitude, say "thank you", and have nothing in that contract but a clause saying you retain ownership of the project? Any money you get for this is gravy. As long as you retain ownership of your code and are just being paid to do work you already wanted to do, no sense being greedy.
I prefer working on hourly rate. With task you need to have very accurate specifications. I met manager who said 'I need simple database of clients' what actually ment 'I need the database of clients, contacts, invoices, etc. with web frontend for users and administrators - and it must be ready next week'. They also tend to think that setting up specs is NOT the task to payed for...
-- mg
There's a lot of advice in this thread, and even lots of the conflicting advice is good - each for a given scenario. Problem is you don't yet know which one you've got, or at least we don't. You should discount all advice until you've answered a few basic questions.
- What do you want?
- What do they want out of it?
- What are their requirements?
The answers to these questions will tell you fairly directly which other advice to take from this thread - hourly rate, milestone, whatever. Then you'll get into budget etc., but for now you don't even know (or haven't said) how big this is - do they want major or minor features, is it a week's work or a year's work, full-time or part-time?This and the questions are ones that you'll have to answer, and obviously they form the personal question. Are you looking for the gravy train or are you just looking for some small assurance or assistance to ensure that your project will thrive? Make sure that your goals align with theirs, obviously... and don't try to be a blatant opportunist about it: if you started your project for a specific set of reasons, don't get confused about them now.
They want something specific that isn't stated, at least not here. They're trying to ensure longevity of the project, or feature enhancements, or something - understand their goals first, so you can decide if they align with yours or not. This is absolutely fundamental, but remember it is not a technical question and will not have a technical answer - this is a business question.
They will want specific features or will want specific milestones or minimum hours or what? They'll be looking for something measurable for their money. This is directly related to question no. 1, but the answer here may be a set of technical spec's, as this is the technical form of the previous question.
Remember, you have not just won the lottery. If their goals align with yours and would be things you'd do anyway, just find a fair and agreeable price and take it. If they conflict with what you want for your project, you'll need to evaluate whether or not to take it simply on that basis. Assuming things are good to proceed, if they make a longer-term committment to you, you may find you'll be able to lower your rate, as it brings extra stability and security to your income. Typically consulting work charges fairly high rates not only because software developers have come to expect fat pay packages, but also because they know they won't be able to bill 100% of their time, and when they are billing they have to build someing in to cover the lean periods. Once you know how big the project is, you'll be better able to fix a rate to it.
I'm a bit late to the discussion, but hopefully this will sift up to where it gets noticed, as I think it will help you - ask the right questions (personal, business, technical, and probably in that order) and you'll get the right answers. Still, it's just my opinion, I could be wrong.
Penguinista!
You will be un-assimilated. Resistance is just plain stupid.
...about open source programmers getting paid is this:
There is a psychologically well studied phenomenon called "Corruption of intrinsic motivation" (first to describe it: Lepper, Green & Nisbett, 1973).
Basically what it means is that if you reward people for doing something they like to do (i.e. they feel "intrinsically motivated" to do), they may not enjoy it as much anymore. Their "intrinsic motivation" to do it may become "corrupted".
So basically if you pay people for programming, something they did because they wanted to do it, it may actually result in them not enjoying the programming anymore, and in them doing it less after the payment/reward ends than before.
Now to some folk psychology: Think about yourself and how you felt motivated when programming for a project because you wanted to do so, and on the other hand, how your motivation felt when you were paid to program on anything (open source would be most interesting). I don't do a lot of (paid or open source) programming, that's why I would like your thoughts about that. Maybe there are even some psychologists around here that have something to say about this.
Robert
My job involves overseeing the development of software using a team of developers. As any software development manager knows, the difference in productivity between a top and an average programmer is often an order of magnatude, sometimes two. Put another way, a top programmer can do in a week what an average guy takes a year to achieve. However, a top programmer is only 2-3 times more expensive than an agerage guy - that is a great deal.
BTW I have also experimented with foreign programmers. They worked out fine, but the time difference was a nightmare. In my experience it was much better to pay more and to use domestic staff.
Now you understand why these guys' jobs are being outsourced to guys like you :-)
For a mature commercial product much time will be spent
-Negotiating the design of the product. This involve trips.
-Team planning time, if anyone else works on the product.
-Documentation and training the users.
-Design changes.
-Fixing bugs. Sometimes "missing features" are considered bugs.
Some useful software products may have a life cycle of 5-10 years or more. The initial coding time becomes a small fraction of the effort.
For short (less than month), single-person consulting products I build in 50% non-coding time. More like 75% for a more complex project.
I do what Star Trek Scotty does: double or quadruple my personal estimates. You could build-in an early-completion bonus (common in construction projects). Early-completion is rare in software projects, especially version 1.0s.
Skip the $9/hr or even $25/hr you should set milestones and get a lump sum, plus some sort of starting amount to make sure that they are serious. Lump sums are easier for the company and they won't get supprizes if they expect to pay $5k for feature X it costs $5K not 1000 hrs * $9/hr because you ran into problems. This is somewhat risky but as you are a student any money coming in is good. Estimate your time add 30-100% and set that as the lump sum. If you come in under time you make money, if you go over you'll know better for next time. But hourly is a bad move for both you and the company they don't know how much each fetaure will cost and thus become hesitant and worried that you won't concentrate or try and rip them off by overcharging hrs. You know how much you're getting so you can plan purchases and school expenses.
I don't want him to do anything.
If we're really talking about a ``few thousand dollars'', that would be a few long weekends of intense work, or a reasonable part time job during the semester. No need to leave school.
His question sounded as if this might be a little more than a part time job. If he's going to take a contract to supply professional services/produce a deliverable product, it won't be just a few thousand dollars, and he'd be cheating the company he's contracted to if he tried to carry on with school. He'd be cheating himself, too: his grades and learning would both suffer. No one can serve two masters.
Stay in school, get your degree, the money will come soon enough.
This is the part I really wanted to reply to. With the possible exception of government jobs, you don't get paid for a degree. You get paid for your experience, and for the next thing you're going to deliver. One old boy, who's been selling HR consulting for decades, told me: ``I'm always selling them on the last job I did.''
This young fellow should definitely finish his degree. Someday. Large bureaucracies often have standards which aren't performance related, and they usually involve easily-quantified things like degrees. The degree is a minimum threshold to keep out the riff raff, not a job ticket. Always, it's the experience which matters, and schooling is a weak substitute for experience.
I think that if he can land a contract which will keep him busy full time for a semester or two, and let him produce something which he can point to as evidence of competence, that will more than justify putting off the degree for a year or so. The fact that it would let him finish school without any student loan debt is just gravy.
I don't know if Linus Torvalds ever finished his grad degree, but he finished an open source program to which he can point as evidence of his abilities. He seems to be eating regularly, and able to change jobs at will. I realize that this kid's project isn't in that league at all, but it can have the same effect on a smaller scale: it can set him up for a good next job.
See what I've been reading.
If the company is willing to pay you, then they plan to make some profit on it. It's a tipical "build or buy decision".
Try to gather additional information on their intended use for your software. This way you should, at least, be able to begin a negotiation in a more knowledgeable position - a key factor in any negotiation.
I get $120 an hour for basic website development. Always have as others have said milestones and an estimate of what the work will take. Be specific that you can do such and such in so many hours and that if any other features or changes are asked for that it is billable over the estimated amount of hours at the hourly rate.
:) they will be happy with you and you will be happy with the job that way. If expectations are not set everyone will come away with a bad taste in their mouths nad most likely you won't get more work from them.
Everything in minute detail in writing as to what is promised by you and expected by them.
Audeo
Too late now, of course, unless you situation hasn't changed.
It may not be too late to fix this. You have the right to file an ammended return for the past xx (consult IRS for xx) years back, if needed. If you were not relying on your parents for your maintenance during those years, claiming you as a dependant on their return is fraud.
That said, I don't believe that your parents owed you a college education. As a disclaimer, I did live with my parents for free during my undergraduate work, but books, fees, etc. were all my bag. I'm in graduate school now, my wife is finishing her undergraduate work as well, and we are making it happen all on our own. Easy? Of course not. It did help that I was working full time for 2.5 years before we got married, so I was able to save up a little and acquire a few things during that time, but basically everything we had saved was burned through in the first year of married student life.
If you want to get a college degree, you can do it. If it is possible anywhere on earth, it is possible in the US. You are young, able to work, and able to think, so I know you can do it, if that's what you really want. It may take more than 4 years, and you may incur some debt doing it, but what you are saying is impossible to do because of your parents has been done thousands of times by people in worse shape than yourself.
I mean... they could pay for what they already see you've done. Then you could present additional items for payment as you complete things.
Do you think that other users might contribute to the cost of the features being asked for by this customer? If so, perhaps you could do something like PHPEdit, and share the costs of individual features amongst the users who need them - http://community.phpedit.net
so you're saying your parents wouldn't sign your finaid forms??? Good lord, that's fucked up. They should at least sign on the premise that your debt is your own (and it legally is anyway unless they file for a PLUS loan)
I think IHBT, but as long as the code stays free, why does it matter? Most of us don't want to live off the land or mooch off our friends, we have bills to pay.
As long as society requires money, I'm certainly not going to pass up a buck if it's offered to me. ESPECIALLY if it's for something I was doing for free before!
My solution is to set myself a rate (say, $50/hour) and calculate the number of hours I'd take to complete a particular project. Add to that some hours, to take into account possible dangers (Is this something new to you? Have you coded a similar feature before?), what I call "Customer Annoyance Factor" (some clients are *very* annoying, I just add +10% to compensate). Once you have the figures, just present the price, with 50% down, 50% on completion.
If the customer really wants to pay by the hour, set a minimum number of hours (to protect yourself from your own efficiency) and a maximum number of hours (to protect the client from you). This used to work well for me back in my freelancer days.
I've been doing mostly small-business and mid-sized business consulting for 10 years. Here's my strategy:
1) Don't do ANYTHING as a fixed price. I do this not because I don't know how long it will take to do what they ask, but because they hardly ever want what they ask for initially. The popular advice is to document the specs in the initial contract and create addendums whenever they change their specs, but in reality it will take forever to get anything done this way, as it will have to go back through legal (costing them more money that could be going to you) and taking longer (time you aren't spending on their project). Additionally, there is almost always some obscure thing that will throw your estimates off. Their source data could be inaccurate requiring you to write scripts to fix it or work with people in-house to gather it correctly. Their server could crash, requiring you to reinstall or reconfigure things that had already been done. The person you've been working with or training could quit requiring you to re-train someone new. The weirdest thing (that you can't think of when writing the contract) is pretty much guaranteed to happen at some point on a fixed-price contract.
2) BE HONEST. Tell them everything. I don't sugar-coat things for people. If they can't handle the truth up front, they're really going to have a problem with it down the road when you realize that what they asked for isn't what they really need. Here's my speech for when I design anything completely new for a company:
"This is something completely new for you. That means that it will have THREE phases. FIRST, I'll create the system that you want and you'll start to use it. This will take (however long you estimate). SECOND, as you integrate the new system into your business, you will find that there are parts of the system that you want to change, or new features that you want to add that hadn't thought of initially. This phase usually take 6-12 months. THIRD, once the new system has been integrated into your companies business processes, the side effect is that the business processes themselves will change due to the new system improving productivity (if not, they're wasting their money on the project). At this point, depending on the level of change, you will probably want to change the project again, as the original workflow that the project was designed to help is no longer the same (due to the project changing it as a side-effect). Depending on how significant a change, this may be minor or major changes to the project, your business practices, or both."
3) Legal Stuff: For regular proprietary stuff, retain the rights to your code and grant them a limited license to use within their corporation. I usually give them both source and executable with the limitation that it is licensed for use within their company and not for redistribution or sale outside their company. Many companies don't care, as long as they have the source code. The ones that do, I explain that I save them thousands of dollars in development expenses by re-using code that I have written for other projects. I intend to continue to do so, and if they want to OWN the code then I will have to write ALL their code from scratch, and not use any of my common libraries so as to avoid legally mingling "MY code" with "THEIR code". So far, nobody has objected past this point.
If your code is licensed under the GPL, explain to them what that means. As the OWNER of the copyright to the code, you can issue a non-GPL license governing the software's use if they want to pay more for the flexibility of having a proprietary (non-GPL) code base to own.
3) Don't sell yourself short. The fact that you have already written a program that they want to use is your resume. It is reasonable to charge $100/hr for a part-time gig, possibly down to $50/hr if they are willing to commit to a certain number of hours of work for you. If they balk, remind them that they didn't have to pay the thousands it took to develop t