Can Non-Engineers Run Software Companies?

That’s a question I haven’t seen discussed in blogland, even though it’s one many early stage companies grapple with.

I received an anonymous comment on my post Visit to Microsoft in Dublin:

are you one of those non-technical people who think they can manage a software company?

the idea of a non-programmer bossing around programmers is retarded and very common. you’re already spewing bullshit at the tender age of 18!

talk to me about adding closures to C# (do you know what a closure is?) or dynamic vs. strongly typed languages (do you know what that means?) for implementing web applications or something. don’t say "web 2.0 will be all about collaboration in the enterprise" or other meaningless garbage.

Putting aside his assertion that age 18 is tender — ah, what a lovely thought — he does bring up a legitimate point about non-programmers.

One ideal set-up in a start-up software company is to have a few technical guys and one straight shooting business guy. Some guys like Paul Graham like to say every start-up should be employed by "hackers" or "geeks" but I don’t share this view because I don’t think great functional software products is what makes a software company successful. Moreover, hackers tend to share a certain worldview (such as perfectionism, a deadly path for any start-up) which can shut out other perspectives.

The reason why I think there’s a legitimate role for the non-technical person at a software company is that evaluating the quality of the raw code (sort of what Anonymous Commenter is asking me to do) is not, I think, what dooms most software development projects. Communication and management seem royally important, since so much rides on managing and meeting expectations.

The non-engineer must have meaningful expertise and experience in his/her "shallow" area of technology, but doesn’t have to be able to write code. What does this mean?  He could have a reasonably detailed discussion about the application’s architecture and programming methodology. He neither would accept such programmer bullshit as "It will be done when it’s done" nor pull off such business-suit bullshit such as "Hey, add a feature that does X" without detailed specs. He could have conversations about collaboration among programmers, about source control, about deadlines and specs, about cost estimates. And when necessary, he could roll up my sleeves and get dirty (like I tried to do a few months ago when I built a PHP/mySQL simple web app that processed movies).

Likewise, for a technical person to have meaningful expertise in his shallow area, it would mean understanding that it’s not about the software, it’s about the customer problem. It’s not about perfection, it’s about "good enough." It would mean realizing that businesses make promises based on deadlines. Most important, it would mean the technical person could communicate effectively to his co-founders and to other programmers. Since so much of software development seems to be about managing and meeting expectations, the most motivated and effective programmers are often those who communicate the best.

So to answer the question. From my vantage point, non-engineers can indeed run software companies, assuming three things:

1. They have co-founders or colleagues who can assess the raw quality of the code.

2. They have meaningful expertise and experience in their "shallow" area — software development, managing engineers, specing projects, such that they can effectively bring to bear strong communication and management skills in this kind of environment.

3. The company is not selling its wares to programmers or any other highly technical market, in which case an all-coder lineup could work since coders are the customers.

What do you think?

