Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

How Do I Get Open Source Programs Written For Me?

Posted by kdawson on Fri Nov 07, 2008 10:26 AM
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?"
+ -
story

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • er... (Score:5, Informative)

    by girlintraining (1395911) on Friday November 07 2008, @10:28AM (#25675841)

    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.

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

      by Anonymous Coward on Friday November 07 2008, @11:27AM (#25676639)

      Under English law, at least, this is entirely wrong. You will need to specify in the contract that any IPR developed belongs to you, and that the developer will take all steps to perfect this, including undertaking assignments.

      The developer is the author, and thus the default owner of any copyright work (source code) - as the commissioning party, you get nothing more than a limited licence, unless you specify it in the agreement. Plenty of companies have got caught out by this, and think that, by paying for development work, they necessarily own it.

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

        by Otto (17870) on Friday November 07 2008, @12: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.

      • I don't think Banana Republic is quite right. John Perry Barlow, in an interview he gave about 15 years ago, described the NeXT software development contractors as "Unix Weenies by Armani."

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

          by Anonymous Coward on Friday November 07 2008, @11:13AM (#25676497)

          I dare you to edit video and create a tv show like I can

          Don't throw a tantrum, Turtleneck. You and every other MySpace kid or freshman in your second-rate art school create "TV shows" and "movies" with Final Cut Pro.

          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

          Even a 12-year old in his basement could make "artsy" movies, TV, and photos using black and white with fades and soundtracks etc. Too much talent in the Mac pool, methinks. Mac software was designed for simpletons looking to "fluff" up their inner artiste'.

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

          I do work on macs that make me money too. I buy 'em from thrift shops and wipe 'em down, then sell 'em to idiots for $1000 and use the money to buy PC's.

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

          I don't pay extra when I shouldn't. That money you would save if you bought a comparably-equipped PC could buy you a cute Pomeranian to go along with the rest of your gayness.

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

          by Peet42 (904274) <Peet42 AT Netscape DOT net> on Friday November 07 2008, @11:56AM (#25676997)

          Adobe products suck, Everything else on your beloved PeeeCeee platforms sucks... Only FCP is a real tool.

          I beg to differ; I believe that you, too, are a real tool.

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

          by xouumalperxe (815707) on Friday November 07 2008, @12:25PM (#25677273)
          Dunno about TV shows, but I usually compost my manure by leaving out in a big heap, and making sure it's always moist.
        • Re:er... (Score:4, Interesting)

          by mweather (1089505) on Friday November 07 2008, @12:29PM (#25677317)

          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.

          Ask these guys: http://orange.blender.org/ [blender.org]

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

          by NormalVisual (565491) on Friday November 07 2008, @01: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, @01: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.

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

          by im_thatoneguy (819432) on Friday November 07 2008, @02:56PM (#25679877)

          Oh my! Only Macs can edit video?

          That's weird and here all these years I thought Avid MC systems running on Windows were the mainstay of feature film and television editing.

          No editing applications for Linux worth a damn? Bizzare and here I thought Smoke combined with FFI were the ultimate online conforming tool for ads.

          No compositing tools? Shake, Nuke and Fusion aren't enough? All of which have or have had Windows, Mac and Linux builds.

          Adobe sucks? That's why every single VFX workstation on earth has a copy of Photoshop? And here I thought all these years it was because it continues to offer the latest and greatest in 2D tools.

           

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

            by Craig Ringer (302899) on Friday November 07 2008, @12: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.

  • Cash. (Score:5, Insightful)

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

    Simple as that.

  • by hedronist (233240) * on Friday November 07 2008, @10: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, @10:30AM (#25675877)

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

      • by MrNaz (730548) on Friday November 07 2008, @10: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, @10: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.

        • by 2short (466733) on Friday November 07 2008, @12: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.
    • by Weaselmancer (533834) on Friday November 07 2008, @10:44AM (#25676111)

      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.

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

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

    Offerings of pizza and beer usually work.

  • a few ways (Score:5, Informative)

    by i.r.id10t (595143) on Friday November 07 2008, @10:30AM (#25675867)

    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.

    • Re:a few ways (Score:5, Insightful)

      by lysergic.acid (845423) on Friday November 07 2008, @11:13AM (#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 Ngarrang (1023425) on Friday November 07 2008, @10:30AM (#25675869) Journal

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

  • by Anonymous Coward on Friday November 07 2008, @10: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, @10: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.
    • by tzhuge (1031302) on Friday November 07 2008, @10: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 rockmuelle (575982) on Friday November 07 2008, @11:21AM (#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

  • Step 1: (Score:4, Insightful)

    by Qzukk (229616) on Friday November 07 2008, @10: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.
    • It sounds to me like you might be trying to change his mind purely because of your own personal development biases. It's not like Linux is supposed to have some sort of monopoly on open-source software. And in a medical setting, you're going to want as few potential technical problems as possible. Using a Mac there makes quite a bit of sense.

      Cocoa is by far the easiest application framework I've seen so far. If you know C++, you can learn Objective-C in an afternoon on a weekend. And you'll be better off for it, as it's a dream to use. If he wants software made on a Mac, there's almost no reason to avoid using Cocoa.

      The best thing that this guy could have done is to get the backend in C++/C so its portable and keep parts like the GUI as Objective-C. The parts between can be compiled as Objective-C++. It's not like if it was a Linux/Windows application you weren't going to have to rewrite the GUI-code to port in the future it anyway. I can tell you if the programs I wrote weren't Cocoa apps, they'd have taken much more time, and if that had been the case I probably wouldn't have even attempted them.

      If you know Cocoa's history (dating back to NeXTSTEP), you'd also realize that for scientific research, Cocoa really can be ideal. Scientists/researchers are often able to program, but they're not "professional programmers", so when they do it, they want it to consume as little of their time as possible. A scientist's priorities are not the same as a programmers priorities. Cocoa definitely makes sense there. I doubt this guy would be asking for an open source app in the first place if he didn't plan to at least review and consider modifying some code himself.

  • Cocoa? (Score:3, Insightful)

    by andy753421 (850820) on Friday November 07 2008, @10: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.
  • by jchawk (127686) on Friday November 07 2008, @10:52AM (#25676235) Homepage Journal

    I've used - http://www.rentacoder.com/ [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

  • Raise Money (Score:3, Insightful)

    by kevin_conaway (585204) on Friday November 07 2008, @10: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

  • by cinnamon colbert (732724) on Friday November 07 2008, @10:59AM (#25676337) Journal

    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

  • by mkcmkc (197982) on Friday November 07 2008, @11:13AM (#25676493)

    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.

  • why not ... (Score:3, Funny)

    by ianare (1132971) on Friday November 07 2008, @11:23AM (#25676591)
    post a question to this site [slashdot.org], there are many programmers there. One will anwser you I'm sure.
  • OSX? (Score:3, Insightful)

    by FunkyELF (609131) on Friday November 07 2008, @11:28AM (#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, @11:31AM (#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 ChrisA90278 (905188) on Friday November 07 2008, @12:15PM (#25677169)

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

  • by meburke (736645) on Friday November 07 2008, @12: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.

  • Cardinal Peak (Score:4, Interesting)

    by Mr Howdy (242956) on Friday November 07 2008, @12:32PM (#25677349)

    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.

  • by Cajun Hell (725246) on Friday November 07 2008, @01:09PM (#25677779) Homepage Journal

    Would a requirement that programs are released as open source make it more or less difficult to find someone to do the job?

    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.