Fog Creek Software
Discussion Board

Partnership Software Houses vs. The Factory

Software Engineering can be a creative occupation. Do you feel ‘high’ from figuring a good solution to a tough problem?
Many of us are employees in large software companies, or other types of large organizations’ software departments where more often than not, coding is a labor rather than an art. Many of us wish we could go freelance, or start our own company, but lack the funds and/or the courage, especially in the current economic climate.

My argument is that writing software is a creative process that doesn’t translate well to the ‘factory’ approach prevalent with most software companies. I think that a model such as the partnership firm would be a better fit.  Firms the likes of which architects, copyrighters and even lawyers organize in.

The model, for those less familiar is something like the following:
You have your partners, your junior-partners and employees. After a set period of time (usually two years) an employee either becomes a junior-partner or must leave. Partners and junior-partner are entitled to profits based on a different ratio they also have different voting powers based on the same ratio.

*. This way, no one toils forever in the company without becoming truly a part of the company – when you work for your own gain you are more motivated and have a vested interest in the success of the firm. And don’t yell ‘options’ at me… We know what their worth. I have enough useless options to cover a football field.
*. Everyone have to carry their own weight, no stealth unemployment. Partners and junior-partners
*. No ‘bosses out of touch’ – Everyone writes code, works with clients etc.
*. No ’40-your out’ attitude, when you are 40, you’ll be a partner by then – no one is going to kick you out, you’ve proved yourself worthy…

Etc… I’d appreciate your comments…

Tal Rotbart
Wednesday, March 5, 2003

The desire to have a company where "Everyone writes code" is a common one. But it is faulty thinking.

As I'm sure Joel can attest; "management" is a full time job (and an art form in itself). Managers are forced to handle issues that are completely unrelated to software development. Between acquiring clients (be it by selling commercial software or development services) and handling the day-to-day corporate issues (payroll, insurance, taxes, staffing, property, asset management, ticket off clients, etc. etc. etc.) they have precious little time to sit down and produce code.

And management isn't the only group in this category. There are also people in reception, technical support, accounting, and sales that also do not code. All of these are vital positions in a well run company.

All that said, an employee owned software firm is an excellent idea. It would help to alleviate some issues that common plague us (like high turn-over). But I wouldn't set it up like a law firm, rather something along the lines of Avis. Law firms work because each lawyer is his own little company within the larger context of the firm. This doesn't apply well to software development where everyone must be part of a "team".

Avis on the other hand is owned by the employees but run by individuals that the employees hire. So the CEO is a typical CEO with all of the common prerequisites. But rather than answering to some selected stockholders, the CEO answers to the employees (they collectively hold the most stock). This works out well because the employees control their own destiny. But it also means that someone is at the helm to keep everything working smoothly.

The most important thing to remember, an "out of touch" manager isn't someone who doesn't code. It is just a poor manager.

Wednesday, March 5, 2003

For a shrinkwrap company, Marc, what you say makes a lot of sense.  Also for small-company "consultingware" intending to become shrinkwrap.  I'm not sure partnerships would work as well there as a CEO who actually is accountable.

On the other hand, when I thought about turning a team I knew and trusted into a consulting shop, our structure looked a bit more like a "partnership" model.  Though we certainly had non-coders - my second in that group did documentation and testing, which made a great amount of sense.  I had the vision of what the result should be firmly in mind, and he had the cynical hands-on perspective of what we actually had at any exact moment.

Wednesday, March 5, 2003

Software engineers working in big companies, and many small ones, are managed like production line workers.  I think this kind of management thinking is the root cause of most problems with software development.

The software partnership is an interesting idea, but does have the problem that software development is usually done in teams, and as the other post stated someone still needs to do the management tasks.

I used to work for a small software development company that was closer to the ideal software development environment.  It was founded by people who had done development, but some did management and others stayed in development.  As the company grew it stayed a software development company, but included managers and support people as well as developers.

It ultimately disappeared due to several reasons.

First, it had a hard time getting work.  It had a good reputation for the work it did, but it depended on getting software development contracts from other, usually bigger, companies.  You might think that with all the talk about a software crisis and how software is over schedule, over budget, etc., that a company that can do better than average would have customers lined up.  But the companies that need software development done aren't set up to do things that way.  Being exceptionally good at software development doesn't count for much.  Your partnership probably would have the same troubles.

Second, it lost its culture and character as a software development company.  This was due to a combination of factors. One was getting too big, but more importantly it got bought by a bigger company.

I think the partnership idea has some merit and it would be interesting to see someone try it.  It may not be quite the best arrangement for software development though.

The best places to do software development seem to be companies where software development is the primary business of the company.  Being small and privately held helps, but may not be necessary.  For example, SAS is big but privately held, and MS is both big and publicly traded.  Still, in both cases software development is the primary business of the company.

Wednesday, March 5, 2003

This is essentially the point as was making Mmackinac. While it might seem ideal to have "everyone code" and have everyone be partners, it isn't a recipe for success. It is just a recipe for something different.
The true recipe for success is quality people, a solid business plan, sufficient capital, and a hell of a lot of good timing. Even then, a hefty dose of luck can help a lot as well.

