If I suddenly found myself with lots of money to spare, one thing I'd like to do is hire some talented programmers to work on whatever they wanted to work on. I suspect that there are lots of talented programmers out there who have ambitious projects they'd like to take on but which they just don't have time for because they have full time jobs. Most of those projects probably have no commercial application, but it's very difficult to tell in advance what is likely to make money and what isn't. If you get enough of these projects together, at least some of them are bound to make money.
Any profits made could be shared with the entire cooperative, or used to hire more programmers. Sort of like a business and employment cooperative except for programmers rather than entrepreneurs. Ideally once it got big enough it would become self-sustaining and then undergo exponential growth. Part of the nature of software is that it requires very little capital investment (really just the programmers' salary). Another part is that because it can be copied indefinitely and exhibit network effects, once a piece of software is written it can have great influence and importance. So a successful software project can make much more money than it costs, and one only needs a small percentage of projects to be financially successful in order to sustain the entire system.
I imagine that a very large number of programmers would like to join such a cooperative - what could be better than getting paid and not having anyone tell you what to work on? So one would need some method for choosing between a very large number of applications. Let's suppose for a moment we have some infallible way of weeding out people who, given the choice, would rather go skiing or watch TV all day than write computer programs of any sort. Suppose also we have a way of weeding out those programmers who are actually working on something for someone else and want to get paid for it twice.
One way to choose amongst the remainder would be for them each to submit a few ideas of some things they would like to work on, and how much they want to be paid. The cooperative would then pick those ideas that have the most "bang per buck" (i.e. are most interesting, not too expensive and have some chance of commercial success). The member might change their mind about what they work on, but the initial idea would give some idea about what sort of things they're interested in.
Every few months, each member would give a demo of what they've been working on to the rest of the company. Or, alternatively, make regular blog posts about their progress. This gives some cross-pollination of ideas, and may lead to collaborations within the cooperative. Such collaborations can be very flexible and informal, ending as soon as they stop being fun for any of the parties involved.
Hi, count me in for this cooperative! It's also not necessary that you have all the money, because there are many programmers, who have earned enough money to live on it for a year or two, but want to work on their own projects now.
I'd like to write a library of groupware components (addressbook, calendar, issue tracking) that can easily be used to build custom groupware solutions for small companies.
How many programmers would be enough to start such a cooperative?
I think at least two programmers would be necessary for such a cooperative - one with enough money to fund himself and the other. Of course, if one has enough money to fund himself but not enough to fund another, there's nothing stopping him working on his own projects until the money is gone, but that's not really a cooperative.
I love it!!! How about if you start with an idea and get programmers to contribute while they are still in employment? Sort of like a project to get things going. Once the software starts making money then those programmers get their share, and who know, they might be able quit their jobs to then work full-time on other projects.
I will be well in to this.
If you start off with an idea (i.e. specific plan to make money) instead of programmers (i.e. if you're telling the programmers what to work on) then it's really just a side-project/startup. Though perhaps that might be the best way to get something like that bootstrapped.
I was thing more like programmers get together, each with an idea for a program, there is a vote on which should be done. Everyone chips in what they can when they can. Once done you have your first product.
OR each programmer brings a completed app to the table it is tested the code shared and improved if needed (lets face it some of us are not that good at making things look good even if it works properly) and you have a suite of products ready to go.
Well, I have lots of ideas for programs I want to write (though I don't have any confidence in being able to make any money from them, at least partially because I'm a programmer rather than a salesman). Donations (of patches or money) gratefully accepted!
Or if you have an app or idea that you want to cooperate on, by all means go ahead and tell me about it. I'm afraid that (unless it's something I find really interesting) I'm unlikely to have much in the way of time or money to contribute, though.
OK so what are you interested in? Have you had any success with the donation thing? I am writing an app which I hope to finish sometime in the next few months and was thinking of making it a donation app.
I'm interested in all sorts of things - most of my personal projects tend to be in the areas of graphics, audio, emulation or language design, though I've dabbled in various other things as well. None of these things have made me any money (though some of them have lead to gainful employment doing other things). I've never really solicited donations before, though, since I worry that it would create some kind of obligation and take all the fun out of my personal projects. I don't have ads on this site either, partly for the same reason.
Though this conversation is making me think that maybe my next project should be a website for facilitating programmer cooperatives.
I am liking the website idea. What languages do you use?
I have a thing for encryption, doing an app based on that at the moment.
I use c# and SQL, want to do other stuff but time to learn a new language is not there.
I just registered http://makercoop.org.
Most of the code I write for my personal projects is in C++, but I've used various other languages including PHP, JavaScript, C# and assembler. I was thinking of using PHP for the backend of this since I have a pile of code that I wrote for Argulator that I can reuse. I don't know if my web host can deal with C#.
Are you familiar with bitcoin at all? I've never used it before, but it seems like it might be an interesting way (at least at first) for people to make and accept coop donations without the site having to deal with payment gateways or any of that.
Hi Andrew, what did you did finally ?
We have been some how involved with cooperatives and have some ideas ? Any interest in discussing them ?
Hi George,
I'm afraid I haven't done anything else with this idea since I first wrote about it. I'd be happy to discuss ideas with you though.
Yes I have some experience with bitcoins. But I had to do it through Japan as UK support for it is crap. The UK bitcoin exchange just says by invitation only.
However, it does cut a lot of people out, most people have no idea what bitcoin is never mind even hearing of it.
Is PHP tricky to learn? Seems to be a favorite with the web.
This sounds like a neat idea; to be economically viable, shouldn't it also include a couple of other job assignments? I'd suggest the addition of a sales / marketing person to find ways to turn projects into money, and a people-skills person to help get the right assignment (from sales / marketing) to the right programmer.
In doing so, it wouldn't be just product (the executable application) oriented, but would take on the appearance of an organization that could make money to continue in existence.
The trouble is that what you then have is not a cooperative but a company. Even if the programmers aren't beholden to sales/marketing, there would still be pressure to make software that makes money rather than the software they'd rather write. Maybe if sales and marketing aren't allowed to talk to the programmers.
An economically viable "pure" programmer cooperative might be a bit of a pipedream, though. If it wasn't it probably would have been done already.
Hi Andrew,
In response to your response, I have thinked too to the cooperative organization, despite I am coming from the company sector.
One European cooperative was created, and actually is slowly increasing it's members. There is no exact plan, neither a dream to follow.
The main scope it was created was to implement some R&D regarding energy arguments, but I envision for it the creation of independent cooperating sectors within it.
As programmers may be a special "strange" kind of persons, I think that the cooperative organization may fit to that kind or mentality.
Your ideas are welcome, in order to shape anyway our existing entity if that is somehow possible.
It is likely that we have differing definitions of "cooperative". (Not meaning that your definition is wrong, just that it is different from the one that I was using.) My definition of a cooperative is an organization that is non-profit, and distributes dividends to all "cooperative members" at the end of a year or other period. It still has employees, managers, etc, but is more frequently in a "utility area" of business, providing electric power, or other service functions. As a result of being in the service or utility area, there is less available opportunity to grow and expand.
I believe, but have no proof, that most cooperatives function at a lower key than most businesses, and may also be better managed, on average. It is also my opinion that the employees at cooperatives are less stressed and perhaps "happier".
As cooperatives are normal enterprises, what should differentiate their organization, should be the self motivation for workers when cooperative members. Ideally no employees should exist.
Equality between members is another difficult and strange aspect, that shows differences from the typical hierarchical organizations.
What seems interesting to me, are some very interesting "experiments" in cooperatives, where "all" to cyclically "all". I don't understand if that is possible or implementable, but it is surely much more involving for the members.