17 comments on “Can Non-Engineers Run Software Companies?
  • I believe that a non-technical person can start and run a software company. The presumption is the code expertise is on board. (in fact it’s an assumption in the case of a possible investment)

    I’ve found that the most successful non-technical ceo’s in technical companies have two things commonly: compassion and humility.

    Often the most brilliant software engineers struggle because they can’t do it on their own or they are coupled with a ceo who doesn’t understand them.

    It’s certainly challenging to be subjectively effective (compassionate and humble) in an endeavor of a most objectively oriented (software code) world where execution is at a premium.

  • Rather than asking you to defend yourself, we should be asking the anonymous poster what makes him think a technical person can manage a software company (without someone to provide business knowledge).

    These kinds of arguments are pretty silly at the end of the day. Very few successful companies exist without both sets of skills.

    For every Bill Gates who learned business, there’s a Steve Jobs who learned technology.

  • Hey Ben!

    I’ve posted comments in the past, but just recently came back to visit your site. I often wonder why I lack time to do things that I would really enjoy or that would stimulate my mind more. It makes me curious how you make time for everything that you do? It’s quite inspiring, yet it also makes me question if you really have time for yourself. ( Realizing you can easily argue that the “yourself” time is made up of reading, writing on your blog, and enhancing your knowledge base.) I must say it almost makes me jealous that you’re able to have such a balance in your life. Yet with offering your time to one thing, you must sacrifice it from another… so I suppose we all make our own choices. What I’m getting at, you may wonder, as I wonder myself. I must ask though, what are your plans, you graduated this year, right?

    Are you going off to college? Any institution that promotes knowledge and the bettering of human beings is of course a good thing, yet I don’t like what college has turned into today. People merely go to college to get the degree, to get the job…and what it boils down to.. to make money. What happened to people wanting to learn, to further their capacity of knowledge? Like thousands of freshman, I begin college this fall, however, the difference is I want to go to learn more. One of my main passions is analyzing life, people, and just the main question of “why we are here?” I realize I’m a hypocrite in the sense that like most people I hold that hope that after my college education I will get a well paying job, and possibly make a lot of money. Yet as I do this, I would like to make a difference. Hmm.

    Take care.

    – Sarah

  • Ben …

    Software is just a tool to solve a business problem like a 50 storey building …

    It takes builder (in the software sense programmers) , Project managers,business managers and architects … they all play a role in Software without them we would have tools like unix for the general users …

    what developers forget is that they don’t use the technology there mom’s and dad’s do 🙂 ….programmers aren’t usually visionaries or good with things like people so without the non techie who would be able to deal with those issues … obviously this is a bit of a generalisation but after working with programmers for over 15years they like other people have limitations … some don’t but they are the exception …

    Regards
    Gareth Slaven

  • JoelOnSoftware has something related: http://www.joelonsoftware.com/items/2006/06/16.html

    I’m not sure I agree with Joel 100% (you certainly can have an MBA running a software company), but his point carries merit. If you think you can dictate and manage software as a non-technical person, you’re wrong. However, as with anything else, a balance can be achieved, where you leave the software management to the people who understand software, who in turn leave the business to the people who understand business. Interaction between the two camps requires that both understand the other’s abilities and respect said abilities. Ben’s third point is immaterial so long as you let the software guys decide what other software guys want.

    If someone in charge doesn’t understand his limitations, everybody’s going to be in trouble.

  • The same narrow logic says that hospitals should be run by doctors and airlines should be run by pilots.

    You’re analysis is right on the mark. The reality is that good CEOs have a mix of general business skills as well as a deep understanding of the business they’re in. That’s not the same as being able to write the code, operate the patient or fly the plane, but it does mean knowing enough to know when these things are being done right, know who are the people who really know how to do it, and konw what the impact of various business decisions might be on the real business of the organisation.

    Now it took me 20 years of adulthood to understand these things. How did you get so wise so early?

  • I don’t think that software ( or engineering ) companies can or should be run by non-technical persons. I have two reasons for this:

    First, in response to Chris Yeh who said “For every Bill Gates who learned business, there’s a Steve Jobs who learned technology.” I don’t think this is true. I’ve read approximately fifty ( admittedly a small sample ) biographies of successful businessmen and none of their stories echo your sentiment. I think there’s a more pragmatic way to look at this. Consider the following thought experiment:

    If all the lawyers and MBAs at Microsoft were killed ( God forbid ) would Microsoft still be able to build its products ? Now consider the alternative scenario. If all the engineers and programmers at Microsoft were killed, would Microsoft still be able to build its products ?

    I won’t venture an answer but I will say this: The way to determine who should run a company is by considering the most important skill required for a company to deliver its product/service. In a startup, I believe that it’s mandatory that someone with strong technical skills run the company.

    I didn’t understand this concept until I went through numerous failures in my attempt to get my own businesses off the ground. I had what Ben calls “meaningful expertise and experience in his/her “shallow” area of technology”. My theory was that I’d be able to augment this by leveraging the talents of more gifted engineers. I was mistaken. The reality ( and my experience might not be representative of a broader trend ) is that startups tend to be high stress/tension environments. The rate of founder attrition, especially in high risk economies ( like the “3rd” world ) is so high that you don’t want to end up in a situation whereby you are unable to be a one man army, developing your own products. Instead you want to have the most important skills required to deliver services and/or products. ( consider the story of the Dessler brothers who created Adidas and Puma. )

    Secondly, you have to consider the innovation/creativity process. Creativity tends to come from individuals who are embedded in a given knowledge space or domain of expertise. ( this is the basis of the initial steps in creativity namely first insight and saturation ). Developing a product is inherently a technical problem. A non-technical person running a software company is at least one step removed from the problem domain and therefore removed from the creative process that yields real innovation. Once again, in this case, the non-technical person is “killable”.

    In reality I think non-technical individuals in a technical pursuit are nothing but glorified janitors ( it took me 3 years of Business School to realize this ). What I mean is that their job is to keep the [business] environment clean enough to allow the engineers/designers/programmers to do the real work. As a company grows larger their role becomes more important because “keeping the environment” clean becomes a difficult task in itself which directly affects the companies ability to generate revenue. I believe that this is where the illusion of non-technical leaders in a high-tech environment comes from.

  • i was the one who made the comment.

    “Rather than asking you to defend yourself, we should be asking the anonymous poster what makes him think a technical person can manage a software company (without someone to provide business knowledge).”

    this carries the assumption that a programmer cannot possibly survive without assistance from a business person who doesn’t actually understand the things and people they’re in charge of. obviously a C++ guru who hates, say, making presentations and generally hates anything but sitting at a computer has no chance of being a successful entrepreneur.

    the discussion got sidetracked, anyway, since i was talking about midddle management rather than executive positions. i had in mind pointy haired bosses.

    but, i will play along nevertheless. consider this: could a suit have conceived of XMLHttpRequest (and, therefore, Gmail, Google Maps, and other successful Ajax-heavy web apps)? no. their thinking is forever murky: all they have is vague descriptions of the world they operate in. because they don’t know what it means for a protocol to be stateless and why that might be significant, they don’t grasp what makes web programming FUNDAMENTALLY, INTRINSICALLY HARD (“just use cookies!”) or why it’s possible to make web services arbitrarily scalable.

    “The reason why I think there’s a legitimate role for the non-technical person at a software company is that evaluating the quality of the raw code (sort of what Anonymous Commenter is asking me to do) is not, I think, what dooms most software development projects. Communication and management seem royally important, since so much rides on managing and meeting expectations.”

    i agree but qualify that by saying that the stereotypical non-programmer manager solution to a software project that’s going awry is to add more people. they don’t understand why that just makes things worse. too often, the guy who’s supposed to have the soft skills just makes things way, way worse. computer science departments generally suck at teaching software engineering, by the way.

    php and mysql do not a programmer make, unfortunately. i agree with joel spolsky that other things — C pointers and functional/recursive thinking in particular — are much better litmus tests. low level languages like C and expressive, elegant functional languages are at opposite, extreme ends of the spectrum of abstraction and design philosophy and, in my opinion, they make you a better programmer for all your days even if you never use either for years at a time. why that might be the case will perhaps always be a mystery to you.

    “The same narrow logic says that hospitals should be run by doctors and airlines should be run by pilots.”

    http://www.mayoclinic.org/about/cortese-message.html – what’s this? the CEO of one of the best hospitals in the world is an M.D.? same thing for children’s hospital in boston (run by harvard medical school), and most likely for many others. maybe hospitals SHOULD have a doctor at the very top, eh? if it works for mayo…

    airlines are in a way far more low tech than a software company – you don’t personally see and have to put up with the neuroses of the employees of a software company usually. customer satisfaction for an airline is primarily shaped by non-technical, customer service issues like unreasonable delays when arriving at the airport.

    airlines and hospitals don’t significantly change every 3-5 years and they don’t change radically every 10-15 years. they improve and change the means by which they deliver services but their basic business model remains fixed by and large. whereas the idea of an “internet company” was mostly unheard of 10 years ago. it’s apples and oranges to begin with.

    if you want, read about ITA Software and how it took people with PhDs in computer science to properly tackle the problem of finding optimal plane fares.

    do you think an investment bank should be run by someone who has never worked as an investment banker or a trader, and who, in fact, has trouble with basic financial terminology (“hey guys, what’s a convertible bond, again”)? i hope not. algorithmic trading from a handful of secretive hedge funds drives 10-25% or more of daily volume on the NYSE, by the way.

    you have to understand that a non-techie could have never started google (“pagerank? what’s that? what the hell is an eigenvalue?!?!”), apple couldn’t have started without woz, and microsoft wouldn’t exist but for bill gates.

    for the record, i think an executive team with plenty of coding experience along with a business guy is nearly ideal. cheers.

  • rereading the original post and my reply, it seems i’ve responded to something slightly different than what was being discussed.

    innovation (which i mentioned a lot and erroneously focused on) doesn’t make or break companies (joel sells bug tracking software) but it is, i think, the best way to disrupt an existing market. doing innovative, exciting things is a great way to attract great people who DO make or break your company. (uh oh, now i’m commenting on things _i_ don’t really understand.) i simply want to get the point across that if you don’t come at software from the right perspective, you’re handicapped. the pointy-haired bosses’ problem is that they don’t know they’re blindly fumbling in the dark: they just know the next project has to use java and feature “service-oriented architecture”.

    it’s late and i’ve probably made all kinds of typographical and logical errors. my apologies.

  • A nonprogrammer might have a shot of running a software firm, if he refrains from making technical decisions; eg. “Let’s use Java because it’s industry-standard.”

  • I don’t think the CEO needs to be a codemonkey, but they do need to have an understanding of how everything works. Eric Schmidt, CEO of Google, has no hope of keeping up with the details of how the mass of Google products work – but as long as he knows how each product fits into the big picture he should be alright. Google hasn’t gone broke yet has it?

  • A similar question could be, “Can non-business majors run software companies?” For example, many people believe that only M.B.A.s can run companies at all.

  • I am very happy to read your articles it’s very useful for me,
    and I am completely satisfied with your website.
    All comments and articles are very useful and very good.
    Your blog is very attention-grabbing. I am loving all of the in
    turn you are sharing with each one!…
    software company

  • I am very happy to read your articles it’s very useful for me,
    and I am completely satisfied with your website.
    All comments and articles are very useful and very good.
    Your blog is very attention-grabbing. I am loving all of the in
    turn you are sharing with each one!…
    website designing

  • I am very happy to read your articles it’s very useful for me,
    and I am completely satisfied with your website.
    All comments and articles are very useful and very good.
    Your blog is very attention-grabbing. I am loving all of the in
    turn you are sharing with each one!…
    Software Company

Leave a Reply to software company Cancel reply

Your email address will not be published. Required fields are marked *