How Do I Get Open Source Programs Written For Me?
An anonymous reader writes "I am a biomedical researcher interested in having general-purpose, scientific programs developed and released as open source. Interface design and reusability of the code are of primary importance to me. For my purpose, Cocoa applications relying on Core Data seem to be the best way to get the job done quickly. While I have some programming experience, I have few connections to the industrial world. So my question to Slashdot readers is: how do I find someone (individual or business) to write high-quality programs? Are there reputable contractors experienced in Cocoa? What sort of rates should I expect, to use as a starting point in negotiations? Would a requirement that programs are released as open source make it more or less difficult to find someone to do the job?"
The same way you find regular programmers. Just ask them to document their code and have in the contract that the work done is work for hire. When the job is completed, you own the copyright. At that point, release it under the open source license of your choice. For details, consult the GNU website on assignment of copyright.
#fuckbeta #iamslashdot #dicemustdie
Simple as that.
Let us review some basic truths:
1. Every good work of software starts by scratching a developer's personal itch.
http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/
I don't think 'wanting someone else to do it for you' quite falls into this category.
How Do I Get Open Source Programs Written For Me?
Offerings of pizza and beer usually work.
Kwisatz Haderach
Sell the spice to CHOAM
This Mahdi took Shaddam's Throne
If you find a project similar to your needs on freshmeat, sourceforge, etc. you can always contact the developer and ask them to modify/extend, etc.
A second option is to look at rentacoder.com - put out a request, your budget, and include the requirement about being F/OSS software. Get your bids, make a choice, etc.
Don't blame me, I voted for Kodos
...I should think you would be determining the end result of the program. If I read the question correctly, that is. You want to pay someone to write a program or programs. Then, you want to release them to the world as open source. The contractor would not own the code if as part of the RFC you stated the code would not be owned by them in any manner. The programmers may insist proper attribution in the source code, but attribution does not imply ownership.
Bearded Dragon
That's the basic rule. Based on what we pay for our contractors (Qt experts -- they are really hard to come by), count on between 600 and 1000 euros a day.
Perhaps you could contact a University with a good CS program, or something of the like. You could fund a few grad students to develop your program for beans, with the stipulation that the source code be GPL'd. Grad students can be cheap, believe me - I am one, and I make a whole lot less than minimum wage.
Quiz: True or False -- On a scale of 1 to 10, what is your middle name?
Find an interesting problem that people would like to work on.
If I have been able to see further than others, it is because I bought a pair of binoculars.
Go to their Amazon wish list... and grant a few wishes.
Of course, how much beer & pizza is an important factor. Given sufficient quantities of pizza & beer, hell, I'd do it.
Its not like programming with Cocoa is terribly hard or anything.
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
Offer them food or women... or tickets to the latest sci-fi/fantasy flick or linux expo...
I would expect to pay around 150/hr for quality work. the f/oss nature will probably not get you any discount, if that's what you're after. no programmer should really care if their code becomes f/oss, the code isn't theirs anyway.
You can always try appealing to their sense of citizenship. If you are trying to develop software that will be of benefit to society, then you can post on message boards (such as SourceForge) asking people to contribute for the good of humanity.
That is how the metagovernment project got started. Even so, it only attracted people who were deeply concerned with the state of their governance mechanisms. Likewise, you will be best served appealing to people who work in your field who happen to be programmers too.
There are places like getafreelancer.com and similar sites that have developers for hire who will code to your standards. You yourself can choose to release the code under whatever license you choose.
You might also check out Sourceforge and try to find developers there on the forums.
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 whirl again though.
"People who think they know everything are very annoying to those of us who do."-Mark Twain
The second half of his question is about pay rates and how to find programmers for hire. He does mention open source in the first half of the question though.
It seems like he wants to scratch a personal itch, but he's willing to put up some cash for someone to scratch it for him. Then once it's working, open source it and have the community improve upon it. So it's not the typical open source scenario of "start it yourself, put it on sourceforge, then try to get people involved."
I'm picturing this guy as an open source project manager. Eventually anyways. He's going to start out as a client to some programming firm. Then he'll take the code he paid for and open source it on sourceforge. Then he'll go through an open source recruitment phase. Finally, he'll be the one saying "we need this feature" and "I'm not accepting that patch."
What I'd recommend is to read the commit logs and notes for a large project. Study your Linus Torvalds. Read how he manages kernel commits paying close attention to how he handles rejected submissions. And the occasionally poorly received edict (for instance, when Linus moved to a pseudo-proprietary source control system) X.org might not be a bad study either, especially around the time of the split from XFree.
Learn how to manage an open source project correctly, and your odds for success will greatly improve.
Weaselmancer
rediculous.
There are many good Cocoa app developer consultants out there. You should figure out your requirements first with as much detail of what you need as you can figure out. Use some of that information in your advertising or posts looking for help as you can. If you're still connected to a school, ask around the CS department about consultants. Check with Apple, they may have some sort of registered consultants. And of course go to apple related blogs that are about the nasty bits and pieces of Cocoa.
As for the other questions. Making it open source is a non issue. You hire them to do the work where you own it, then it's yours to license as you wish. A good consultant should be able to help with that aspect and with hosting it somewhere like sourceforge. The rates depend on the region of the world of course. In the US rates these days for good quality contractors (but not giant consulting houses) seem to be in the range of 75/hr to 150/hr. As you go to bigger consulting firms the rates of course go through the roof say from 175/hr to 300/hr.
Get enough grant money to pay a programmer to write code, either as a contractor, or an employee, then advertise for a person to do the programming. Forget about students doing anything worthwhile - their priorities are elsewhere.
If you want to find a competent developer, it won't be easy, and they often don't come cheap. Incompetents usually do come cheap. Sometimes you can find a beginner that wants the experience, and is really talented - take care of him if you do, they don't come by often...
"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 work for would at least double if not triple the price.
If you hire a developers directly "work for hire" and pay them from your own funds then you will own the copyright and it is not a problem.
I've used - http://www.rentacoder.com/ for a few different projects.
You can put the request out with whatever terms you'd like and the let the market set the price.
as a biomedical researcher, you can:
1. inject them with a lethal toxin or virus that gives them 48 hours to live. you possess the antidote, but you won't give it to them until the programming is done. you may find this code to be slapdash and hurried
2. reprogram their genetic makeup so that they slowly devolve into an insect. revertion to homo sapiens status only occurs if the programming is done. their coding effort will be highly hierarchical, with independent nodes functioning in close cooperation, like a hivemind
3. surgically insert a biomechanical morphine injector directly into their spine. press the button, and give them rapturous pleasure. get them addicted, then demand they get no more fixes until the programming is done. code produced from this approach will be alternately pure genius, and pure garbage
combine #1,#2,#3. be the perfect bad guy. code will resemble naked lunch
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
Often times, beer works too.
Sexual Favors. Neither party pays taxes, the geek gets something worth more than money itself.
First off, please realize that custom software development is likely to be a 5-figure investment. Just because you want to open source the end product doesn't mean that it will be cheaper to do. You may find someone to quote you a really cheap price but I guarantee you that you won't be happy with the end product and you'll probably end up spending more over the long run than if you had paid up front to do it correctly.
With that in mind, there are plenty of quality software consulting firms that will do this for you. To your developers, it shouldn't make a difference what you do with the end product. If you want to open source it, thats your business because you've paid for it.
If you don't have the money to pay someone else to do it, I'd start learning to write software and/or reach out to other lab rats in your field who may want to help
Over the last 20 years, I have worked for several small biotech companies in the boston area, and all have had large (> 200 K) budgets for software. The take home lesson is that there are a lot of really bad programmers out there, and the only way to survive is to have someone you trust , who knows how to code, vet them.
My current company has a really sharp VP/programming (whatever his real title is, thats what he does) and he hires good people.
This may seem like chicken and egg advice, but it is all I have
For examples, scan through almost any story at www.thedailywtf.com
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.
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
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
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.
I commend you for trying to find a programmer to work on this, rather than a biology student. As a bioinformatics programmer, I've seen the wreckage that results from the latter, and it's not pretty. There's a reason they don't let me in the wet lab, and it works the other way around, too. (I would never discourage anyone from learning to program for their own enjoyment, but if the results matter, you should act accordingly.)
The most difficult part of what you're trying to accomplish is finding a programmer who's competent and has the right mindset. I've been programming for decades, and it's still difficult for me to figure out whether a particular person is good until I've observed them for quite a while.
Regarding Cocoa, I think you should consider very carefully whether that's actually a requirement or whether it's simply something that sounds good. It's kind of like going to a doctor: you don't necessarily say "I want you to give me a bypass"--rather, this should be a long conversation with an expert in which you describe what you're really trying to do, and he/she provides suggestions and information about the pluses and minuses of various approaches. There may very well be alternatives that will be much cheaper and that you would be much happier with in the end.
On the whole, the requirement that the results be released as Open Source should actually make it easier to draw good people.
"Not an actor, but he plays one on TV."
You need to knowledge to do this obviously, but that's what books and friends are for.
Yes, I'm a prick.
post a question to this site, there are many programmers there. One will anwser you I'm sure.
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).
While PHP is technically a scripting language, not a programming language, there is no reason to attack him like that. I wouldn't say PHP folks are the lowest of the low by a long shot. And knowing both PHP and C++, while there are some differences, skills in PHP easily translate over to C++. Syntactically they seem very similar to me.
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.
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.
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.
"People who think they know everything are very annoying to those of us who do."-Mark Twain
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
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 we use to develop our products. We're not a huge firm like CA or SAIC; you'll deal directly with the lead developer and project manager. Since we develop with agile, if you don't like what you see after 30-60 days, you can stop us, pay us for what we've done, and find another team. You get to keep the code we've already written.
Check us out:
http://www.traxintl.com
You can contact us via the Contact Us form or by contacting me via Slashdot (click my name above).
Do you do your research at an academic institution?
Alternatively, Does your company maintain close ties with one or more academic institutions?
You can leverage this to the advantage of both you and their CS students.
There are undergrad practicum courses, students hungry for internships, etc. etc.
It probably won't be as fast as a "rent-a-coder", but it's a great way to get things done "on the cheap", and a lot more people than just the open source community will be helped in the process.
VLC FOR MAC IS DYING! IF YOU DEVELOP, PLEASE SAVE IT!!
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 documentation -- just getting used to how it is organized can take a little time and effort. I hardly see that as a reason to belittle someone for primarily coding in PHP, however. The language alone is definitely not a good metric for measuring one's competence. Even given the "holy grail" of languages (none exists imho), a bad programmer can make the "lowest of the low." Also, when you speak about the PHP front-ends being the "lowest of the lowest," what are you referring to, precisely? Because the "front-end" is really just the markup generated, along with graphics and CSS in that world. While PHP dynamically generates the markup, nothing about the language forces anyone to put out horrible looking/functioning front-ends.
Go to a college's CS department and offer it as a capstone project. Someone may or may not do it, but it'd get done for free.
...the lowest of the lowest in the IT world.
VisualBasic, anyone?
Just warning ya.
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 interpreted rather than compiled. If one so wished however a compiled implementation could be created, and that wouldn't have any effect on the language itself ;).
"People who think they know everything are very annoying to those of us who do."-Mark Twain
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 for more grant money.
Some universities teaching CS have a medical/biomed branch because, as you may have noticed (hehe), there's a need for programmers who know both. I'd start looking there. There's always students looking for money and something for their thesis, and of course departments looking for "reality based" problems to show off and cash in on.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
I have worked for several Biomedical companies as a contractor over the years and I have done Cocoa, Java/Swing, and Qt along the way.
Feel free to contact me
tomcondon@mac.com
www.rentacoder.com
www.getacoder.com
The best ways to find qualified programmers in my opinion.
Have a look at cofundos. While it may not suit the OP, those who are in a similar situation may find it useful.
If all you have is a grenade, pretty soon every problem looks like a foxhole -- MightyYar
Your best source for this would probably be to find your local LUG, and they'll most likely be able to get you in touch with people who do OSS development. If there's someone with a similar interest as you, you could probably get a partner on that project--but offering money would get it done much quicker.
haha... I was thinking it, but didn't say it ;)
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 half of what a decent Cocoa programmer is going to cost you at the going rate these days.
If that's in discussion range email me, alex at alexcurylo dot com.
Personally, I think hiring someone is a bad idea. You don't have a lot of coding experience so you won't be able to judge quality. I think you are better off using some sort of competition as a means to get the job done. How about breaking the tough part of the work into smaller portions that can be easily tested for performance, quality, etc. Give out prizes to whoever completes the code on time and scores the highest marks against your tests. This requires more work on your end because you have to quantify how you are going to judge the submissions but you would have to sort of do it anyways if you were trying to measure the quality of the work you paid for. Since you are a researcher, I assume you have contacts in Academia. Advertise the bounties in the CS department and wait for the submissions to trickle in. I've never tried this but I think it might work well.
As has been mentioned, there's a relatively small number of Cocoa and/or Objective-C programmers around. However, you don't need all that many people (maybe only one?), so I don't see this as a major constraint. In fact, I might suggest that you consider going into an even smaller niche. By choosing RubyCocoa (or its upcoming replacement, MacRuby), you might be able to create a framework that would encourage scientists to add their own code. A great deal of Open Source software is written by employees and released by the companies that employ them. This can offer real benefits to the company, in that they may get outside help in the project (eg, in development, documentation, maintenance, and testing). If the code base starts to attract outside attention, the company may be able to have the developer(s) take on some organizational tasks (herding cats :), as well.
Technical editing and writing, programming, and web development
Comment removed based on user account deletion
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
- Faster
- Cheaper
Choose any two. This is still true today as it was 30+(?) years ago when it first came out for software development.
My personal experience though, is that you are very lucky to even get one of those, unless the project is well managed.
The best way to predict the future is to create it. - Peter Drucker.
How much money you got?
You certainly have a point, and there are PHP compilers out there, but they are still in their infancy. I have never really understood the distinction between scripting and programming, and always just assumed that the distinction was interpreted vs compiled.
If you want somebody to develop a program to solve a scientific problem in the biomedical domain, it is likely that what you need is a bioinformatician.
The asker does not mention in what context he is doing research. If at a university, offer the problem for bioinformatics msc students that need to come up with something for their dissertation project (or even as a phd project if the problem is considerably larger).
If the asker works in industry rather than academia, student placements would still be possible (offering a connected studentship), or simply hiring a bioinformatician.
What kinds of rates to expect. It depends a lot. You can find kids who will work for peanuts but then you want profesional quality well documented work that is well tested. You will have to hire some real software engineers, some real quality control peopel and some real technical writers and editers and graphic design people. I've worked in the software business for 25+years and I'll tell you that it is expensive. You'd be shocked at how little a million dollars will buy. For example I live in So. California and have a wife and two kids. How much money would I need to support a middle class lifestyle? Then figure in typical levels of productivity. In my area, embedded systems used by military equipment we are lucky to see 200 lines of code per month per engineer. But that is fully debugged and tested and we have very, very strict quality controls. If you are writing for the web then you can be almost 100 times more productive because crashes and failure is tolerated because people don't die when a web page fails. Productivity is also a matter of luck. Studies have shown that in any group of 6 engineers there will be a 2:1 ratio of productivly between members of the group.
"Lines of code" is a horrible mearse of a program's size but is as good as anything else we have. Typical LOC counts are about 5,000 for a simple but non-triveal program that one or two people might write. The Postgresql database system has nearly 500K lines and the Linux itself has about 10M line.
So take the productivity numbers, your line of code estimates and an assumed salery plus overhead, payroll taxes, worker's comp insurance, social security and so on. Pick 100K per year for young people and double that for those with 10+ years full time experience. Run the numbers with low, average and high estimeats and you will get the range of costs. And yes you might be able to pullit off using all low estimates if yuo hire students who work at home and alrady have a solid understanding of the science and math.
The worst case would be back when I worked on a radar system. In industry, radar is hard. Just over half the projects fail for technical grounds and this is even for organizations like Raytheon. We blew through millions and had nothing to show for it. But then producing maps in real time in the cockpit as a supersonic aircraft flies over the ground is not easy. But on the other hand if you are only creating forms on a web page, some kid will do it for you in a few hours. Cost depends very strongly on the problem domain AND the experiance of the enginers in that feild. In our radar case no one had yet solved this specific problem so going in we know we had a high risk.
Risk is I think a worse problem than cost. Most software managers try very hard to reduce risk and make of a plan A, B and C. at least. It is worth paying double to reduce risk by half. Your best risk reduction technique is to find engineers with the relevant experience. Who understand both the science and the programming environment. On a large project yuo simply can't find enough of these people unless your project is very generis (like an on-line store)
Good Luck.....
You have already "jumped to solutions" with this question. You have made decisions about the outcome that you haven't related to the actual problem. For instance, you have specified Cocoa, but you don't say why that specification solves a specific problem.
So, I guess I'd recommend asking a few questions like:
What do you want? What problem are you trying to solve? How many alternative ways could you solve this problem? What are the necessary constraints? What is the best alternative that satisfies solving the problem within those constraints?
For instance: You need to have a program that does "X". The program solves the problem of calculating and communicating by typewriter or longhand. The program could be written in C/C++, Qt, Python, Smalltalk, etc., etc.. The program must be maintainable by you and you only know C++ and Cocoa. Therefore you must select an alternative that includes these languages...
Most decisions are sub-optimal because people don't evaluate enough alternatives. This is OK if the decision is not important or easy to change, but the more time and money invested, and the more people involved in the use of the solution, requires you try to create an optimized decision.
Then you start picking the programmers. Under similar circumstances, I have found it best to check with the employment agencies, and ask around among my IT friends for referrals. Get references.
Good luck on your project.
"The mind works quicker than you think!"
Have you ever seen these programmers? Most of the time they've got more metal in their faces than in my car. It's like I always tell people, you want to attract a good programmer? Use an electromagnet.
"Just a fox, a whisper."
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 off.
http://rareformnewmedia.com/
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.
So I work in one of the reputed services company based out of New Delhi, India. We have worked on both iphone and Cocoa framework. We are also working on a few of our own Open source projects so we can help you little on that aspect as well. Rest assured that you would retain the full rights of the software.
For more details you can contact me at prayag D0T narula AT gmail DOT com
I am also a biomedical researcher and I've found the best way to get your custom applications written in Cocoa: Do it yourself. :-)
this sig is useless
That tests its candidates. Then, try contacting the investors at Biopolis in Singapore--if your company is in a position to.
Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
Here's how my previous job worked: We would find someone who wanted something, and charge them hourly to write it, and then give 'em a binary to which we're the copyright holder. Then that program would be a "product" that we would sell to other people in the same business. It was great for us (and not so great for them, but they didn't know better).
If you make it so that we don't have a proprietary product (developed at your expense) to keep selling over and over, then we're going to ask for more at the "charge them hourly to write it" part. (Well, either that, or you're going to do business with someone more competitive than us, who is ok with only being paid once for each unit of work.)
And to be fair, the business was actually a lot more honest than I just made it sound. And it is still a standard practice in the business (there just wasn't anymore more competitive than us). That's how things will be, until enough people like you say they're willing to pay for free software, so that it reaches critical mass and becomes the new standard.
"Believe me!" -- Donald Trump
I've been developing software for the medical industry (diagnostics and therapeutics) for eight years, much of that using ObjectiveC under OpenStep. I'd certainly be interested in discussing contract work of this type.
Kelly.
Open source is not an issue at all, so long as it is clear that you own the copyright of the developed code. Then, you can do what you like with it.
There are many ways to approach the engineering of "high-quality programs." However, in general, they will be very expensive. The real issue is how high-quality of development do you need. If you are truly after a full-up engineered piece of software, which includes:
requirements analysis
design documents
test procedures
traceability matrices
implementation
formal qualification/certification
etc...
the price can be quite large. This type of effort is certainly not a rentacoder job. It is unclear what you want the software to do, but if it is be used in any sort of safety-of-life situation (patient diagnosis perhaps) there may be some legal issues as well. Also note that there are additional requirements that need to be considered to protect patient privacy per the HIPAA (in the US at least).
In general, right now in the US, you can contract good software engineers that can perform all these tasks for about $80-$120 per hour depending on location and area of expertise. For a complete software development cycle, it is not uncommon to see a performance of 10 SLOCS/hr (lower for highly secure or life critical systems). If I remember correctly, the US Government assumes around 2 SLOCS/hr for most systems. So, if you want 10,000 source lines of code engineered and guaranteed to work, $100K is not unreasonable. (Estimating how large the program will be is a whole other issue).
Of course, if you just want the Mac freak above to draw you some moving pictures, you could probably get it done for the cost of a bag of Cheetos a subscription to his favorite p0rn site (no offense meant to all the other normal, friendly, polite Mac folks).
Last time I checked it was XNU.
XNU certainly had vast quantities of BSD source shoehorned into it in order to provide near-complete BSD APIs.
But a fruit cocktail is not a pineapple.
It doesn't matter if Cocoa is any good or not.
What matters is that you shut out a significant number of potential community members when you are too narrow in your requirements, and that always hurts your chances for success when you are trying to leverage a community-dependent process like open source software development.
The more esoteric your application is, the more important it is to allow your programmers to use the tool set they prefer to use. You've already cut the talent pool down drastically when you want to code up a phylogenetic tree inference engine instead of a porn browser mode; if you also expect to dictate the brand of computer that must be used and the color of socks the programmers must wear, you will dramatically decrease the odds of finding someone really good to work on your project.
Use something truly multi-platform, like C or perl, and eschew toolset specifications.
1) Hire Programmer/s
2) PAY HIM - Most important
3) Get the code done
4) Review it
5) Add LGPL license or GPL one
6) Put the code with free access in internet for rest of the world.
-- As simple as that.
I suggest next time you try learning Cocoa, you first have this book handy:
"Cocoa Programming for Mac OS X" by Aaron Hillegass.
Looking for Mac programmers alone is likely to restrict your talent pool. Try widening it by using Qt, that way you can use standard C++ with Qt talent. Which I think is a much larger user base. Your OSX deliverable is just a compile away.
Why do you, a biogeek think Cocoa is the way to go? Shouldn't your developer have some say if he's the one to code it?
In addition to rentacoder, there is also elance.com
Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
I use this often. Check out GURU.com. I have a guy in India that does work for me through Guru. He is superb at what he does and inexpensive. It's not Cocoa, but I'm sure if you post your project you'll have many bids within a day to two.
The open source bit will count as positive for most developers.
If it's work for hire at competititve rates, most people don't expect any ownership or even credit anyway. OSS gives them the credit and an incresesed chance that someone will actually see their work. We really like that. If the work itself is interesting too, you might be able to get rates noticably below the industry norm.
And finding coders/consultants that will work for hore is easy, if your pay is reasonable.
The difficult part is finding the really good ones. They tend to be otherwise occupied, and spend their extra-curricular coding on stuff that is fun to them.
For your project you probabaly need two really good ones: the chances of finding soeone who is really good at both programming the core of scientific programs _and_ making great guis is essentially zero. If someone feels offended by this: I'm not saying that they're inherently mutually exclusive, just that both are rare and a combination is rarer. Plus that for someone who specialises in usability and interaction, if they have a second speciality, it is unlikely to be number crunching, and vice versa. I'm sure they exist, and i'm equally sure they are all very well paisd doing very interesting jobs already. Both fields are entire scientific disciplines in their own right, and you can't get good at them without investing a whole lot of attention to studying them.
sudo ergo sum
What matters is that you shut out a significant number of potential community members when you are too narrow in your requirements, and that always hurts your chances for success when you are trying to leverage a community-dependent process like open source software development.
Don't confuse not-being-able-to-find-programmers with not-knowing-where-to-start-looking-for-programmers. Also I'd like to point out all he has to do is ask some professors at a nearby university if they have any biomedical grad students who know how to program on Macs. You may think this is a near non-existent demographic, but I'm an environmental science major who's done Mac software for my own research purposes (and had fun doing it), so hey, we're out there.
Use something truly multi-platform, like C or perl, and eschew toolset specifications.
I'm doubtful anyone would be willing to use strict C to write an entire application nowadays, especially not for research which requires flexibility and the ability to do quick/easy experimentation with ideas that might end up going nowhere. Don't get me wrong, C is great for tons of stuff, but I'd avoid writing an entire program with a GUI in just that alone (especially if a non-professional-programmer like him is supposed to be able to make use of that open-source code). Objective-C & Cocoa really let you get away with letting the code evolve from nothing, with fairly little planning. It feels so casual. ANSI-C, well, takes more planning to avoid the code from becoming a mess. Once it becomes a mess, he'll be wasting time on managing the code rather than using the fruits of the code to further his research.
By the way, you could always tell the programmer to develop a C-backend, and turn it into a library for an Objective-C frontend.
Objective-C is is totally compatible with C. In fact, there is no Objective-C compiler, just a preprocessor that turns Obj-C into straight-C, THEN GCC compiles that. This is also the reason why you can get away with things like Objective-C++ which let you mix Obj-C code and C++ code in the same source code files. (You can't tell Obj-C objects to call C++ methods, but hey, you can always exchange data via primitive int/float/double). The C/C++ backend method is what I personally prefer.
All I'm suggesting is to avoid the knee-jerk reaction to tell-him-what-he-really-wants and help him get what he's asking for. Don't assume he's completely clueless. If he wants to be able to use Cocoa, or at least a Cocoa front-end, let the man do as he pleases.
Take a look at how the leading BitTorrent client on Mac OS X was designed: http://theocacao.com/document.page/548
Transmission doesn't just give the appearance of being a good Mac app, it actually is. There's real, solid Cocoa goodness here. Based on a quick survey of the project (so don't hold me to the details), it looks like the developers did this by separating the core application logic out into a library called libtransmission, which I assume is shared across the different platforms.
The Mac application project imports libtransmission and uses Objective-C's natural integration with ansi C to layer a Mac UI on top of the core library. The Torrent Objective-C class wraps the low-level C structs, acting as a bridge for the data model.
Cocoa doesn't have to break multi-platform compatibility except at the GUI. If you're porting software, then you were probably going to have to rewrite the GUI anyway which makes that issue relatively moot.
elance.com is a freelance programming site that you can post your project on to have other bid to complete it. Working with contractors in this way works better if your project is well specified. Good luck.
Well, for one thing, say where you can be found. Your query made me wonder just what you had in mind. Maybe I'd be interested in helping out, but I don't know how to contact you.
Most cocoa heads are well acquainted with the cocoadev wiki. Its job page seems to get alot of action. I know I've seen Apple post jobs there.
http://jobs.cocoadev.com/
Most experienced Cocoa programmers will cost you between $100 and $200 an hour. Maybe you can get someone to bid by the job and get it cheaper. Also if you are willing to deal with someone doing the work part time it should get even cheaper, especially if your project is interesting.
Less experienced programmers might take less to get a foot in the door or something for their resumes.
The open source thing would probably help, I think I would prefer to work on a open source project and would be more likely to take a job if it was going to be open.
But as far as determining rate I'm not sure it would affect things too much. I'll charge by the difficulty and time required.
So if you do want an experienced cocoa programmer and don't mind someone part time, leave some contact onfo in your reply. I can get back to you.
Hello,
If you need software programmers give me a call because I work with a consulting agency and that is what we do all day long. We'll help you with your contracts for hire and everything else and will also do a drug test and bachground check if that is what you please. You can call me at (888) 541-0400. THANK YOU!!!
Sincerely,
Zack Wright
Pro-Tem Solutions, Inc.
Connect With Me On LinkedIn- http://www.linkedin.com/pub/6/a7a/340
249 E. Ocean Blvd., Suite 500
Long Beach, CA 90802
Toll Free: 888-541-0400
Fax: 562-216-6412
www.pro-temsolutions.com
Right People Right Client Right Time
you whiny mac faggot!
Find him a girl with a who likes geeks.
If someone is passing you on the right, you are an asshole for driving in the wrong lane.
Let's see if we can start a "competitor's thread" for people who do this stuff. :-)
My company, Predictive Patterns Software (http://www.predictivepatterns.com) does development and data analysis, specializing in the difficult transition from "a program that works in the lab with expert users" to "an installable, documented application that works in the real world with naive users".
Much of this is based on open source frameworks, and we are dedicated to writing cross-platform code whenever possible, mostly using wxWidgets as the application framework.
Blasphemy is a human right. Blasphemophobia kills.
Why not ask for some volunteers to write your application for BOINC, a popular, open-source distributed computing platform? This would give you the added benefit of global, free computing resources for your project(s). Several people are knowledgeable about writing applications for the BOINC platform, and several others have experience writing code for other BOINC-based scientific applications and might be interested in contributing to yours.
PhD in biophysics and ace programmer. I also freelance part-time. Yo, just hire me, I'll do the job for $65/hour.
I'd guess it's so that if it jumps up and rests at an angle, that downward pressure of road traffic or gravity is much more likely to push it back in if it's round than if it's square. What's the right answer?
Getting a program written for you in the open-source world should be, and is, easier than when you require the source to be kept confidential. There is a number of software companies out there whose business model is similar to the companies you know except two things: 1. they only accept projects dealing with opensource, 2. they're extremely good at what they do, usually they specialise in something. Well, why are they so good? Because they're made of people who created the open-source programs used by millions on their desktops (or elsewhere).
So if you go to rentacoder you will get an average coder who doesn't care what the license. With that new range of companies though, you get something extra by paying for opensource: you get people who's portfolio is on your desktop already, who are in the community for years, who know how to leverage existing software rather than spending your money on rewriting the basics, and who will probably make sure that the contribution can be benefitted by others (because likely the project will be maintained for longer than until the first deployment).
Some names that come to my mind are: OpenedHand Ltd., TrollTech, Imendio, Fluendo. The former two don't take new customers anymore because both have been acquired by their previous customers. Also notice that the all four specialise in embedded software, it's because I was in one of them and I only know about this small niche, but you can be sure there are more such companies. Our customers would come to us with their ideas and we would implement them and we would make sure everything is done in the free software spirit. Our customers generally knew about us from looking at the number of contributions made to projects they were interested in. This way they knew what to expect.
If I wanted to find a good Cocoa engineer to do a scientific application there are a couple of things I would consider:
1) Apple Worldwide Developers Conference.
Mac OS X has a very strong penetration into many scientific disciplines, few more so than the life sciences. This has been reflected at Apple's annual gathering of the creme-de-la-creme developers mid-summer in S.F. For the last 7+ years there have been many diverse science related sessions, gatherings, poster sessions, etc at the conference. It would be a great place to get to know some of the many hundreds of best scientific coders.
2) MacResearch
Over at MacResearch.org you'll find a huge number of technology oriented researchers and forums where you might be able to gather a critical mass of interest in a project or even someone to code it for you.
3) Software lists
Check out the many lists of Mac OS X scientific software out there. You might find that it, or something very similar, has already been developed. Here's a very non-comprehensive list to start with...
http://www.apple.com/downloads/
http://www.apple.com/science/software/
http://www.finkproject.org/
http://www.versiontracker.com/macosx/home-edu/math-scientific
http://mac.sofotex.com/Educational/Math_And_Science/
http://www.macosxapps.com/index.php?topic=sci
http://www.pure-mac.com/science.html
http://www.macinchem.fsnet.co.uk/macosx.htm
4) Unix software
It is usually open source, a good programmer can usually recompile it for Mac OS X in a very short time and it makes a great starting point for a conversion to Cocoa.
5) Respond to Apple's Call for Science Apps
(see the grey bar bottom of the page)
http://www.apple.com/science/software/
Give them a good business case for your app and the good people on Apple's science team in marketing and worldwide developer relations may be able to help.
Anyone else notice in the title that there is no "from the someone-ate-my-from-the department"?
Off topic I know, and mod me down as you probably will, but I've never seen that before on /.
You moved your mouse. Please restart Windows for changes to take effect.
Posting a job opening or project on rentacoder.com or dice.com is very often like looking for a needle in a haystack.
Two groups that specialize in Mac OS development jobs are:
As to programming rates, it varies with experience and which part of the world you are dealing with. If you are dealing with programmers in the USA, you will have to pay higher rates for programmers working on the East or West coast because the cost of living is higher. Don't expect experienced programmers to work cheap either! An experienced programmer with 5-10 years of experience will start at $50/hour, with a typical rate of $75-$100 depending on project length and difficulty.
Remember, a good experienced programmer will do the job right the first time. An inexperienced programmer will sometimes take several tries to complete that task and the resulting program will be fragile and difficult to maintain.
A quick check for determining programming experience is to get a development estimate for your project specification. Give the programmer a complete project specification (including screen mock-ups) and have them give you a project development estimate. An inexperienced programmer will typically under-estimate the time and difficulty of the project.
If you are developing "general-purpose, scientific programs developed and released as open source", you should check the BioCocoa site to see if your project can leverage work already done there. If you can do the work in Java, the BioJava project is a good place to look for BioTech related libraries.
Another good place to find more information about doing scientific research using Mac OS X is the Mac Research web site.
Presumably you work within a university, so start by checking with your computing faculty to see if there's any interest as a student project. Final year undergrad and postgrad students usually work on projects of this nature.
At my university each semester the engineering faculty sent out invitations for candidate projects, which extended to the local community. Students were required to work closely with the "client" and achieve a professional standard of work. The quality of the work can vary but can provide a starting point provided you, as the client, remain closely involved.
Generally, with open source you must attempt to make the project interesting to the broadest possible cross section of potential developers. In terms of platform/technology choice, this works three ways: maximises the number of potential developers interested in your project; gives any developers you do attract the broadest range of open technologies to use in their work; helps to improve those technologies which in turn improves your own product. And the multiplier effect grows a little more.
1. Get formal approval for the project, stating which license(s) will be used for the code, libraries and documentation.
2. Establish your governance including project management framework etc (same as closed source, except all tools will need to be accessible to anyone involved in the project). Find a lawyer who understand FOSS licensing and ensure he/she reviews the contracts you will be using.
3. Define your requirements. Make the high level design as modular as possible. Decide on the development environment.
4. Search for similar projects to see if you can leverage them or entice the developers to work on your project.
5. Setup a project environment - either on your infrastructure or somewhere like sourceforge. As a minimum this needs a code repository, wiki for documentation, mailing lists and a bug/ feature request tracking application.
6. Ensure that you know who wrote every line of code and that you have the right to include it in your application. Where code is reused you need to ensure that the license is compatible and appropriate attribution is retained. (You do this with closed source applications anyway, don't you!).
There are two models for paying the programmers - by the hour (which means you may want them working in your office at least part of the time) and by delivery of an agreed output with suitable quality. For the former, simply follow your normal recruitment practices for a contractor but advertise through your local Linux or other FOSS groups as well as the normal channels. If you are paying by the completed module you can either follow the normal quotation process or simply offer bounties of a set amount for a module. Bounties are likely to appeal to a different group of programmers including folk in developing countries and are a low risk way of tapping this resource.
You will also need to decide whether to run the entire project openly or just open source it when you release version 1.0 - I recommend you start publishing code as soon as you can since that will maximise the benefits of open source flowing to your project.
Good luck.
I've been contracting since 1992 (mostly SF Bay Area). I'm cheap, around $125/hour. I could not imagine anybody worthy of the job to work for much less.
Consider a post to CraigsList, and see what comes back.
Not to discourage you, but this will be a long journey, much of which involves stuff you apparently are not interested in. You will have to staff and supervise the work. If you are unable to communicate what you want done, you might have to pay for multiple attempts to get it right.
Another alternative: If you really have some coding ability (however meager) you should try to produce a prototype and make it available. Perhaps you will attract some interest and attract a community, which is what you wanted anyway.
My company, Digital Networking, has experience writing software for research and we have degrees in fields like Physics(from reputable universities).
I wouldn't recommend the bidding sites based on my own experiences with them. Many of the bidders lie just to get the job. I've seen many bids for $30 to make a complete website. Does that sound realistic? Perhaps if it's a frontpage template that takes 5 minutes to modify, but a decent site can take a month or more to produce.
I'd also recommend staying away from software shops(programming companies). They are in the business of keeping you locked in to upgrades, security fixes, etc. They're not going to just hand you some great source code and walk away...
http://www.lolix.com/ brings together proposals for FOSS jobs and resumes of FOSS developers.
Offerings of sex work better.
In the rest of the world, the copyright _always_ belongs to the original author. But USA never wants to do what the rest of the world does...
Of course, how much beer & pizza is an important factor.
Beyond a certain point you'd want to escalate to hookers and cigars. Actually, forget the cigars.
Loose lips lose spit.
Cocoa requires a mac; that cuts out at least 90% of potential contributors, doesn't it? Why impose this unnecessary restriction? Where's the gain, once we discount the supposed religious appeal to cult of mac followers?
I've found that integrating a GUI with a program development is nearly always a bad idea. Write the program with clean APIs and text interfaces, then let the GUI guys write "pretty" interfaces to it after the fact.
The example you provided (Transmission) looks like a good model of this. The application code is in a libary that is machine-independent C. The mac port has a mac GUI pasted on it for optimal useability on that platform. There's also a BeOS port, a wxWidgets version, and of course a CLI for dinosaurs like me.
It's sadly rare to find someone who is both a top-notch app coder and a top-notch UI coder. I usually try to find someone else to build UIs to my code - and I prefer that the UIs be web-based, because desktops come and go too quickly to be worth targeting. I try to write apps that will run for decades without modification, and UIs don't last that long.