(relocated from SoftwareBazaar):

I believe that when it comes to jobs, it’s mostly about trust.

I was a programmer for 4.5 years, and it always seemed to matter most was that somebody who wanted a job knew somebody who was trusted. Skills and price were minor points after that.

I think workplaces are far more about clique structure, than anything that appears on paper.

What I think could work: A tech commune. This would be a bunch of geeks, working in a commune. You’d need some business and marketing savvy geeks, who could make the calls and find work. Then the geeks would program. The most important thing in such an environment would be cross-training, and it would probably make sense for the commune to run a training camp at the same time.

This might be incorporated as a for-profit corporation. But I was thinking: Income sharing, rural location, collective living.

Lion - You asked for “Income sharing, rural location, collective living.” Silverorange has got two out of three (assuming you count Charlottetown (pop. 30,000) as rural). They don’t live together though, but their “office” is actually house they bought with a playroom upstairs. Their motto is “Get rich slow”. They say they live in a post-competitive era. Although they enjoy it greatly, they suspect their model doesn’t scale beyond about 10 people in one business unit.

a first small step in that direction might be Wiki:PairProgrammingAtHome … it might be kind of fun to have an organization (computer users group?) that simply collects the names of programmers and semi-randomly pairs them off … shuffling every week or so … perhaps even reshuffling every day for the more active programmers. This might scale to any number of programmers … assuming there’s some minimum number of willing programmers a reasonable distance apart. – DavidCary

“teaching me nothing about how to develop large systems is equivalent to teaching me how to develop them badly. I never had a chance to see a well-designed large system of code from the inside; even a badly-grown large system would have at least let me see what not to do.” – GeorgePaci? on Wiki:FuturistProgramming .

I want to learn how to develop large systems. As far as I can tell,

  • I can’t do that at school – there’s only enough time in a semester to build small systems, since we (a) must start more-or-less from scratch, and (b) collaboration is seen as cheating.
  • It’s difficult to learn on the job, because (a) it’s quicker to just knock out some code than to teach someone else how to knock out code, so little teaching occurs, and (b) watching someone else code, rather than sitting in your own cubicle writing your own code, is seen as wasting time. (Wiki:PairProgramming is starting to change that.)
  • It’s difficult to learn on my own time as a hobbyist, because (a) it takes a long time to build a large system on my own from scratch, or (b) it’s difficult to coordinate a bunch of volunteers to work together on something they’re not being paid for. (SourceForge is a tremendous improvement… but I suspect things could get even better).

“A tech commune” sounds like an interesting idea. I agree with BayleShanks that legally it would be a “for-profit organization” – but rather than having all the emphasis on making money, it would put emphasis on learning and training. (Rather than paying money to go to school, or receiving money to go to work, a person would go to teach what he knows, learn what he doesn’t know, get advice on the best tools/best practices for projects he’s working on outside of the commune, and gain experience by putting some work into the “large systems” being developed inside the commune).

I read in my local paper this week that “The first U.S. cohousing neighborhood was set up in … in 1991. Since then, more than 65 have been built … These are not necessarily counterculture types, but software consultants, engineers, and teachers. There are single parents, families and retirees. The concept (of cohousing) is unfamiliar to a lot of people. … Cohousers say they’re not searching for utopia – just community.”

Rather than a big “all-or-nothing” building an entire community on this interesting (but unproven) idea, how could we start small ?

Maybe it would be cool to have an unofficial school / get-together of computer programmers one night a month or so (perhaps similar to Wiki:OufshaHome). Individuals could talk about the top N things they find interesting (whether writing a simple utility from scratch, or maintenance work on some “large system”). Any 2 people interested in the same thing could pair-program.

Where have all the “computer society” and “computer users groups” gone ? Are they all virtual (on-line) now ?

"The Development Abstraction Layer" by Joel Spolsky 2006 mentions the million-and-one things that good management hides from programmers.

It almost makes me feel guilty for asking, why can't programmers have even more fun while programming for money?

It mantions many things that will be important for the success of a ProgrammerCommune or a SoftwareBazaar – things that most programmers have been trained to ignore, so they can focus on programming.

I think it might be interesting to consider how a ProgrammerCommune compares to (or differs from) an employee-owned ProgrammerCompany?. After all, I believe the majority of the communes that have endured for any length of time are ‘incorporated’.

Define external redirect: ProgrammerCompany GeorgePaci