How Do I Get Open Source Programs Written For Me?
An anonymous reader writes "I am a biomedical researcher interested in having general-purpose, scientific programs developed and released as open source. Interface design and reusability of the code are of primary importance to me. For my purpose, Cocoa applications relying on Core Data seem to be the best way to get the job done quickly. While I have some programming experience, I have few connections to the industrial world. So my question to Slashdot readers is: how do I find someone (individual or business) to write high-quality programs? Are there reputable contractors experienced in Cocoa? What sort of rates should I expect, to use as a starting point in negotiations? Would a requirement that programs are released as open source make it more or less difficult to find someone to do the job?"
Simple as that.
Let us review some basic truths:
1. Every good work of software starts by scratching a developer's personal itch.
http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/
I don't think 'wanting someone else to do it for you' quite falls into this category.
That's the basic rule. Based on what we pay for our contractors (Qt experts -- they are really hard to come by), count on between 600 and 1000 euros a day.
Perhaps you could contact a University with a good CS program, or something of the like. You could fund a few grad students to develop your program for beans, with the stipulation that the source code be GPL'd. Grad students can be cheap, believe me - I am one, and I make a whole lot less than minimum wage.
Quiz: True or False -- On a scale of 1 to 10, what is your middle name?
Find an interesting problem that people would like to work on.
If I have been able to see further than others, it is because I bought a pair of binoculars.
There are a few things about this blocking your path to open source success ... and even then, it's not guaranteed. So right off the bat, if you're depending on this to get a job or research done, you might want to exhaust all other options (footing the bill yourself/coding it yourself/seek help in your department).
... and I'm not a fan of the cost associated with OSX. But if this is a hard set requirement, you're winnowing down your possibilities. Just get them out there, put them on Sourceforge, post them here, get eyes looking at them.
... is this what you are interested in? I recommend your first step being to approach a friend who is a system engineer (again, seek help) and drafting requirements for your initial program. Once you have that, it will both make development very easy to do via open source and help you concrete your end vision.
First off, the Cocoa requirement reduces your target development community substantially. Is this necessary? Are you opposed to Linux based development and execution? Personally, I haven't done a darn thing with Cocoa nor do I own a single Apple
Second, where is the list of requirements? I know you're not a Systems Engineer but if you're not worried about this stuff getting out there, why not link us to a list of requirements. I know very little about what you need and therefore would have a hard time advising you on who to approach and how to do the job. I know a little bioinformatics (FASTA)
If you do end up approaching a business to help you, research them. Do they have competitors? Is this their bread and butter or a side project? Have they historically contributed to open source? Figure out these answers so you don't have a pitch meeting that they take as an insult.
My work here is dung.
If you're looking for Free/Open Source Software, you'll probably have better luck if you use F/OSS development tools such as GTK+ or QT.
Your best source are those students in your labs with CS classes already completed..Bioinformation Degree students usually have that area covered
Fred Grott(aka shareme) http://mobilebytes.wordpress.com
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
Since you plan to release this as open source, I expect that you believe there are others who would be interested in this software. I would try to identify other people who may be interested in it. Then see if they have the time/talent or know others who do that could assist.
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.
Don't limit yourself to Cocoa.
Go with an open source cross-platform toolkit, and then you won't be stuck with OSX apps if someone needs to run the program on Windows. The realistic choices in this area are GTK+, WxWidgets, and Qt. I would recommend Qt because it has the best documentation and is by far the most mature and provides far more functionality than the other two.
The only disadvantage of Qt is the GPL license, which means you won't be able to make it closed source if you decide you want to in the future (you have to buy a commercial license first to do that). But if you're going for open source anyway, it is the only sensible choice for getting things done quickly.
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!
i find your lack of faith in science disturbing!
For my purpose, Cocoa applications relying on Core Data seem to be the best way to get the job done quickly. While I have some programming experience
Why don't you either get more than "some" programming experience or stop making decisions on the framework / platform. This kind of crap happens all the time when non-technical people make high level decisions on language, framework, or platform.
And if you want it open-source why are you tying it to a particular OS?
If you use QT, or GTK, or WX you can still have it on OSX as well as others.
Developing software in a research environment is challenging. There are a number of constraints and conflicting interests that make it difficult for researchers unfamiliar with software to be truly successful. To make matters worse, the relationship between academics and professional software developers is almost non-existent, in large part simply because the research community has limited funds available for software development.
I've worked with a number of research labs to help bridge this gap and have developed a basic set of guidelines for developing software in research environments. In the end, the most important thing to do is draw a clear line between research tasks and development tasks. Understand what is in your area of expertise (research) and what is best handled by software engineers and other professionals. Then, depending on your resources, either hire a full time development team, a part-time consultant, or work with your university's IT staff to find local resources (many universities provide software development services). The place not to look is in the CS department: those students are there to do research, not write software.
I've put together a presentation that outlines a number of the challenges and how to address them. This presentation has evolved over the last 5 years based on a few ongoing academic research projects that have applied the ideas in it. Most of the ideas are standard practice in industry, but applying them to academic projects can be trick.
The slides are at:
http://www.osl.iu.edu/~chemuell/projects/presentations/vt-software.pdf
Good luck with your project!
-Chris
Comment removed based on user account deletion
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 including that you own the resulting copyright. If you own the copyright, you can release it under any license you choose.
And make sure they document their code.
You have already "jumped to solutions" with this question. You have made decisions about the outcome that you haven't related to the actual problem. For instance, you have specified Cocoa, but you don't say why that specification solves a specific problem.
So, I guess I'd recommend asking a few questions like:
What do you want? What problem are you trying to solve? How many alternative ways could you solve this problem? What are the necessary constraints? What is the best alternative that satisfies solving the problem within those constraints?
For instance: You need to have a program that does "X". The program solves the problem of calculating and communicating by typewriter or longhand. The program could be written in C/C++, Qt, Python, Smalltalk, etc., etc.. The program must be maintainable by you and you only know C++ and Cocoa. Therefore you must select an alternative that includes these languages...
Most decisions are sub-optimal because people don't evaluate enough alternatives. This is OK if the decision is not important or easy to change, but the more time and money invested, and the more people involved in the use of the solution, requires you try to create an optimized decision.
Then you start picking the programmers. Under similar circumstances, I have found it best to check with the employment agencies, and ask around among my IT friends for referrals. Get references.
Good luck on your project.
"The mind works quicker than you think!"
Then he'll take the code he paid for and open source it on sourceforge. Then he'll go through an open source recruitment phase. Finally, he'll be the one saying "we need this feature" and "I'm not accepting that patch."
Somehow, I have a bit of a problem seeing this scenario come true. Either I'm afraid it'll die without someone at the core or that someone at the core would take much of that position. After all, the initiator here is more of a subject matter expert than a software architect from the sounds of it. Maybe the "we need this feature" part but there's always been a surplus of the wanters and a shortage of the doers. I don't know, it all depends on how much he wants people working with him or people working for him.
Linus is an exceptional doer - his code is 2% of the entire Linux kernel. Remove all the driver and arch-specific bits and he's the shining center of Linux. Likewise, X.org was the doers splitting away from the talkers. I can't think of any project where the project leader has come in as a "lightweight" so to say, so unless he really wants to be that guy and grow into that position it's basicly the usual OSS model except with a kickstart. Or he could be more of a detached sponsor of sorts, but it doesn't really sound like he's got the pockets to do that long-term.
Live today, because you never know what tomorrow brings
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.
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
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.
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
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.
Please stand clear of the doors, por favor mantenganse alejado de las puertas
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.
"Pick 100K per year for young people" Those were the times, my friend...