Subj : Re: How much should I charge for fixed-price software contract? To : comp.programming,comp.lang.java.programmer,comp.lang.lisp From : rem642b Date : Thu Aug 11 2005 10:42 pm > From: Scott Ellsworth > 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. I was just being honest. In 1969 I developed a really good algorithm but didn't have anybody to show it to. In the 1970's I implemented it in Algol but didn't use it much at that time. At the start of 1995 I adapted it to run on my Macintosh Plus and found it very effective at teaching my children how to read and spell when my son was in kindergarden (when I first wrote the program) and later when my daughter was not yet in kindergarden. I impressed everyone around with their abilities that exceeded their classmates, but I couldn't get anyone to come over and witness the program itself, up to mid-1999 when my Mac Plus blew the power/video board and I didn't have enough money to get it fixed so I had to retire the program. Meanwhile I had developed a lot of other useful software on my Mac Plus and I couldn't get anyone to look at them either. Then in late 2000 I discovered that my Unix shell ISP had CMUCL, so I started porting some of my software to Unix, but again I couldn't find anyone to sit with me for a demonstration of my software on my Unix shell account. Then at the end of 2000 I discovered how easy it was to make my software run in CGI mode, so that it'd be accessible to just about anyone anywhere on InterNet, so I set up some CGI demos of some of my useful software modules that had been previously ported to Unix shell. I was hoping that with CGI, people wouldn't have to come to my apartment to see a demo, I could now take the demo to whereever they had a Web browser. I hoped I could show what I had already, then interface more demos with CGI and show that too, and pretty soon somebody would see so much good stuff they'd decide I'm worth hiring me. But it didn't work out that way. I could only get one person in Real Life to take a serious look at my CGI demo. He really liked it, but didn't know of any jobs he could refer me to. So I'm frustrated that nobody (except that one person) is even interested in looking at a free demo of even a tiny portion of what I've accomplished in software. I'm not the kind of person to toot my own horn, to brag and brag and brag incessantly until somebody takes a chance and hires me without any evidence except my bragging. I'm a shy kind of person who would rather show a demo of my work and let the other person decide if it's good or not. But if nobody will ever look at my work, then nobody will ever have any reason to hire me. So if I can't brag about my abilities (because I'm not the braggart type), and if I can't show demonstrations of my work to people, then what's your advice how to ever get somebody to hire me again? > all of what follows only applies when you are doing job networking, I've never been able to do that, because I've never been able to find anyone willing to refer me to anyone else, with one exception: A few weeks ago I was trying to get a roll of quarters for bus and laundry but the bank had closed earlier than I expected, so I dropped by the post office but they were closed too but somebody referred me to the post office annex around the corner that was open on Saturday, but they didn't carry any significant amount of money. Before leaving I happened to ask if they knew anyone in the area who might hire me for computer programming. They referred me to a guy who had an office very close to the annex. I checked there, met the guy, and indeed he is working on projects where he might need a CGI interface to some standalone software he'd already written and was marketing. So the referral from the post office annex to the guy needing CGI was one instance of "networking". But so-far that has been a dead-end because he hasn't gotten any contract to do the CGI stuff so doesn't yet have any money or need for my services, and he doesn't know anyone else to refer me to. All other times I've asked anyone if they knew anyone hiring, they either knew their own company definitely wasn't hiring and didn't know any company that was, or they didn't know about anything specific in their company so I should check the Web site, which I did only to find it devoid of any job ads except the ones that require 3-5 years fulltime paid experience in each of ten or twenty technologies that didn't exist more than five or ten years ago, the same as I get from Monster.com or CraigsList or any other regular job site, all worthless to me. > > 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. OK, let's work on on a single example: I'd like to work for Sun Microsystems, implementing some new ideas in Java. But Sun doesn't make money from Java, they give it away for free. How does Sun actually make its money, and how can I make a pitch in that direction if I'm actually intending to develop Java further, or at least that's what I'd like to work on, actually I'll do whatever they pay me to do, but if I'm to be excited about my work it should be something I'm personally advocating, or something else I haven't thought of which somebody there mentions to me which makes me interested in it. So anyway, how do I learn how Sun makes money?? I have no idea. I don't a Google search for "how Sun Microsystems makes money" would give me the info. OK, just to cover all bases I tried that search just now, and saw comments about how Sun ought to make money or is trying to make money, but nothing about how they actually make money, not even on selling operating systems. So do you know how they make money?? Or even if they do? > 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. OK, back to Google: Sun Microsystems annual reports Done, none of the matches provide any online access to Sun's annual report. So I guess I don't have that option unless you know of a secret place where their annual report is available that Google doesn't have indexed. > In the case of employment, it is a bit different. I am selling > myself, not code I have already written. I assume you mean to say you are selling what you can do in the future, not your physical biological flesh, right? So how is it possible to sell something that doesn't exist until the future, with no reference to what I've already done that is indicative of the range of things I could do in the future? > 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. Please clarify what you mean by "problem elimination". It sounds like "pest extermination", but I don't think that's what you mean. Do you mean like if they have a business procedure involving five steps, but one of the steps is taking an inordinate amount of time, but if that one step were automated in a way that fit in with the other steps nicely then that one step would take much less time without any bad side effect on the procedure as a whole? Or one of the five steps is producing very inaccurate results which is messing up the next step after it, and if that one step were made more accurate then the whole procedure would come out better? Or am I guessing wrong? > At the end of the day, my job is to help my clients get their work done. That's what I'd like to do. How can I find somebody who needs help and is willing to admit it to a total stranger like me? > think of it like a custom tailor. ... 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. I suppose you could characterize my work as custom software at Men's Wearhouse price. > I do ... 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? I have no idea how much other people charge for custom software on a per-use-case basis or per-function/method basis, so I wouldn't know how to compare their standard charges with my (hopefully) more-affordable charges. > I go in to most such networking situations thinking 'what can I do > for this person', and 'what is that worth'. I have no idea how it's possible for a person such as myself seeking employment (in the generic sense of *any* mode of formal paid work, not necessarily W-4) to have any reasonable idea whatsoever how much a work of software will truly be "worth" to the company hiring me. So all I can honestly claim is what capabilities my new (future) software will provide, now how much additional profit it'll produce for the company using it. > I feel that every job interview is asking them for several hundred > thousand a year, Shit, that's an order of magnitude more money than anyone ever paid me for my work. I would feel like an idiot even mentionning the possibility of so much money from a new employer. Now I've made a few significant inventions, such that I think I deserve about a million dollars for rights to each, but that possibility is just pie in the sky, not anything realistic. > 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. OK, we're in complete agreement on that. I personally need to know enough about what is needed that I can assess whether it's even likely I can do the job with reasonable effort in the first place. I don't want to talk myself into a job where I just sit there frustrated that I can't figure out how to accomplish the task, and get fired for incompetance after two weeks or a month. I'd rather let somebody more qualified have such a job, so I don't get a reputation as somebody who talks his way into jobs he can't handle. Note that in all my past jobs, I *could* handle the work, I *could* accomplish the objectives. I *could* produce software that did what was expected of it. The only borderline case was a pure A.I. research job (designing software to convert sloppily-phrased typewritten English-language instructions into precise algorithms, by having the "robot" recognize ambiguities and resolve them by not by asking the human what he/she means by the ambiguous instruction but instead by actually single-stepping the algorithm up to the point where the ambiguity in instruction means ambiguity in what micro-step to perform next, and at that point asking the human which of the various micro-steps he/she intended at that point, and then reflecting that decision back into resolving the ambiguity of the original English command). In that pure-research project, it wasn't necesary to produce useful software, merely to explore the idea and see how it worked in test cases and then publish a paper in some computer-linguistics journal. The title was "English Language Interface for an Instructable Robot", but it was in some obscure journal I never heard of and can't remember now. I wonder if Google has it indexed: English Language Interface for an Instructable Robot Patrick Suppes Robert Maas Ha ha, the only match it finds is my resume where I mentionned that, sigh. Is there a good search engine for finding articles in computational linguistics journals? > 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. I was going to amend that to say that sometimes from knowing what they are doing and how they are doing it I can sometimes say what they need, but then I guess you'd consider that guesswork on my part, which you already covered. But sometimes my guesses are very educated or knowledgeable or informed or expert, for which the word "guess" seems off-base a little. As I said, I can't guess at all how much it's worth to the company's "bottom line" (net profit). > 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 that too. A couple people have contacted me privately about some hairbrained idea of the moment they felt a desire to do, such as using a programmable logic array to emulate a Lisp-machine CPU, and I'd start talking with them regarding more specifics of what they wanted to accomplish and how to do it, and I'd start brainstorming a prototype (strawman) design as a starting point for the analysis/design stage, but within a few days they'd realize their original idea wasn't a good one and they'd close off communication on that topic. I've never had a serious contact from somebody who had a serious workable business idea. I have no idea why the serious people contact you but not me. I've proposed a heap of good ideas for future R&D projects, regarding Java libraries, abiogenesis research, whatever, but none of it has triggered anybody wishing to hire me to develop some of those ideas nor even for developing their own business plans that were similar enough in general ways to my proposals that they would think I might like their ideas and be able to implement them. So why do you get such offers, but I don't? I've done more than my share of helping people online for more than thirty years, in the Stanford and MIT and ARPANET communities way back then, and over the InterNet since early 1991. > 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. I don't have that option. I don't know how to contact anyone from my former work except Patrick Suppes who retired about ten years ago, my supervisor there who got laid off at that time when Pat shut down IMSSS where we had worked, and some people from the Stanford A.I. lab who have all retired. None of them know of any current or recent openings to suggest to me, and none of them have any connections to anyone else who could talk with me about employment etc. > I hate Perl, but like Java and ObjC. I like Java but Lisp better for most purposes. I hate Perl, for one precise reason, that it mixmashes lots of datatypes together so you can't tell what type an item is supposed to be and you absolutely can't distinguish two different types that happen to have the same print representation such as strings whose characters all happen to be digits at the moment and actual numeric values, so a+b could either add or concatenate depending on what characters happen to be in the two strings at the moment. I'm curious as to your reason for hating Perl. > I am starting to like Ruby. % whereis ruby ruby: It doesn't seem to be available here on FreeBSD Unix, unless there's some other name it's called here, do you know the correct filename to look for on Unix? Anyway, AFAIK I've never had access to any system that supported Ruby, so I'm jealous of your situation of getting a chance to try it. > 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. The whole point of open source is that nobody is getting paid one dime for all their work, and the work will be given to the world at large absolutely for free, right? I don't see how that kind of environment will produce any data whatsoever about how much people get paid in their employment if any they might have elsewhere than open-source projects. In the past, open-source projects I've worked on never had any hint of money anyone was getting from anywhere. I don't see why it'd be any different now. What am I missing about the argument you're trying to make? Oh, are you saying the project wouldn't tell anything about pay rates, but might tell something just about raw skills and abilities and productiveness of variuos people as they contribute to the project? It didn't work out that way either. Each of us was working on totally different implementations, and it was impossible to compare one person's work on one system compared with another person's work on another system, and no record was kept of how many hours anybody worked so there was no way to compare per-hour-worked productiveness of the various people. Just at one group meeting somebody would say they were working on something, and then a month or so later at another group meeting they'd announce they had their implementation partly working and they'd pass out printouts of their source code (8080 assembly for example). I had no idea how many hours of work it took them to write and debug ten printed-pages of code. I didn't even keep track of my own time on such free projects, so I didn't even know my own rate of production per unit work time. So, I ask everyone, how can I find somebody with money for hiring who would interview me for serious consideration for some kind of paid work? Is there any value in showing work I've already done as a sample of what I am capable of, toward the goal of getting a serious interview? Is there any online software-piecework morket where I can make bids on small (*) tasks somebody wants done, and if I'm the lowest bidder then I have one week to finish a fixed-price contract per my bid? * (expected 20-30 hours work needed to complete such a software task) .