How Do I Get Open Source Programs Written For Me?
An anonymous reader writes "I am a biomedical researcher interested in having general-purpose, scientific programs developed and released as open source. Interface design and reusability of the code are of primary importance to me. For my purpose, Cocoa applications relying on Core Data seem to be the best way to get the job done quickly. While I have some programming experience, I have few connections to the industrial world. So my question to Slashdot readers is: how do I find someone (individual or business) to write high-quality programs? Are there reputable contractors experienced in Cocoa? What sort of rates should I expect, to use as a starting point in negotiations? Would a requirement that programs are released as open source make it more or less difficult to find someone to do the job?"
The same way you find regular programmers. Just ask them to document their code and have in the contract that the work done is work for hire. When the job is completed, you own the copyright. At that point, release it under the open source license of your choice. For details, consult the GNU website on assignment of copyright.
#fuckbeta #iamslashdot #dicemustdie
Simple as that.
Let us review some basic truths:
1. Every good work of software starts by scratching a developer's personal itch.
http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/
I don't think 'wanting someone else to do it for you' quite falls into this category.
How Do I Get Open Source Programs Written For Me?
Offerings of pizza and beer usually work.
Kwisatz Haderach
Sell the spice to CHOAM
This Mahdi took Shaddam's Throne
If you find a project similar to your needs on freshmeat, sourceforge, etc. you can always contact the developer and ask them to modify/extend, etc.
A second option is to look at rentacoder.com - put out a request, your budget, and include the requirement about being F/OSS software. Get your bids, make a choice, etc.
Don't blame me, I voted for Kodos
...I should think you would be determining the end result of the program. If I read the question correctly, that is. You want to pay someone to write a program or programs. Then, you want to release them to the world as open source. The contractor would not own the code if as part of the RFC you stated the code would not be owned by them in any manner. The programmers may insist proper attribution in the source code, but attribution does not imply ownership.
Bearded Dragon
That's the basic rule. Based on what we pay for our contractors (Qt experts -- they are really hard to come by), count on between 600 and 1000 euros a day.
Perhaps you could contact a University with a good CS program, or something of the like. You could fund a few grad students to develop your program for beans, with the stipulation that the source code be GPL'd. Grad students can be cheap, believe me - I am one, and I make a whole lot less than minimum wage.
Quiz: True or False -- On a scale of 1 to 10, what is your middle name?
Find an interesting problem that people would like to work on.
If I have been able to see further than others, it is because I bought a pair of binoculars.
There are a few things about this blocking your path to open source success ... and even then, it's not guaranteed. So right off the bat, if you're depending on this to get a job or research done, you might want to exhaust all other options (footing the bill yourself/coding it yourself/seek help in your department).
... and I'm not a fan of the cost associated with OSX. But if this is a hard set requirement, you're winnowing down your possibilities. Just get them out there, put them on Sourceforge, post them here, get eyes looking at them.
... is this what you are interested in? I recommend your first step being to approach a friend who is a system engineer (again, seek help) and drafting requirements for your initial program. Once you have that, it will both make development very easy to do via open source and help you concrete your end vision.
First off, the Cocoa requirement reduces your target development community substantially. Is this necessary? Are you opposed to Linux based development and execution? Personally, I haven't done a darn thing with Cocoa nor do I own a single Apple
Second, where is the list of requirements? I know you're not a Systems Engineer but if you're not worried about this stuff getting out there, why not link us to a list of requirements. I know very little about what you need and therefore would have a hard time advising you on who to approach and how to do the job. I know a little bioinformatics (FASTA)
If you do end up approaching a business to help you, research them. Do they have competitors? Is this their bread and butter or a side project? Have they historically contributed to open source? Figure out these answers so you don't have a pitch meeting that they take as an insult.
My work here is dung.
If you're looking for Free/Open Source Software, you'll probably have better luck if you use F/OSS development tools such as GTK+ or QT.
The second half of his question is about pay rates and how to find programmers for hire. He does mention open source in the first half of the question though.
It seems like he wants to scratch a personal itch, but he's willing to put up some cash for someone to scratch it for him. Then once it's working, open source it and have the community improve upon it. So it's not the typical open source scenario of "start it yourself, put it on sourceforge, then try to get people involved."
I'm picturing this guy as an open source project manager. Eventually anyways. He's going to start out as a client to some programming firm. Then he'll take the code he paid for and open source it on sourceforge. Then he'll go through an open source recruitment phase. Finally, he'll be the one saying "we need this feature" and "I'm not accepting that patch."
What I'd recommend is to read the commit logs and notes for a large project. Study your Linus Torvalds. Read how he manages kernel commits paying close attention to how he handles rejected submissions. And the occasionally poorly received edict (for instance, when Linus moved to a pseudo-proprietary source control system) X.org might not be a bad study either, especially around the time of the split from XFree.
Learn how to manage an open source project correctly, and your odds for success will greatly improve.
Weaselmancer
rediculous.
Developers often aren't picky.
Flamebait or funny, you decide.
Finally had enough. Come see us over at https://soylentnews.org/
I've used - http://www.rentacoder.com/ for a few different projects.
You can put the request out with whatever terms you'd like and the let the market set the price.
as a biomedical researcher, you can:
1. inject them with a lethal toxin or virus that gives them 48 hours to live. you possess the antidote, but you won't give it to them until the programming is done. you may find this code to be slapdash and hurried
2. reprogram their genetic makeup so that they slowly devolve into an insect. revertion to homo sapiens status only occurs if the programming is done. their coding effort will be highly hierarchical, with independent nodes functioning in close cooperation, like a hivemind
3. surgically insert a biomechanical morphine injector directly into their spine. press the button, and give them rapturous pleasure. get them addicted, then demand they get no more fixes until the programming is done. code produced from this approach will be alternately pure genius, and pure garbage
combine #1,#2,#3. be the perfect bad guy. code will resemble naked lunch
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
First off, please realize that custom software development is likely to be a 5-figure investment. Just because you want to open source the end product doesn't mean that it will be cheaper to do. You may find someone to quote you a really cheap price but I guarantee you that you won't be happy with the end product and you'll probably end up spending more over the long run than if you had paid up front to do it correctly.
With that in mind, there are plenty of quality software consulting firms that will do this for you. To your developers, it shouldn't make a difference what you do with the end product. If you want to open source it, thats your business because you've paid for it.
If you don't have the money to pay someone else to do it, I'd start learning to write software and/or reach out to other lab rats in your field who may want to help
Over the last 20 years, I have worked for several small biotech companies in the boston area, and all have had large (> 200 K) budgets for software. The take home lesson is that there are a lot of really bad programmers out there, and the only way to survive is to have someone you trust , who knows how to code, vet them.
My current company has a really sharp VP/programming (whatever his real title is, thats what he does) and he hires good people.
This may seem like chicken and egg advice, but it is all I have
For examples, scan through almost any story at www.thedailywtf.com
But be careful about Ballmer Peak.
Persian Project Management Software as a Service
Post your job offer to the mailing list of any projects listed in the subject:
- Osirix (www.osirix-viewer.com/)
- VTK (http://vtk.org)
- ITK (http://itk.org)
- Slicer3d (http://www.slicer.org)
They are all 'BSD' type, meaning familiar with both the open source people and the industry !
cheers
I commend you for trying to find a programmer to work on this, rather than a biology student. As a bioinformatics programmer, I've seen the wreckage that results from the latter, and it's not pretty. There's a reason they don't let me in the wet lab, and it works the other way around, too. (I would never discourage anyone from learning to program for their own enjoyment, but if the results matter, you should act accordingly.)
The most difficult part of what you're trying to accomplish is finding a programmer who's competent and has the right mindset. I've been programming for decades, and it's still difficult for me to figure out whether a particular person is good until I've observed them for quite a while.
Regarding Cocoa, I think you should consider very carefully whether that's actually a requirement or whether it's simply something that sounds good. It's kind of like going to a doctor: you don't necessarily say "I want you to give me a bypass"--rather, this should be a long conversation with an expert in which you describe what you're really trying to do, and he/she provides suggestions and information about the pluses and minuses of various approaches. There may very well be alternatives that will be much cheaper and that you would be much happier with in the end.
On the whole, the requirement that the results be released as Open Source should actually make it easier to draw good people.
"Not an actor, but he plays one on TV."
post a question to this site, there are many programmers there. One will anwser you I'm sure.
For my purpose, Cocoa applications relying on Core Data seem to be the best way to get the job done quickly. While I have some programming experience
Why don't you either get more than "some" programming experience or stop making decisions on the framework / platform. This kind of crap happens all the time when non-technical people make high level decisions on language, framework, or platform.
And if you want it open-source why are you tying it to a particular OS?
If you use QT, or GTK, or WX you can still have it on OSX as well as others.
Developing software in a research environment is challenging. There are a number of constraints and conflicting interests that make it difficult for researchers unfamiliar with software to be truly successful. To make matters worse, the relationship between academics and professional software developers is almost non-existent, in large part simply because the research community has limited funds available for software development.
I've worked with a number of research labs to help bridge this gap and have developed a basic set of guidelines for developing software in research environments. In the end, the most important thing to do is draw a clear line between research tasks and development tasks. Understand what is in your area of expertise (research) and what is best handled by software engineers and other professionals. Then, depending on your resources, either hire a full time development team, a part-time consultant, or work with your university's IT staff to find local resources (many universities provide software development services). The place not to look is in the CS department: those students are there to do research, not write software.
I've put together a presentation that outlines a number of the challenges and how to address them. This presentation has evolved over the last 5 years based on a few ongoing academic research projects that have applied the ideas in it. Most of the ideas are standard practice in industry, but applying them to academic projects can be trick.
The slides are at:
http://www.osl.iu.edu/~chemuell/projects/presentations/vt-software.pdf
Good luck with your project!
-Chris
Comment removed based on user account deletion
If you want somebody to develop a program to solve a scientific problem in the biomedical domain, it is likely that what you need is a bioinformatician.
The asker does not mention in what context he is doing research. If at a university, offer the problem for bioinformatics msc students that need to come up with something for their dissertation project (or even as a phd project if the problem is considerably larger).
If the asker works in industry rather than academia, student placements would still be possible (offering a connected studentship), or simply hiring a bioinformatician.
What kinds of rates to expect. It depends a lot. You can find kids who will work for peanuts but then you want profesional quality well documented work that is well tested. You will have to hire some real software engineers, some real quality control peopel and some real technical writers and editers and graphic design people. I've worked in the software business for 25+years and I'll tell you that it is expensive. You'd be shocked at how little a million dollars will buy. For example I live in So. California and have a wife and two kids. How much money would I need to support a middle class lifestyle? Then figure in typical levels of productivity. In my area, embedded systems used by military equipment we are lucky to see 200 lines of code per month per engineer. But that is fully debugged and tested and we have very, very strict quality controls. If you are writing for the web then you can be almost 100 times more productive because crashes and failure is tolerated because people don't die when a web page fails. Productivity is also a matter of luck. Studies have shown that in any group of 6 engineers there will be a 2:1 ratio of productivly between members of the group.
"Lines of code" is a horrible mearse of a program's size but is as good as anything else we have. Typical LOC counts are about 5,000 for a simple but non-triveal program that one or two people might write. The Postgresql database system has nearly 500K lines and the Linux itself has about 10M line.
So take the productivity numbers, your line of code estimates and an assumed salery plus overhead, payroll taxes, worker's comp insurance, social security and so on. Pick 100K per year for young people and double that for those with 10+ years full time experience. Run the numbers with low, average and high estimeats and you will get the range of costs. And yes you might be able to pullit off using all low estimates if yuo hire students who work at home and alrady have a solid understanding of the science and math.
The worst case would be back when I worked on a radar system. In industry, radar is hard. Just over half the projects fail for technical grounds and this is even for organizations like Raytheon. We blew through millions and had nothing to show for it. But then producing maps in real time in the cockpit as a supersonic aircraft flies over the ground is not easy. But on the other hand if you are only creating forms on a web page, some kid will do it for you in a few hours. Cost depends very strongly on the problem domain AND the experiance of the enginers in that feild. In our radar case no one had yet solved this specific problem so going in we know we had a high risk.
Risk is I think a worse problem than cost. Most software managers try very hard to reduce risk and make of a plan A, B and C. at least. It is worth paying double to reduce risk by half. Your best risk reduction technique is to find engineers with the relevant experience. Who understand both the science and the programming environment. On a large project yuo simply can't find enough of these people unless your project is very generis (like an on-line store)
Good Luck.....
You have already "jumped to solutions" with this question. You have made decisions about the outcome that you haven't related to the actual problem. For instance, you have specified Cocoa, but you don't say why that specification solves a specific problem.
So, I guess I'd recommend asking a few questions like:
What do you want? What problem are you trying to solve? How many alternative ways could you solve this problem? What are the necessary constraints? What is the best alternative that satisfies solving the problem within those constraints?
For instance: You need to have a program that does "X". The program solves the problem of calculating and communicating by typewriter or longhand. The program could be written in C/C++, Qt, Python, Smalltalk, etc., etc.. The program must be maintainable by you and you only know C++ and Cocoa. Therefore you must select an alternative that includes these languages...
Most decisions are sub-optimal because people don't evaluate enough alternatives. This is OK if the decision is not important or easy to change, but the more time and money invested, and the more people involved in the use of the solution, requires you try to create an optimized decision.
Then you start picking the programmers. Under similar circumstances, I have found it best to check with the employment agencies, and ask around among my IT friends for referrals. Get references.
Good luck on your project.
"The mind works quicker than you think!"
Have you ever seen these programmers? Most of the time they've got more metal in their faces than in my car. It's like I always tell people, you want to attract a good programmer? Use an electromagnet.
"Just a fox, a whisper."
Well, to start, posting the question anonymously means that nobody who actually does this sort of a thing for a living can contact you :-). Not sure if that was the intended effect or not.
I run a 25-engineer development shop in Colorado named Cardinal Peak (http://www.cardinalpeak.com). We do quite a bit of development on OS/X and Linux, including open-source development, and I'd be happy to talk with you about your needs.
Please forgive the obvious self-serving nature of this response, but it seemed on-topic for the original question.
Here's how my previous job worked: We would find someone who wanted something, and charge them hourly to write it, and then give 'em a binary to which we're the copyright holder. Then that program would be a "product" that we would sell to other people in the same business. It was great for us (and not so great for them, but they didn't know better).
If you make it so that we don't have a proprietary product (developed at your expense) to keep selling over and over, then we're going to ask for more at the "charge them hourly to write it" part. (Well, either that, or you're going to do business with someone more competitive than us, who is ok with only being paid once for each unit of work.)
And to be fair, the business was actually a lot more honest than I just made it sound. And it is still a standard practice in the business (there just wasn't anymore more competitive than us). That's how things will be, until enough people like you say they're willing to pay for free software, so that it reaches critical mass and becomes the new standard.
"Believe me!" -- Donald Trump
For those who didn't notice, the ballmer peak occurs when the blood alcohol level reaches .1337
Most cocoa heads are well acquainted with the cocoadev wiki. Its job page seems to get alot of action. I know I've seen Apple post jobs there.
http://jobs.cocoadev.com/
Most experienced Cocoa programmers will cost you between $100 and $200 an hour. Maybe you can get someone to bid by the job and get it cheaper. Also if you are willing to deal with someone doing the work part time it should get even cheaper, especially if your project is interesting.
Less experienced programmers might take less to get a foot in the door or something for their resumes.
The open source thing would probably help, I think I would prefer to work on a open source project and would be more likely to take a job if it was going to be open.
But as far as determining rate I'm not sure it would affect things too much. I'll charge by the difficulty and time required.
So if you do want an experienced cocoa programmer and don't mind someone part time, leave some contact onfo in your reply. I can get back to you.
Find him a girl with a who likes geeks.
If someone is passing you on the right, you are an asshole for driving in the wrong lane.