I have spent a great deal of time pondering the incentives and disincentives of creation. This is my take on programmers, having been one myself.
(As
posted on slashdot)
Programmers are a lot like lawyers, value-wise. Like lawyers, the value of programmers is, or traditionally has been, their creativity and intellect. Better tools have reduced the value of that personal asset in programmers, but not eliminated it.
It is notably different from most engineering in that the products do not require large capital to distribute, once the creativity is complete.
In this manner, I have often wondered if programmers would work better in limited liability partnerships rather than corporations. A small group of programmers who produce on contract to corporations would be, if well organized, very valuable.
The corporate structure lends itself to growth in traditional economy, whereas a larger programming companies have, in my limited experience, not been efficient. There are exceptions, like Electronic Arts, I think.
But the hierarchical view of corporations, looking down upon employees, is flawed in the programming world because the direction of the company is often better felt by the programmers themselves, and management has often had a terrible disconnect from the technical reality, and a tendency to dictate where they should listen. Good management isn't necessarily this way, but many people cling to this management style.
In a partnership, the partners would be responsible for bringing in clients, the design, the programming, and the effective reuse of code. In a corporation, they are typically responsible only for the programming. I believe savvy programmers would be much better at selecting appropriate clients and choosing the direction of the code. I believe, when it comes to the effective reuse of code, a partnership would have better structures adopted to accommodate it.
This sort of delegation among partners has been very effective, in my opinion, in lawyer partnerships. I believe the effectiveness could translate into programmer partnerships. Mind you, moving programmers into management positions in companies may have the same effect, but I think the hierarchial structure inherently causes problems. The distinguishing feature being that in a partnership, management would also be programmers, and vise versa. There wouldn't just be a "delegation to programmers" by management, so to speak.