How Do I Get Open Source Programs Written For Me? 285
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?"
er... (Score:5, Informative)
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: (Score:2)
Re: (Score:2)
I think that's what he knows.
I think his question should have been "How do I find good OSS programmers?". From his article, I'm quite sure he knows that money will do the talking once he has someone for the project. I guess his problem is finding that someone, without that someone being just anyone.
Re: (Score:3, Insightful)
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:
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 incl
Re:er... (Score:5, Informative)
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)
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.
Re: (Score:3, Informative)
Although Parent presents himself as being only correct regarding English law, the main thrust of what he says also applies to US Copyright law.
Refer to http://www.copyright.gov/circs/circ9.html [copyright.gov] for information about this.
I don't have a car analogy, but it's pretty important to read and understand the document.
Re: (Score:3, Informative)
The issue here (which *can* be confusing) is that hiring a contractor is not implicitly "work for hire," and, thus, the contractor would own the copyright and be considered the author.
The crux of it is that a contractor isn't an "employee." A good rule of thumb is that someone who is paid a salary or wage and receives benefits is an employee. After that, it becomes less clear.
Re: (Score:3, Funny)
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)
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: (Score:2, Insightful)
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!
Re:er... (Score:5, Funny)
Just wait until he gets home from the coffee shop to reply to you. You're really gonna get it then, mister (fuckface).
Re: (Score:2, Insightful)
Re:er... (Score:5, Funny)
I beg to differ; I believe that you, too, are a real tool.
Re:er... (Score:5, Funny)
Re:er... (Score:4, Interesting)
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)
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)
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)
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)
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, Funny)
What a crock of shit. Mac is nothing more than a wannabe desktop publishing platform. Real video editing is done on a real workstation, like say SGI.
1999 called and they want your troll back.
Cash. (Score:5, Insightful)
Simple as that.
Plus management (Score:2)
Sorry, I have to respectfully disagree. If it was as simple as throwing money at it, Vista would be the greatest OS ever made, instead of the dying pig that it's become.
Cash helps. But without good management (on the client's part), it's going to lead to disappointment. Unless you happen to get one of the very few contractors who knows how to manage things (like the customer) themselves (maybe 10% do, but 80% will claim to :) ).
There's an old Engineering saying:
- Better
Re: (Score:2)
Cash helps. But without good management (on the client's part), it's going to lead to disappointment
Yes, to me this also raises some other questions. For one, I'm assuming that the guy asking the question has a reason for wanting specifically to open source it. He's probably hoping to get some amount of work put into the project that he's not paying for, or else why bother?
Now that doesn't necessarily mean that he's expecting completely free labor to be given selflessly for his own sake, but he might have the idea that other individuals or companies would have an interest once he got the project rollin
Re: (Score:2, Informative)
Women (Score:3, Funny)
Find him a girl with a who likes geeks.
Re:Often times... (Score:5, Funny)
I think you are asking the wrong question ... (Score:4, Insightful)
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.
Re:I think you are asking the wrong question ... (Score:5, Insightful)
Getting paid is, for most developers, a "personal itch" worth scratching.
Re:I think you are asking the wrong question ... (Score:4, Insightful)
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).
Re:I think you are asking the wrong question ... (Score:5, Insightful)
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.
Re: (Score:2)
Re:I think you are asking the wrong question ... (Score:4, Insightful)
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: (Score:3, Insightful)
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 Laz
Re: (Score:2)
Don't know about you, but it sure ain't mine.
Sure, I get paid to write code. But I don't write code to get paid. I write code that I want to write, and someone actually is stupid enough to dump money on me for that. We are currently fortunate that we may, to some extent, actually choose our work place. We're not forced to work in a field that isn't to our liking. Don't like SQL? Don't have to do databases, you can write drivers. Don't like that? Maybe frontend design and implementation is more your thing. P
Re: (Score:2)
I don't think that's his exact goal (Score:5, Informative)
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.
Re: (Score:3, Insightful)
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 h
Re:I think you are asking the wrong question ... (Score:5, Insightful)
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? (Score:5, Funny)
How Do I Get Open Source Programs Written For Me?
Offerings of pizza and beer usually work.
Re: (Score:2)
I contracted a guy once that offered to work for pizza and beer. He quit working even though I tried to pay him with pizza and beer.
Not my fault he wasn't specific about what kind of pizza or beer.
Re: (Score:2)
Its not like programming with Cocoa is terribly hard or anything.
I've had my share of difficulties figuring it out. These days most of my coding is done in PHP for web frontends, but I've also done a fair share of GUI development in Visual C++ as well as some using GTK+ in Linux. While I haven't sat down and hit it up hard, Cocoa programming has still confuzzled me. Maybe it's just that I have never programmed for the Mac before trying to jump into it, but even trying simple rewrites of programs that I'd done on other systems gave me trouble. Maybe I'll give it a whi
Re: (Score:2)
Cocoa has its issues, and I think some things are a bit backwards (and too verbose). Key-value pairs are actually value-key pairs, which confused me for a bit.
"Cocoa Programming for Mac OS X" by Aaron Hillegass is all you need to get your head wrapped around it (make sure it's the latest edition, with XCode 3+ instructions).
Re: (Score:2)
Actually I have a Computer Science degree and I'm most familiar with C and C++. It's just that my current employer doesn't have a need for that right now so any development I do there is as a hobby, and PHP is what I do for a living. I actually picked up PHP years after the others.
Re: (Score:2)
Yeah, you put that PHP layman in his place, Anonymous Coward! (Sarcastic)
Seriously though, I think you comment should be modded down. As someone who's worked with a huge variety of different languages and frameworks, on a variety of different platforms, it's sometimes a bit of a pain getting accustomed with how a particular framework is organized and meant to be used. Some are just easier to learn than others depending on what your prior experience is. The same is also true for a given framework's docume
Re: (Score:2)
Ok, ok, I'll feed the troll... front end work especially in php is often done by people who barely qualify as programmers, but it can also be pretty respectable work and has its own challenges that are as tough to solve well as anything else.
I'm also not convinced they are the lowest of the low either, the guys who made facebook did ok for themselves, as did the people who put together ebay, amazon, etc. None of those involved anything justifiably patentable but making a front end that works well can pay of
Re: (Score:2)
While PHP is technically a scripting language, not a programming language,
You're actually making a distinction there that doesn't exist. A "programming language" is any set of instructions that can be setup to produce results on a computer. It is inherently neither scripted nor compiled; implementations of it are. For example, QBASIC and QuickBASIC were nearly the same syntax-wise (and both were implementations of BASIC), but one was interpreted, and one was compiled.
In the same way, the PHP language is very much a programming language, but current implementations of it are int
a few ways (Score:5, Informative)
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)
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.
Re: (Score:2)
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.
This is a reasonable option for throw-away software, but the original poster is a non-programmer looking for something solid and reusable, qualities he can't personally judge.
For any sort of fixed-price contracting, the incentive for the contractor is to develop something minimally compliant and then flee. Reusable code requires discipline and polish. Because reuse always comes later, and because it's hard to measure or prove shoddy construction, odds of getting a christmas-paper-wrapped turd are high.
I per
If you are paying the bill... (Score:5, Informative)
...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.
The more specialized, the more expensive (Score:4, Insightful)
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.
Re: (Score:2)
That's about the same in the United States as well.
Unless you can find an individual who has a personal itch to scratch or a university writing something similar that is in alignment with what you're doing, or there is a private company already trying to enter your market and is willing to allow you to give it feedback on it's software to add the features you want, then you're looking at perhaps $85/hr to $130/hr for someone who has experience and has specialized skills.
The Academic Route (Score:5, Insightful)
Re:The Academic Route (Score:5, Insightful)
Re:The Academic Route (Score:5, Insightful)
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
Re: (Score:2)
If the Grad student wants to actually get a job in research, any references he can cite as applicable research experience will help him.
Re: (Score:3, Insightful)
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 usi
Re: (Score:2)
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. :)
The problem with GPs suggestion of giving the project to a CS department is that the programmers are mostly inexperienced, not putting in forty hour weeks, are dividing their time between working for you and studying for the test (with the test getting a higher priority), and are given a relatively short time to crank out a product.
What I like about your idea, is that, although it is probably a lone effort, getting a grad student to devote three semesters to the project will ensure that by the end, you will
Re: (Score:2)
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. :)
I can understand the appeal of this, but it is probably a terrible idea.
There is an almost universal problem with CS students that gets worse the longer they are students. Because classes end soon and school ends eventually, they have little or no experience maintaining code. They thus don't know how to write for maintainability, and instead have a host of tricks for quick solutions.
Because students are always throwing away their code bases, short-term wins are great, and the long-term costs don't matter. B
Re: (Score:2)
CS != computer programming. If I were interested in the latter I'd be making a lot more right now. I'm going into CS because I want to do research and am willing to make less to do it.
That said, everyone wants to make some mone yon the side.... (not an offer personally, but there's probably someone like me who'd do it)
Re: (Score:2)
You could fund a few grad students to develop your program for beans
Yeah. Problem is, if a maintainable, well-design result is your goal, a grad student might not be the greatest idea... ;)
Re: (Score:2)
Step 1: (Score:4, Insightful)
Find an interesting problem that people would like to work on.
Know Your Targets & Draft the Requirements (Score:5, Insightful)
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.
Re: (Score:2)
Re:Know Your Targets & Draft the Requirements (Score:4, Interesting)
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.
Re: (Score:3)
Try "my own personal development experience." Are you disagreeing that he is narrowing down potential coders by selecting their platform for them?
Though you seem to be implying that biases & experience are different, experience does result in biases, and this isn't inherently good nor bad. Some of my best professors openly state on the first day of their classes what their personal biases are. Everyone has them. Experience is an educated bias. This isn't bad, except when the bias is not the result of experience (you may be thinking now "Hey, that was my entire reason you dipshit, I am experienced", but I'd point out that you're not experien
Re: (Score:3, Insightful)
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
Cocoa? (Score:3, Insightful)
Re: (Score:2)
Re:Cocoa? (Score:4, Informative)
Re: (Score:2)
Well, there's also GNUStep, but that wouldn't be possible if Core Data is used. From my understanding, Core Data is more-or-less a database without a database - basically a uniform way of storing data objects so they can be read by many different programs (much like the dicts in mac, which are XML files, if I remember correctly).
The alternative would be to have an actual database backend and write the programs to use those data objects.
The advantage from the mac end is their data model ties
Re: (Score:3, Funny)
The Open Source requirement (Score:2)
"Would a requirement that programs are released as open source make it more or less difficult to find someone to do the job?"
I do not think this will make it any harder. But if you approach commercial companies be prepared to pay a substantial extra to have them give up copyrights. They would also have to make damn sure they actually have the right to open source (or sign away the copyright for) all the code that goes into the project. In some cases this might be difficult.
I know for a fact the company I wo
I used - Rent a Coder (Score:4, Interesting)
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.
Re: (Score:2)
The problem with rentacoder.com, guru,com, and getacoder.com is that they are all about brokering the deal and getting a percentage of the take. They couldn't care less about quality or satisfaction. The coder is asked to make a fixed bid on what usually amounts to less than a paragraph of information. It promotes incompetence for both the sellers and the buyers too. In terms of quality, it's a race to the bottom.
May I introduce an emerging alternative to these kinds of sites? I am building an online com
what, you've never seen the movies? (Score:5, Funny)
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)
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
Re: (Score:2)
Try six figures.
you need someone you can trust (Score:4, Interesting)
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
Osirix / Slicer / VTK / ITK (Score:2, Informative)
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
step 1 (a lulu): find someone competent (Score:3, Interesting)
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.
Re: (Score:2)
wxWidgets is a good alternative to Cocoa, since the programs look like proper native apps. An added benefit is easy porting to any other platforms they may use, and the only drawback is a few megs of library overhead.
But DO find a proven, open source-friendly developer.
why not ... (Score:3, Funny)
OSX? (Score:3, Insightful)
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)
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
My company does work-for-hire (Score:2)
My company develops on Macs on a work-for-hire basis. We have experience in the defense field with scientific legacy desktop applications, server-based enterprise apps, and process simulation. We charge $100/hour for development, develop using agile methods, and are extremely customer focused (redundant since I already said agile). You can do whatever you want with the code when we're done; you will own the copyright. We are quite comfortable with OSS; we rely on it for our dev tools and the frameworks w
I'd check the universities (Score:2)
Depending on where you are, you may either land a job with students who need money for their tuition (US) or profs desperate to prove that their ivory tower actually produces anything useful for the economy (Europe).
In any case, I'd start looking around the universities. You have a vast pool of highly intelligent people who will probably work for rather little money or even free provided the software may be used in their research and/or they can use it as proof for their interdisciplinary research efforts f
cofundos (Score:2)
Try me! (Score:2)
I'm a Cocoa (specifically iPhone by preference these days) contract programmer who's quite open to the idea of working on an open source project, as virtually all my contractees insist on keeping my involvement secret which is very annoying indeed. It would actually be rather nice to have a freely available example of my coding skills to point people at.
Not nice enough to work for free, mind you, but if the project's halfway interesting I'd consider something in the range of $50/hr probably which is about h
Bioinformatics (Score:2, Informative)
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
Software is very hard (Score:4, Interesting)
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.....
Too far down the line... (Score:4, Insightful)
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.
Jim Waldo says... (Score:3, Funny)
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.
Cardinal Peak (Score:4, Interesting)
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.
expect to pay more (Score:4, Funny)
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.
Re: (Score:2)
They sell girlfriends on amazon? Is that legal?
Re: (Score:3, Funny)
Flamebait or funny, you decide.
Re: (Score:2)