Watching non-programmers trying to run
software companies is like watching
someone who doesn't know how to surf
trying to surf.

Overall the article is a great read (definitely take the time to read through it). Out of curiosity, I would like to hear the experiences of folks here who have seen programmers adopt the mantle and do a great (or rubbish) job, and the same for non-programmers who find themselves herding programmers (worse than herding cats I've heard).

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.
If this question can be reworded to fit the rules in the help center, please edit the question.

I'd just like to thank everyone for participating in this rather interesting question. Overall @Neil nailed it for me (and many others by the look of it).
–
Gary RoweNov 13 '10 at 17:14

3

A common situation for virtually any kind of company is that its marketing department takes over, the company thrives for a couple years, and then crashes because it's lost its best engineers/journalists/artists/etc, and they've spent so much money on marketing that they have nothing of substance to sell. Microsoft's a textbook example of this phenomenon, though I've seen it locally with everything ranging from publishers to beauticians to private schools.
–
Rei MiyasakaJun 16 '11 at 8:03

3

@ReiMiyasaka I understand what you're saying, but Microsoft made over $5 billion profit in the first three months of this year. If that's a crash, I want some!
–
MarkJMay 8 '12 at 11:49

4

Sometimes you can find a Joel-quote to justify any opinion. Did you read the article where he explains how bad programmers are at running software companies? Because they don't understand the importance of marketing, customer service and all that other stuff.
–
MarkJMay 8 '12 at 11:54

1

That Joel Spolsky quote is exactly why I don't read Joel Spolsky's blog if I can help it. He consistently comes out with completely unjustified and often unfounded and incorrect sweeping generalisations. I'm convinced he does it deliberately, for kicks.
–
LordScreeOct 2 '12 at 16:20

13 Answers
13

You can run a software company without being a programmer if and only if you have the intelligence to know that the best decision is sometimes not yours to make but rather the programmer's/technical advisor's job. You'd be surprised how many already fail that test. Of course, you also must have a decent technician or else rather than follow your bad decisions regarding the technical sector, you're simply following the bad decisions your hirelings made. Just my 10 cents though. ;)

Totally agree... I am friends with a Software Company owner who is also a self-made millionaire becuase of his company. He is the first one to tell you he can't and never will write software - but he understand and listen to his customers and hires the best people he can. He has even give people 50% of their salary as bonuses for finishing projects. You always pay for what you get and get what you pay for!
–
MDV2000Nov 11 '10 at 18:07

6

+1 to MDV2000 for mentioning that you should pay your talent well. As Felix Dennis (of PC Pro et al) says: "You must identify talent. Then you must move heaven and earth to hire it. You must nurture it, reward it properly, and protect it from being poached. If necessary, dream up a new project. Better still, get the talent to dream it up." Full article here: sivers.org/book/HowToGetRich
–
Gary RoweNov 11 '10 at 19:45

3

This general sentiment applies to all industry types. You can run a company that does X even if you, as the owner, don't know X. The very best business owners are not the ones who are smart enough to learn everything about X, but rather the ones who are smart enough to hire others who do know everything about X, and then listen to them.
–
CraigTPJan 3 '11 at 11:16

@CraigTP - I don't think that'd be a very good business model for say a brothel, but yes for the most part this sentiment applies to most industries.
–
NeilJan 12 '11 at 11:29

1

Good answer, and true of other fields too. "Can you run a restaurant without being a chef?" "Can your run a construction company without knowing how to install drywall?" "Can you run a hospital if you aren't a doctor?"
–
anonMay 9 '12 at 0:58

One of the best higher-ups I ever had was a guy who had no experience whatsoever with software. What distinguished him was that he knew what he didn't know, he knew where he could get information, advice, and good judgment, and he trusted his people.

That meant he wasn't going to sign us up for deadlines we couldn't meet, because we'd tell him what a realistic schedule was. He wasn't going to mess with how we worked, because he didn't know how software people worked best. He sat there and set priorities (in consultation with people who'd have to get the work done), ran interference for us against office politics, and generally supported us.

