Good question.
Recently I got such a job for a company that's currently expanding and is in a state of distress, and I honestly didn't know what to charge, seeing how this was my 4th job ever, and my first real programming job, that is where i was hired to program, and not ended up doing some.
Anyway, it was also my first contract position. I had no clue where to start in even considering what to charge, so I asked my Java teacher(yes job was Java too) who has been in the business for over 25 years. This guy really had some rap sheet. He did everything from writing monitoring software for cores at nuclear power plants, here(US) and in Japan, to writing database packages ...
So I ask him, "You know what I did it's a simple servlet to query a database and spit back some info in a nice html template. What do you think I should charge? I figure since this is going through the college, I'd knock off 10% off market price. So what do you think?"
So he says, "Oh $50.00/H, just charge $50.00, that's what I'd charge if I were you."
I was very pleased, and then he says "Next time, charge a $100.00/h."
<lh>So here is what you need to keep in mind(I did):</lh>
- First take into consideration what it'll take you to do it.
- What does it exactly entail, make sure you get a good spec, and most of the time, you will be telling them what that needs to include.
- Think about how much time it will take you to hash it out.
-
Don't forget how much 'research' will you have to do to complete this job, like if you're not familiar with some packages that will be essential to completing this.
- Don't forget about all the time you spent getting the spec and talking to these people, as well as installing the thing.
- Don't forget to not guarantee anything working unless you yourself install it, you won't beleive the amount of incompetent boobs the company will have
- Documentation, documentation, documentation. Don't worry about your code being too readable(reasonably readable is ok) and make sure it's commented well. Self describing variablenames and comments are always a must. Also don't forget about providing some kind of readme file describing what they need to do to keep your program working nicely.
- Don't forget the timetable they're giving you. The shorter the time, the higher the damage($$)
So after you thought about all that, tally up the number of hours you think it'd take you to do what you need to do, and then tack on an extra hour(or two) for each task. Charge $50/h(or more ;-) for all the time you actually do programming, and about $30 for all the time you spent talking, negotiating, and installing the thing. Add up all the numbers, and then tack on an extra 1-4 hours for those just in case situations(at $50.00/h ofcourse), cause something will always go wrong, and let that be your price for the job.
They'll get a reasonable price, you'll be compensated nicely(if you do your job right), and everybody will be happy.
Keep in mind ofcourse, that it took me about 10 hours to write the sucker, plus about 2 hours of research, and 2 hours of documenting time. My just in case time came to about 3 hours, and they'll be rehauling their servers soon, so i tacked on an extra hour on that. They thought they got their moneys worth, and so did I.
___crazyinsomniac_______________________________________
Disclaimer: Don't blame. It came from inside the void
perl -e "$q=$_;map({chr unpack qq;H*;,$_}split(q;;,q*H*));print;$q/$q;"
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.