Partnerships are risky and should only be done with people you know well, like a lot, and don't care about ruining your friendship with. Because if it doesn't work, it won't "not work" in a pretty way. It will be ugly. Of course, if it works then you have landed yourself in a perfect position. It is simply risk and reward.

Wednesday, March 5, 2003

Just want to point out that SAS and Microsoft are software development companies, but not in the same sense being talked about above.  They both make products rather than do contract programming.

I think there's a maximum size you can grow to with custom coding, without adding products or business consulting to the mix.

Also, Microsoft's primary skill isn't software development, but rather marketing, aquisitions, strategy and business development.  Their competitive edge is on the business side rather than the code.

From what I've read, SAS is noteworthy because they compete with other companies by treating their people well, keeping turnover down, etc.  It's a HUGE and often underappreciated competitive advantage.

Wednesday, March 5, 2003

My company, ,  works in a similar fasion to this.  We work as independant consultants each of us quoting for our bit of the work  and dividing the income in a similar fashion.  Project management and sales are roles whoch are accounted and billed for as is any other work.

That said there are only three of us and we have only worked on small to medium size projects - it remains to be seen how scalable our system is.  The environment is good and we make an OK living.

Simon Tzu
Wednesday, March 5, 2003

On the contrary, Microsoft's primary IS software development. It's popular to explain their success as being due to marketing, but there are heaps of othre companies with good marketers, and you know, most of them don't do anywhere near as well as Microsoft.

Microsoft is a software company founded and run by software developers. From the start, it understood the complexities of software development, and the potential. That is why they are the most successful company on the planet.

Even down to little things like recognising that the best work will be produced if people can concentrate, and thus developers have offices. As a corollary, middle managers that don't get software don't get hired at Microsoft.

Must be a manager
Wednesday, March 5, 2003

I know a company that is structured a lot like what the original poster is describing.  This company has both products and services. It was founded as a collaboration of developers who were disgusted with the treatment they received from their then-current bosses. The owners are, legally, partners. The company was springboarded by one successful niche product.

My role - I contracted to this place; the company asked me to develop a follow on product in their vertical market back in the mid 90s. When I was done with a first cut of this product, they started to talk to me about being employed by them. I demurred.

Now, here's the problems they seem to have.

The partners are all technical. There is not one marketing, management, or sales guy in the lot.  There is absolutely no diversity of insight. It's just one guy being a Linux zealot while another one wants to do things in Delphi, etc. So, much of the partner's energy seems to have been wasted in in-fighting over technology direction.

The partners spend the vast majority of their time doing technical work instead of strategizing or building relationships.  Like geeks, they hide their heads in their monitors. Here is a concrete example. They developed a
web site in their industry that was preeminent for its type, as a pro bono gesture to that business community, which has racked up literally millions of hits. When that business association sought a paid, intranet version of this web site, this partnership *completely* dropped the ball. The business assoc. selected a vendor that later wound up reneging on the deal. They totally snatched defeat from the jaws of victory.

The point is - early success created an atmosphere with these guys of being too good to schmooze, talk, become known as solution providers. They think they can throw out a product and it will sell itself. That is a pattern they seem to have repeated several times. The problem is, the first one DID, but that hasn't panned out since that first lightning struck.
Oh, yeah. These guys who were once demeaned by their employers now do the demeaning, proving that success spoils most people. One partner thought it was a big joke to dick me around on payments while he went out of town. Another one referred to me once in the office overbearingly as "their contractor" to verbally override my introduction as a consultant, like I was a frikking warm body. There is a third partner that seems to do nothing but post to recreational newsgroups from his home office.

So, I've seen a techie partnership. I am not sure what the magic formula is, but a bunch of programmers who have lucked into one success story doth not a a long term corporate strategy maketh. In fact, I don't find the subjects I'm describing particularly admirable.

I think the factory model "works" because being successful in business isn't just about being technically competent, and the people who establish and maintain the important business relationships in most companies are almost completely removed from technical people in terms of background, values, and sympathies.

The sort of people that get off on demeaning technology people in little pigeonholes while they brag about commissions and their f***ing Volvos and Lexus's are the sales and marketing people who happen to make rain.

Bored Bystander
Thursday, March 6, 2003

Bored Bystander, you describe well a lot of the problems companoes founded by pure techies face.    Pure marketers face the converse problem of delivery but they will at least win the comissions and do not seem adverse to hiring technical staff.

This I think is the primary difference.  Geeks seem far more reluctant to admit there are areas outside of their skillset and ger people in to take care of them and if they do actually get sales people in they then proceed to scare them off by making them store sales proposals in CVS and use VI.

It boils down to being mature enough to either adnit you will never have skills in a particular area or to streth yourself to acquire said skills.  Sales is not all that hard put it does require picking up the telephone and speaking to people.  _Rain Making_ by Ford Harding is a good book on this topic, it is targeted at those selling professional services (like engineers, architects and lawyers) and is perfectly suited to software developers.

Simon Tzu
Friday, March 7, 2003

*  Recent Topics

*  Fog Creek Home