+1 this. Best bosses I've had listen well and understand what they don't know, they shouldn't decide.
–
wheatiesNov 11 '10 at 18:17

3

Ultimately it boils down to arrogance vs. humility. Some clueless managers think they know everything when they know nothing. The good ones are humble enough to admit that they know nothing. They defer the technical decisions to technical people.
–
B SevenMay 8 '12 at 14:22

I work at a software company. The CEO is not a programmer. Our flagship product is the industry leader. I'd call that pretty successful.

The missing piece is, there's a lot more to the company than just building the software. Marketing, product management, installation work (it's an enterprise-class product), tech support, QA, etc. The CEO is a businessman who knows the business side really well, and does a good job managing his domain. He got a programmer who really knows what he's doing to be the VP of engineering, (my boss,) and he directs software development at a very high level only, basically telling my boss what the general direction of the product should be and leaving it up to us to implement it.

Now, if my boss didn't have any experience as a programmer and he was the one running the coding, that would be a big mess.

@gary Generally speaking, yes. Or, at least, a "hacker," in the original sense of the word. One of my best managers wasn't a programmer per se, but he knew his way around a Linux box and had a great deal of technical interest. (I should point out that we were working in a Windows environment, so his Linux skills didn't directly apply. Not that he didn't know plenty about Windows.) The most important thing is that he knew his role: to buy us enough time to actually get the job done. Oh, and to keep the non-techies from bothering us constantly.
–
George MarianNov 11 '10 at 18:06

1

+1 And since the question starts with a Joel quote, here's the Joel quote where he makes this argument
–
MarkJMay 8 '12 at 11:55

There are many, many programmers who would never be able to run a software company.

I think that Joel may have purposely overstated the idea to make the case that unless someone understands software development they will have a hard time running the company.

I used to work for Symantec - it was traditionally a software company with a tech-savvy CEO. The investors were never fond of it. Then, around 2000, enter John W. Thompson - an IBM sales guy. He did wonders for the stock price, but pretty much decimated the development side. Since then not much development has taken place - mostly M&A with other development companies.

John Thompson may be a great business leader, but he does not know much about software or developers or how to lead them. Symantec is probably a lot larger than what the OP had in mind, but I think it reflects Joel's idea.

I would not go so far as to say one has to be or had to have been a developer, but it is important to understand the activities and process of a software company. The best I know of way to assure that is to have a development background. That is probably the point Joel was trying to make with his statement, but I could be wrong.

Running a company involves so many OTHER things aside from software development activities. Being a developer or ex-developer does not prepare someone for running a software company - but it is one small part of a set of experiences that helps one be successful.

In the end, for me, it boils down to:

Do you see the developer/development group(s) as just another overhead/cost, or are they viewed as essential to the business?

Selling security software requires a particular mindset in order to allure and retain customers. In particular, it must project an image of The Command and Control Management Method to the customers, because it is what customers are looking for (to control threats and damages), even if the internal development process is different. Mid-level managers are supposed to provide this necessary buffer. Examples of quotes from the said CEO.
–
rwongNov 12 '10 at 13:30

I was very familiar with John T and his public comments at one time. Since leaving the company I have not kept up. There is nothing new there. He's a great front man - he speaks pretty well, is good looking and personable. The board did a good job finding someone to boost the shareholders' value. It was rather funny - I worked on the pcAnywhere product and at the time it accounted for 1/4 of the revenue and at least that in profits but they didn't like that as it was not the "Direction" of the company. But they couldn't get rid of it - it made so much of the money...
–
TimNov 12 '10 at 14:55

