Forgot your password?
typodupeerror
Programming IT Technology

How Do I Get Open Source Programs Written For Me? 285

Posted by kdawson
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?"
This discussion has been archived. No new comments can be posted.

How Do I Get Open Source Programs Written For Me?

Comments Filter:
  • Cash. (Score:5, Insightful)

    by Gordonjcp (186804) on Friday November 07, 2008 @11:28AM (#25675843) Homepage

    Simple as that.

  • by hedronist (233240) * on Friday November 07, 2008 @11:29AM (#25675857)

    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/ [catb.org]

    I don't think 'wanting someone else to do it for you' quite falls into this category.

  • by Sneftel (15416) on Friday November 07, 2008 @11:30AM (#25675877)

    Getting paid is, for most developers, a "personal itch" worth scratching.

  • by Anonymous Coward on Friday November 07, 2008 @11:30AM (#25675881)

    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.

  • The Academic Route (Score:5, Insightful)

    by EaglemanBSA (950534) on Friday November 07, 2008 @11:31AM (#25675889)
    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.
  • Step 1: (Score:4, Insightful)

    by Qzukk (229616) on Friday November 07, 2008 @11:32AM (#25675899) Journal

    Find an interesting problem that people would like to work on.

  • 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).

    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 ... 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.

    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) ... 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.

    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.
  • Cocoa? (Score:3, Insightful)

    by andy753421 (850820) on Friday November 07, 2008 @11:35AM (#25675949) Homepage
    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.
  • Your best source (Score:1, Insightful)

    by shareme (897587) on Friday November 07, 2008 @11:35AM (#25675961) Homepage
    Your best source are those students in your labs with CS classes already completed..Bioinformation Degree students usually have that area covered
  • by tzhuge (1031302) on Friday November 07, 2008 @11:38AM (#25676013)
    I second this idea... especially the grad student part. Better yet, find a way to make this work part of a thesis for one of these students... then you might not have to pay them at all. :)
  • by MrNaz (730548) on Friday November 07, 2008 @11:43AM (#25676097) Homepage

    Getting paid for as little work as possible is the real nature of the itch. Recognize it for what it is; if your developers don't have any motivation to write excellent code, they won't. You'll end up with the barest minimum that satisfies your requirements list and any use cases you gave them, and not one iota more.

    I say find a few other people who are in your same field who perhaps are more code minded. Get a group together with a common itch, and organize yourselves to do it together. For small niche products, that's pretty much the only way. Anything else will either be prohibitively expensive (hiring top notch developers with a track history to maintain) or result in mediocre results (hiring developers whose interest stops at the paycheck).

  • by chrylis (262281) on Friday November 07, 2008 @11:51AM (#25676215)

    Perhaps so, but if the programmer is aware that his code will be available for future customers to see, that provides a pretty strong incentive not to churn out crapware. This works in most of the rest of the economy, and it's hard to believe on faith, as so many seem to, that it can't work for software. I doubt that all of the programmers hired to work on Apache or MySQL always feel pumped about writing whatever regression test needs doing, but even if they had no personal pride in their work, there would be the external incentive.

  • Raise Money (Score:3, Insightful)

    by kevin_conaway (585204) on Friday November 07, 2008 @11:58AM (#25676325) Homepage

    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

  • Networking (Score:1, Insightful)

    by cybaz (538103) on Friday November 07, 2008 @12:07PM (#25676419)
    Since you plan to release this as open source, I expect that you believe there are others who would be interested in this software. I would try to identify other people who may be interested in it. Then see if they have the time/talent or know others who do that could assist.
  • Re:a few ways (Score:5, Insightful)

    by lysergic.acid (845423) on Friday November 07, 2008 @12:13PM (#25676489) Homepage

    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.

    that's actually a very good idea. i'm surprised nobody thought to mention this earlier. there are already tons and tons of open source projects out there. there's no need starting a fresh new project when there's already an open source application that fits your needs and is much more mature and already has a development community around it.

    if you're willing to pay the developer(s), there are tons of open source projects out there that could use the funding. who knows, maybe one of them is exactly what you're looking for. it's hard for open source projects to reach critical mass when everyone wants to create their own application rather than contribute to an existing project that might fulfill the same objectives.

    one of the great advantages of open source is that there is room for both cooperation and competition. even if you don't find a project that fits your needs perfectly, you might be able to fork an existing implementation that you can use as a starting-off point. that reduces the amount of redundancy in the code space. and if you can revived a dead project, then even better.

    i think part of what kills off open source applications is a perceived lack of interest, which is partially due to the dispersal of resources over too many redundant projects. luckily, FOSS being what it is, anyone can pick up a dead or inactive project and resume development on it. so before you go off and contract a developer for a brand new open source program, see what's already out there that might fit your needs.

  • by rockmuelle (575982) on Friday November 07, 2008 @12:21PM (#25676575)

    No! No! No!

    CS grad students are in their program to do research, not develop software for other departments. Their time should be spent working towards their thesis. There is no research value in applying software engineering practices to develop an application for a researcher in another field. I know some schools allow theses along the lines of "A Software Framework for Cool Science Problem X", but these types of projects only shortchange the CS student. The projects are simply software engineering and should be handled by software engineers, not potential researchers.

    There's also the problem that most CS grad students have never developed large scale software and are essentially in the "0-3 years experience" range. While they are usually very bright, they are not skilled practitioners yet. The code they develop will have all the same problems that plague young developer's code: little reuse, lots of reinvention, tendency towards trendy solutions (Oh! Let's do the whole thing as an Eclipse Plug-in/OO Framework/Scheme Interpreter/etc), and overly clever solutions. If the research wants to learn software engineering, their time is much better spent earning decent wages at a real software company with people who can provide proper mentoring.

    Finally, there is the conflict of interest. A researcher's main goal is to perform research and publish papers. Software does not count as a publication. Thus, the software will be developed up to the point where there is something to publish and not much beyond. And, once the student completes their degree, they are off to greener pastures and support will quickly dry up.

    So please: Stop using CS grad students as software developers!!! It hurts everyone!!!

    -Chris

  • First of all.. (Score:1, Insightful)

    by Anonymous Coward on Friday November 07, 2008 @12:26PM (#25676625)

    Don't limit yourself to Cocoa.

    Go with an open source cross-platform toolkit, and then you won't be stuck with OSX apps if someone needs to run the program on Windows. The realistic choices in this area are GTK+, WxWidgets, and Qt. I would recommend Qt because it has the best documentation and is by far the most mature and provides far more functionality than the other two.
    The only disadvantage of Qt is the GPL license, which means you won't be able to make it closed source if you decide you want to in the future (you have to buy a commercial license first to do that). But if you're going for open source anyway, it is the only sensible choice for getting things done quickly.

  • Re:er... (Score:2, Insightful)

    by Markspark (969445) on Friday November 07, 2008 @12:28PM (#25676643)

    So mister fuckface. tell me HOW you can with your shitty windows and shitty linux and extra shitty BSD capture, compost and edit a TV show or movie without making it look like a 12 year old did it in his basement

    and how about the fact that Mac OSX is based of BSD? In my eyes, it's like saying linux sucks, but ubuntu is teh shiznitz!

  • OSX? (Score:3, Insightful)

    by FunkyELF (609131) on Friday November 07, 2008 @12:28PM (#25676645)

    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.

  • Research Software (Score:4, Insightful)

    by rockmuelle (575982) on Friday November 07, 2008 @12:31PM (#25676687)

    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 [iu.edu]

    Good luck with your project!

    -Chris

  • by Draek (916851) on Friday November 07, 2008 @12:43PM (#25676831)

    It is important to consider the cost savings that proprietary libraries might provide. It is obvious that the OP has a specific goal in mind apart from just having the program written. If OS X has a built-in library that does the job well, the expense of the operating system and hardware may very well be less than the time he or a contracted party would spend re-implementing the same functionality using only OSS libraries.

    Except that it's not just the OS and hardware to run the app on, but also the expense of finding and hiring programmers skilled in that particular toolkit, which is what the GP is saying.

    For a more concrete example, writing the exact same application in Java is much cheaper than doing so in Smalltalk, because undergrad CS courses all use Java nowadays, and practically no one has ever used Smalltalk. What's easier and cheaper, finding a bunch of fresh graduates who know Java, or a contractor who's skilled in Smalltalk?

  • by dubl-u (51156) * <2523987012@pot a . to> on Friday November 07, 2008 @12:47PM (#25676873)

    Every good work of software starts by scratching a developer's personal itch.

    That's true, but you're not interpreting it broadly enough.

    Sure, if he finds a developer who wants this software already, then that's great. But there are other ways to get people personally engaged in a project.

    One is to make sure it involves technical challenges the developer finds interesting. E.g., a good Cocoa developer who's wanted to use Core Data but hasn't. Or, assuming that statistics play a part here, a developer who has always wanted to learn about that. That's not enough on its own, but it's a good start.

    Next, find ways to get the developer engaged in the domain. A developer with an interest in this kind of science would be great. A lot of good developers started out studying something else, so it's possible he could find somebody with graduate training in his domain.

    Third, connect the developer in a personal way to the people who need the software. If this is lab software, then just pay him to spend a week working in the lab with the future users. Have development happen as close as possible to the users. Maybe in the same room, and certainly close enough that they share the same break areas and would naturally go to lunch together.

    Fourth, get a good feedback loop going. Show demos every week or two to actual users. As soon as possible, get an alpha version actually in use, and release updates every week or two. Get everybody together weekly over coffee to talk about how it's working. And occasionally get people together over beers to talk about the bigger picture.

    Do all these things, and the developer's personal itch is to make something great that satisfies people he has come to care about, people working in a context he understands intuitively.

  • Re:er... (Score:2, Insightful)

    by PeterKraus (1244558) <peter.kraus@member.fsf.org> on Friday November 07, 2008 @12:54PM (#25676977) Homepage

    Ever heard of AVID, mate? You know, the ones standing behind digital video...

  • by 2short (466733) on Friday November 07, 2008 @01:03PM (#25677073)
    "if your developers don't have any motivation to write excellent code, they won't."

    Excellent developers write excellent code partly because they understand lousy code is more work to write.

    Such developers are, of course, hard to find and expensive. If you're not going to find and pay someone really good, you probably want to do it yourself. It will probably cost more (counting your time) and won't be as good, but that will be true for hiring mediocre developers too. In the future, it will be better to have bad code you wrote then bad code someone no longer available wrote.
  • Re:er... (Score:3, Insightful)

    by nine-times (778537) <nine.times@gmail.com> on Friday November 07, 2008 @01:05PM (#25677095) Homepage

    Actually, if you read the summary instead of just the title (no, I'm not new here), you'll see that he has a number of fairly specific questions:

    • How do I find programmers?
    • How hard is it to find Cocoa programmers?
    • What sort of prices should I expect to pay?
    • Will there be a problem with the fact that I want to release it to open source?

    So the GP post is answering these questions fairly well, actually. He's saying hire normal programmers like you'd hire any other programmers, with the employment deal including that you own the resulting copyright. If you own the copyright, you can release it under any license you choose.

    And make sure they document their code.

  • by Chyeld (713439) <chyeld AT gmail DOT com> on Friday November 07, 2008 @01:09PM (#25677121)

    Decades ago, a professor in college asked me what I considered was most desirable trait to look for in a potential hire.

    My response was, "I want lazy people."

    Among all other traits, maximizing laziness is the quickest way to efficiency.

    If you pretend that all other traits could be rolled into a single axis of which the two extreme ends could be labeled "Stupid" and "Smart", and then figured how much work got done over the spectrum of Stupid&Smart vs Lazy&HardWorker it would look like this:

    Stupid Lazy doesn't do work. You pay them and get zero units out of them.
    Stupid HardWorker does two units of work, wrong. You pay them and still get zero units out of them.

    Winner, Lazy. Hardworker cost you more in materials.

    NotStupid and NotSmart Lazy works just hard enough to get paid, finding a job is unpaid work. You pay them and get one unit of work.
    NotStupid and NotSmart Hardworker does two units of work. You pay them and get two units.

    Winner, Hardworker. Lazy didn't produce as much

    Smart Lazy realizes that thinking long term pays off and works out a way to produce one unit of work for less than half the effort. You pay them and get two or more units.

    Smart Hardworker realizes the same and does the same and combined with their work ethic, produces more than four units. However, because management notices that Smart Hardworker is pumping out over four units of work for each you pay for, he's just been promoted to your job.

    Winner, Lazy. He doesn't want your job. Plus Hardworker now needs to hire a replacement for their old position.

    Of course, I was a comp sci major in an engineering school and the professor was teaching a business class, so my answer was tounge in cheek.

    But on the other hand, I think you are greatly underestimating the power of pride in your work. Even if someone is lazy, they realize doing a good job means happy clients. Happy clients mean more potential for work in the future. And if they don't realize that, perhaps crap work isn't because they are lazy but because they aren't able of making anything better.

    If your contractors provide you crap, you either need to review how you treat them or how you pick them.

  • by meburke (736645) on Friday November 07, 2008 @01:16PM (#25677175)

    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.

  • by Kjella (173770) on Friday November 07, 2008 @01:20PM (#25677233) Homepage

    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."

    Somehow, I have a bit of a problem seeing this scenario come true. Either I'm afraid it'll die without someone at the core or that someone at the core would take much of that position. After all, the initiator here is more of a subject matter expert than a software architect from the sounds of it. Maybe the "we need this feature" part but there's always been a surplus of the wanters and a shortage of the doers. I don't know, it all depends on how much he wants people working with him or people working for him.

    Linus is an exceptional doer - his code is 2% of the entire Linux kernel. Remove all the driver and arch-specific bits and he's the shining center of Linux. Likewise, X.org was the doers splitting away from the talkers. I can't think of any project where the project leader has come in as a "lightweight" so to say, so unless he really wants to be that guy and grow into that position it's basicly the usual OSS model except with a kickstart. Or he could be more of a detached sponsor of sorts, but it doesn't really sound like he's got the pockets to do that long-term.

  • Re:er... (Score:5, Insightful)

    by Craig Ringer (302899) on Friday November 07, 2008 @01:26PM (#25677295) Homepage Journal

    Tell that to someone who's used BSD.

    With BSD I have source code. I have a kernel I control. I have a window system that supports network display of applications natively. All my tools work from the command line, instead of having to do things from often-limiting GUIs. Said tools are also documented, which is a nice change from Mac OS X (where the docs for Apple tools are patchy, and rarely in the form of man pages). I can run BSD on any hardware I want instead of a restricted set of marked-up branded equipment. Oh, and did I mention the use of a sensible file system instead of HFS+ ?

    The same goes for Linux.

    Of course, I also have far fewer device drivers, far FAR fewer apps in many categories, less support for things like graphics tablets, and all sorts of other things than would be the case under Mac OS X (or Windows).

    Argh!

    Mac OS X has a POSIX subsystem based on a mixture of BSD and GNU tools, and a kernel that is in large part based on BSD's. Calling it BSD is a disservice to both BSD and Mac OS X.

  • Re:er... (Score:5, Insightful)

    by Otto (17870) on Friday November 07, 2008 @01:33PM (#25677365) Homepage Journal

    Under the US Copyright Act of 1976, works made for hire belong to the person who did the hiring. The employer owns the copyright, not the employee.

    See http://www.copyright.gov/circs/circ9.html [copyright.gov]

    Of course, the law is complex, so it is best to specify that you get the copyright in the contract, to eliminate any doubt. But in general, when you hire somebody to produce something, you own the copyright.

  • by calmofthestorm (1344385) on Friday November 07, 2008 @02:00PM (#25677641)

    Good point, no real world use for ivory tower concepts like encryption, programming language design, machine learning, AI, network flow analysis, compression, etc. What have those damn latte-sipping elitists ever done for the real world?

    You should realize that what is developed in industry, FOSS, etc has its roots in the work of theorists. Ever looked through the kernel source tree? You'll find quite a few citations to journal publications and the like.

    Last summer I did research on predicting corn yield using satellite imagery months in advance of harvest. It works better than USDA estimates. No use for that, not like you could optimize crops, predict supply and demand to optimally distribute wealth (by whcih I mean play wall street), or anything like that. It was a waste of a summer, and I was overpaid at minimum wage. Damn kids getting paid to do nothing.

    Even the people who work on pure theory are producing work that is used by others in CS, who produce work that is useful to engineers. I'm so sick of hearing this kind of elitism from people like you. Just because I don't write web 2.0 apps in Java or RoR or whatever the PHB buzzword is today doesn't mean I'm not contributing to the field.

  • Re:er... (Score:4, Insightful)

    by NormalVisual (565491) on Friday November 07, 2008 @02:10PM (#25677813)
    The morons that make Cinerella cant program themselves out of a paper bag

    At least they can spell "Cinelerra" properly. You need to work on your use of profanity as well - using it too much tends to blunt the impact when it *does* get used. But, I guess you were too busy working on becoming a Video God to bother with such things.
  • Re:er... (Score:4, Insightful)

    by noc007 (633443) on Friday November 07, 2008 @02:11PM (#25677831)

    Yeah right stupid ass.

    Too bad they don't have anything lower than a -1

    So mister fuckface. tell me HOW you can with your shitty windows and shitty linux and extra shitty BSD

    Wow you have no idea about where the OS X kernel was derived from. It's a hybrid of the Mach and BSD kernels, both of which are clones of UNIX; kinda sounds like Linux.

    capture, compost and edit a TV show or movie without making it look like a 12 year old did it in his basement.

    Obviously you've never heard of a company called Avid. If you really want to get out of the Prosumer field and into Professional video editing and be taken seriously in the industry, you'd start with Avid. Avid's Media Composer (replacement for Xpress Pro) is their software only product for video editing. And they have compiled for both Mac and Windows.

    Adobe products suck,

    Bite the hand that feeds thee I see. Without Adobe to keep people interested in Macs durring Apple's wanning years, they'd probably would have gone under.

    Everything else on your beloved PeeeCeee platforms sucks...

    Wow, you really don't have a damn clue about what's under the hood of your beloved Mac. The Power PC processor is RISC based along with Alpha, ARM, MIPS, etc. Microsoft has compiled versions of NT 3.51 and 4.0 that will run on that Mac Power PC. Let's not exclude Apple's decision to abandon the RISC architecture in favor of CISC. Most, if not all, of the chipsets used in present day Macs are from the "PC" parts bin. Macs and PCs are the same damn hardware, just in a different packaging and a premium price put on anything with an Apple logo.

    Only FCP is a real tool.

    Spoken like a true Apple fanboy

    I do work on my Mac that makes me money...

    I work on "PCs" and sometimes Macs and that makes me money. What's your point? I'm sorry that editing videos of people's weddings is so difficult that you have to push aside your keyboard in favor of a slow mouse interface.

    you wanking off all day to free porn found on google images does not impress anyone.

    GIS isn't the best place to get free porn.

  • by Corson (746347) on Friday November 07, 2008 @04:02PM (#25679971)
    "Pick 100K per year for young people" Those were the times, my friend...

UNIX is many things to many people, but it's never been everything to anybody.

Working...