Subj : Re: How much should I charge for fixed-price software contract? To : comp.programming,comp.lang.java.programmer,comp.lang.lisp From : Scott Ellsworth Date : Thu Jul 28 2005 05:51 pm In article , rem642b@Yahoo.Com (Robert Maas, see http://tinyurl.com/uh3t) wrote: > > From: Scott Ellsworth > > Your attitude, from the outside, _appears_ to be one that will offend > > many potential employeers. > > I have 22 years experience in writing computer software, including > assembly or machine language for several different CPU types, including > several mid-level and high-level programming languages, including > utilities and applications in many different fields. I'm currently > available for work and seeking employment or contract work. In your > personal opinion, what part of that would an employer find offensive? Let me re-emphasize that this is just my _personal_ opinion, and that I was commenting on how it _appears from the outside_, not anything about how you actually work. That said, I found the cluster of comments around "I've been begging people to look at my software I've already done, but they say they don't have the time or interest" to be negative. No problem with that, of course, on usenet, but negativity offends hiring managers. Since I tend to be the team pessimist, this is a problem. I am never going to be a rah-rah cheerleader, so I try to be more balanced than my wont. I might have taken "Your comment is irrelevant because I don't ask for money from anyone, not minimum wage, not any amount whatsoever. It makes no sense to ask money from somebody who has never indicated any willingness to pay me whatsoever" and "From a false premise like that, anything you say next is worthless" to email. Then again, I might not. Again, _personal_ opinion. Use it, or ignore it, as you like. By the way, all of what follows only applies when you are doing job networking, and trying to move towards an eventual job or contract. Talking to my next door neighbor at the 4th barbeque has different rules. > > Employers want to see eagerness to do the work, > > Before I respond to that remark, I need clarification: Are you > referring to paid or unpaid work? Are you saying employers want to see > people eager to do unpaid work or paid work? Paid work. Sure, they are giving you money for it, but my experience has been that they want to see some amount of excitement. Glee, even. (Sound's hokey, but the best ones want to see you enjoying yourself, because they usually find the job fun. When the fun ends, the job usually does too, IME.) Unpaid work is rather different. Enthusiasm still matters, but often, that enthusiasm is focussed on the organization's goals, not the code. For something like ANT, it can be treated much like paid work, save that the 'how much will it make' is not as important. For something like, oh, the donation tracking software I worked on for a local charity, they were far more interested in how much I liked the charity and its work than in how the software would save them time. > > combined with an awareness of how what you do will make them more > > money, > > I'm sorry but I'm not privy to the internal financial affirs of various > companies. It's the job of the hiring manager to observe what software > I can produce and then decide whether such software would or would not > result in profit for the company. Right, but if you have a good idea how they make their money, then you can adjust your pitch. For example, if a client of mine is working on drug discovery focussed on lab work, I do not really push how much time we can save their IT staff, or how we have written robot control software. Thus, part of your goal in pre-interview research is to figure out what is going at the company, and what kinds of things they might be doing. You also likely want a set of interview questions designed to test those assumptions. For example, one company contacted me about mysql and access, as they were having trouble with their customer contact database. I came in with a list of commercial products, and a list of 'is this why you want a custom job' questions. Had they responded that these programs would solve their problem, I would have talked myself out of a job, but I would have slept better. It turned out that they did not want commercial software because they had people in house who wanted customizations on a daily basis. Ok - I can help with that, and that was one of my theories going in. > > or will let them accomplish their goals. > > Tell me what their goals are, and I might be able to say whether my > softare wuold contribute toward accomplishing those goals. But I can't > guess what the goals of some company might be, at least not in any way > relevant to deciding whether my software would help that goal. [...] Very true. After a certain number of years, we all have done enough that we have to pick and choose what to talk about during the interview process. That said, I can guess what their goals are. Before an interview, I usually have read the last few annual reports, just to get a feel about what the top level guys have been talking about. I can then at least start with 'ok - your company seems to be really pushing the federal grant angle. Do you have a lot of custom software handling that paperflow', assuming I want to write grant software. My point was that I come in with a guess about what they are doing, and try to refine it at every contact. This way, even if I do not get the job, I come away with a better model of what that company does for the next time I talk with them. > > You are implicitly asking them for money, even if you are not holding > > out your hand the moment you walk in the door. > > There's a subtle but important difference between what you say and what > I do. Consider the difference between the high-pressure car salesman > who drags you to a "special" car and virtually insists you buy it, > compared to a customer service representative at Macy's who is > obviously there available to help you but who waits for you to ask a > question about something or upon noticing you fretting around like > you're frustrated trying to find something might ask if you would like > some help finding something. Thing is, there is a wide range, and not just in one dimension, between those two examples. A pushy used car salesman driving you to a 'special' car is rarely trying to solve _your_ problems. He is trying to solve his. In the case of employment, it is a bit different. I am selling myself, not code I have already written. Part of what I bring to the party is the code we have developed in house to solve certain problems, but really, the thing being sold is problem elimination. I guess your problems, I propose general solutions, and if I have guessed right, we discuss how to turn the general into the specific, and what it will cost. At the end of the day, my job is to help my clients get their work done. If they could do all the work themselves, they probably would not be calling a consultant. We do cause sticker shock, and we can be terminated at any moment. Salaried employees can as well, but some bosses feel guilty about that, which is not the case for someone you hired for a few months of work. When I have been in the salaried side of the house, I saw my job as shipping working software. The reason for the difference? They had committed to a longer time horizon, God willing. Contractors are less likely than a salaried person to last an entire project, so contractors are more likely to be hired to make a specific person's life easier. So, think of it like a custom tailor. One who hits you up the moment you walk in the door with '$50 minimum' is not going to deserve your business or your time. It is, though, incumbent on him to tell you that a bespoke suit runs about a grand (I think, never bought one personally) early enough that if you were after a Men's Wearhouse price, you know. > When I am contacting some company about employment, I'm merely saying > that I'm available, presenting a summary of what I can do, and leaving > it to them to take an interest and express that interest to me and ask > for more info. I don't harass the employer like a car salesman trying > to insist they should pay for what I offer. Harass, no. I do, though, try to get across what kinds of problems I can solve, what those problems usually cost, and what I cost by comparison. Ideally, this comes up early in the process, because if I am charging way more than they want to pay, why waste either of our time? Let me be clear - I may not express it right away, but I go in to most such networking situations thinking 'what can I do for this person', and 'what is that worth'. If I get 'nothing' and 'nothing' I still want to know more about them, because people are interesting, but I am not likely to be working for them. > I'm not directly asking them for money, like **expecting** that they > would be the next company to hire me, and getting angry if they don't > say yes. I'm simply stating that I'm available if they happen to want > to spend money to hire me. It's a hypothetical, I'm available if > you want to pay for my services, rather than GIVE ME GIVE ME GIVE ME. > So do you understand why it pisses me off when you express it in a way > that makes it seem like I'm demanding to be hired instead of merely > offering my services contingent on suitable pay? I suspect we have hit the core of our difference here. You feel that you are not asking them for money, because asking for money means being pushy and demanding, and getting pissed off if they say no. I feel that every job interview is asking them for several hundred thousand a year, once you count benefits, and thus it is implicitly asking the potential employer for a lot of cash. Not much up front, but a bunch down the road, so I have to let them know what they get out of the deal. It is far from the first thing we talk about, because we have to figure out what needs to be done before we can talk about what it will cost. That said, once we have some idea of scope, they deserve to know what my solution will run. I do not get pissed off when a contract falls through, as long as everyone acted in a reasonably professional manner. They do not owe me a job, but since custom software does not have a price tag on it explicitly, they have to ask me what I am going to charge. Better, in my mind, if they have a pretty good idea early in the process. Since we are not likely to agree on this, I suspect we should drop it. > > As I said several times, RSA Data Security was the only company where I > really expected to be hired, because I had already on my own time > developed software exactly like their main line of business, and I was > quite unpleasantly surprised when they didn't hire me. With every other > company, I think of it as a chance, maybe they'll hire me and maybe > they won't, and I have no expectation either way. > > > Part of your task is to convince them that you are someone they want > > to give money to, in return for what you offer them. > > I don't understand the difference between what you're asking me to do > to potential employers and what the high-pressure car salesman, or the > door-to-door salesman, does to the poor customer. I'm just not the kind > of person to treat people with such disrespect. If you mean something > else, you're not communicating it well. Only you know what you can do for them, and only they know what they need. You have to guess, based on insufficient information, what they need, and what that is worth. The entire negotiation process is an attempt to work that out. > From a scientific or aware-consumer viewpoint, that is the policy that > actions speak louder than words, that proof is in the pudding, that > evidence weighs a lot more than what you say, the only way any > potential employer could be really sure I can do the job would be if > they gave me an "audition", some small exercise where I could prove my > muster. I've offered to do auditions but no company has taken me up on > my offer so-far. (If any potential employer is reading this and wants > to audition me, connect to my login page: > http://shell.rawbw.com/~rem/cgi-bin/LogForm.cgi > log in as guest1 with password free, and send me a short message > introducing yourself. Or send me e-mail to my Yahoo! Mail address, > where your e-mail will be mixed in with tens of thousands of spam, then > connect to my login page to let me know you sent me the e-mail so I'll > be able to sift through ths spam haystack looking for your e-mail > needle by searching specifically for your particular e-mail address.) > > > If someone calls > > How would anyone know to call you? My contact info has been posted on > the net many many times in my search for employment and nobody has > called me for many years. They obviously don't bother to read the > online resumes, or they would have found me and called me already, so > why would they call you? A fair question, with a complicated answer. Online, I try make my posts technically useful, in hopes that they will solve someone else's problem, and make them want to track me down. I do happen to have some space on my dance card, so I am calling people I have worked for and with, and letting them know. One of them may have something, or perhaps one may need something from me. Bread on the waters. I am also spinning up my involvement with some projects I want to get better at. If I make a useful contribution to a project, I would hope that work will result. If not, at least I have a new tool. > > I would not go below $15 an hour, and something in the $30-$50 sounds > > a lot closer to what I would expect for a reasonably experienced and > > competent software guy. > > Well that's about the range I would expect, but given that I have never > gotten any such offer, it seems silly to turn down any lesser offer if > it appeared. I'd much rather earn $15/hr than remain unemployed due to > holding out for $30 and refusing to take any less. The highest offer I > ever actually got was $25/hr 1099, and I took it. Sure - I have taken contracts all over the map when I needed to, where the pay, or the work, was not my ideal. Part of effort of finding good jobs is to let you not have to take the bad ones. (NB - bad for me is not bad for you, and vice versa. I hate Perl, but like Java and ObjC. I am starting to like Ruby. For our Perl master, there are jobs that are wonderful which I would find hellish, and vice versa.) > > If you do not know what your skills are worth, find an open source or > > a volunteer non profit, and do some work for them. > > I've already spent several years doing that sort of thing, and it never > turned into any chance of money in that area, and I'm pretty much > burned out giving my free labor and getting neither money nor any > social benefit in return, just take my labor and throw shit back at me. > Fool me once, shame on you. Fool me twice, shame on me. > Sorry if you don't like my current attitude, but I tried your idea for > quite a number of years and it didn't result in any money, ever, and > I'm not willing to continue making the same mistake just because you > beg me to and plead that it won't be so bad this time. Where, in the above, did I beg and plead? You suggested that you had no idea what your skills were worth, and I suggested that an open source project might give you that information, by showing you how your skills compare with others currently getting paid. If you have another path, by all means use it. > So anyway, you say I should demand $30-50 per hour, and the other guy > says I should demand at least $80-100 per hour and not take anything > less, because anything less than $80/hr shows I'm completely worthless. > (Yes, I'm paying attention to the various advice I get in this thread.) Fair enough. Scott -- Scott Ellsworth scott@alodar.nospam.com Java and database consulting for the life sciences .