Possible? Sure. However, just like any other business, some understanding of the technical aspects of the business are necessary to truly run it well (from the programmer's perspective). That said, it requires a special kind of programmer to run a business. That is: the shy, quite types need not apply.

I can think of one non-programmer I know who I believe could successfully run a software company. He's a damned good project manager in the field. His background is in psychology and he's not very technical. However, he posses that very important skill: the ability to learn. Also, as Neil mentions, he knows how to delegate.

So, yes. It's certainly possible for a non-programmer to run a software business, but requires a certain type of person.

Apple is not a software company. Never was a software company.
–
TimNov 11 '10 at 17:39

1

@Tim: Um. Really? Current Macs are 99+% commodity Intel hardware with a specialized version of BSD Unix running on top of a Mach microkernel with a sophisticated userspace stack. And the iPod and AppleTV hardware is all very similar to other ARM-based embedded systems I've worked on - they just run, let's see, a specialized version of BSD Unix running on top of a Mach microkernel with a sophisticated userspace stack. Sure, Apple does fantastic marketing and great industrial design and so on, but the product people pay money for is the experience provided by the software.
–
Bob MurphyNov 11 '10 at 21:17

1

@Bob - yep, really. Ipod, iphone, etc. If they were a software company they would allow licensing of the hardware. That "commodity" hardware is sold at ridiculous profit margins. IMO they are a hardware/toy company - not a software company. Read their partner contracts - they act and treat people as though they are a hardware company - NOT a software company. Sure, they have developers, but that is NOT the business they are in.
–
TimNov 11 '10 at 21:20

1

@Bob - To continue - Steve Ballmer and his famous "developers, developers" chant is NOT something I see from the folks in Cupertino.
–
TimNov 11 '10 at 21:24

@Tim, Mac's differentiate on OS X. Otherwise they were just very expensive Windows boxes...
–
user1249Nov 11 '10 at 22:26

I think if you understand a particular business domain, and the process of software development, you can absolutely run a software company.

I work for a great consulting company that is well run by non-technical people at the top. They may not understand how to solve FizzBuzz, but they know about delivering business value, which is far more important.

When a company.group gets too large, then different skillsets are needed to manage the group. Far too often, people get promoted past the point where they are competent; this is called the Peter Principle. Ballmer may have been a good developer, but he's a bad CEO.

The unfortunate truth is that the "holy" software books are only read by programmers but never by managers who need this treatment most. In that regard writing this book was a wasted effort and a miracle at the same time.
–
user8685Jun 15 '11 at 23:05

Re #3... dumping more people onto a project doesn't usually speed it up no matter WHAT domain you're in.
–
mjfgatesMay 8 '12 at 20:02

Maybe Joel was talking about very small software vendors like FogCreek?

In bigger companies, the CEO rely on its VPs and I guess the CTO has the appropriate background. A CEO with technical background can be an asset. But a great CEO should have better social skills than technical ones if I had to choose.

I'm just over a year into my first job out of college. It's with a small (less than 10 employees) web development company. The owner/boss is not a programmer and is not technical, and neither are any of the program managers. They've been in stable business for 14 years now. There are only two developers, and I'm the first one in at least a decade that has studied Computer Science at school. There has been no teamwork (all solo projects), no SCM, no code reviews, no formal bug tracker, no unit tests, no automated testing, no continuous integration, or anything like that at any point (I'm working on getting SVN up and running and in use). Our tester is incredibly methodical but is not schooled in QA. There's almost nothing done by the book.

+1 for keeping it simple - but with only 2 developers working solo there's not a lot of cross-talk going on. Try keeping that environment working with 5 developers sharing code.
–
Gary RoweJun 16 '11 at 8:14

Oh, I know this model won't scale. Like I said, I'm working on getting SVN in use more effectively. :-)
–
Mr. JeffersonJun 16 '11 at 15:37

Yeah its definitely possible but you have to have someone high up, ideally a stakeholder in the business (partner for a small company CTO for a large one, etc) who has a say in company matters and can influence the owner / CEO. Even with the inernet many software companies still rely on a large sales force to manually push their products to companies (cold calls, etc) so its possible, if they are good at sales. However, this doesn't mean it would be a good company to work for, it just depends.