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
1. Start open source project.
2. Ask slashdot why I'm not getting paid.
3. ???
4. Profit!
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
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
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
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.
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..
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 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.)
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
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.
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
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
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
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'll address this issue from the other side. About 1.5 years ago, my former employer wanted/needed to replace an aging application that was shared source. That application had been customized by a former employee, but the original perl source was deliberately obfuscated, and the customizations were an ugly hack, completely undocumented, and had been done by an employee who was later fired.
I found a GPLed project that would meet all our needs except for a couple of missing features. I took that to my boss and suggested we pay the author to add what we needed and GPL that code as part of the main project. This was approved in principle, so I contacted the author.
We quickly negotiated a set price for the features we wanted, and I took that back to management for approval. It was quickly approved, and he got to work on the things we needed. It was a real win for everybody. We got all we asked for and then some, at a great price. Because we were (at that time) the largest deployment of that software in the world, it got the most thorough workout and bug discovery process of its life and many fixes of previously unknown bugs resulted from our testing and use.
It would have been much harder to sell management on an hourly rate. Since I was able to go to management with a list of what we needed and a concrete price to get those things, the deal was approved almost immediately, with no dissent. Every level of management, from my boss to the top, liked the fact that they could put a specific, reasonable price on it rather than an open-ended situation that they would have had with a per-hour contract.
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.
I was just wondering...
How could you tell?
Most evil is done by good people, and not by accident, but deliberately; motivated by high ideals toward virtuous ends.
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
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.
Many years ago, (mid 80s) a friend of mine was working at a lab which, among other things, had a small handfull of UNIX boxes (SGI, SUN, Vax). He managed to finagle me the right to use the equipment in off times to do some of my own computing research (strange sorting techniques, mostly).
While using the machines, I noticed that there were some problems with the way that they were set up, so I also spent some time cleaning up the admin (for whatever reason, I also got the root PW).
In time, his boss found out what I was doing and he came to me with a speech along the lines of: I notice that you've been doing some work on our machines, but in doing some inquiries, it seems that you're not a member of this lab this department, or -- for that matter, not even a current staff or student at the University. This means that if something were to go wrong, theres nobody who could really take responsibility for you being here or what you're doing, and I really don't have the right to ask you to do specific things.
So either you're going to have to accept payment for what you're doing here, or I'm going to have to stop comming here. With some surprise and shock, I chose the former option. He then asked me how much I wanted to be paid for my time.
I quoted him a number which was a bit over twice the minimum wage, and he frowned at me. After thinking for a moment, he offered me a different number -- about twice what I'd offered him. His explanation was that he wanted to pay me enough to ensure that I wouldn't be hired out from under him by the first yokum to come along.
I think that it's very human to underestimate the value of the work that we do -- especially when we enjoy doing that work. All I would really suggest is that you trust that they see value in the work that you're doing, and they know far better than you how much money it's making them (My guess is "lots"). Be willing to stretch yourself in accepting that valuation, and asking enough that you're not regretting the decision later and don't have to make a pained choice later on between staying with a project that you enjoy or going off to a 'real' job that might be less enjoyabe, but would better support your lifestyle.
Free Software: Like love, it grows best when given away.