← Quora archive  ·  2010 Dec 13, 2010 12:26 PM PST

Question

Being a founder of a tech startup , what skills or qualities should I have?

Answer

First, non-technical people need to get clear that they ARE in fact non-technical. I was kidding myself on being a "technical" guy simply because I am an engineer (PhD in aerospace engineering) and have done a fair amount of programming in a scientific computing sense, and basic tutorial level programming on the Web (i.e. I've built "Hello World" type things in Rails, Java, javascript etc.) I was even a bit offended the firs time my dev leads made fun of me for being non-technical, but I quickly realized they were absolutely right.

Other types of technical (engineering/science/math) training has some relevance for doing Web technology, but not as much as you'd think. At best it merely familiarizes you with the vocabulary, and the degree of relevance varies drastically. Wet chemistry and biology are probably 10x away from s/w engr as disciplines which actually involve SOME programming.

The deep and abstruse parts of Web tech, as well as the dull and mundane parts, are no more comprehensible to me as primarily a mechanical/aerospace engineer than things like stability modeling or aeroelastic flutter would be to a software engineer.

Of course, other types of engineers/scientists and non-engineers can all learn s/w development (the learning curve for s/w is not easier, but it IS far cheaper than the learning curve for other tech subjects, which basically cannot be self-learned easily). But prepare to be surprised here. For example, I once hired a graduate philosophy major who had done no real programming before, to work on my project. He picked up Ruby and Javascript crazy fast and turned out to be much more naturally suited to s/w development than I myself am. It is a certain patient, troubleshooter mindset coupled with strong conceptual thinking abilities. I lack the "troubleshooter" bit.

But there is no shortcut, and Web tech is nothing like scientific computing in the sense that other tech disciplines practice it. A complex Ruby on Rails site with a javascript+jQuery heavy front-end, with a lot of HTML5 jazz (as in, http://trailmeme.com, the project I manage) is about as related to the kind of Matlab coding I used to do as, say, Boeing 747s are related to balsa wood hobby gliders.

Just because you can build the latter does NOT mean you can build the former. But it does equip you with common vocabulary elements like "wing" or "aileron."

But this discussion of the "gap" between CS/SW Engr and other engineering disciplines is the heart of the answer for all non-technical founders, including history majors and theater majors. You need to understand Web technology at at least the conceptual level that a non-CS engineer/scientist naturally understands it through the shared broader techie foundations, and you need enough of a sense of the vocabulary in the field to map to the concepts. You at least need to jump over the humanities/sciences divide.

For example, to me packet switching is something I understand through the metaphor of container shipping and flows on graphs (both of which I understand technically primarily through operations research math, not programming logic).

I understand the "Model View Controller" pattern in s/w development through the state/observer/controller paradigm in control system design in my field.

I understand UX concepts through the lens of difference equations and event-driven systems models.

You get the idea.

Even if you can't answer questions like "how do I get jQuery to allow me to make that box draggable?" you should have a private CONCEPTUAL framework in your head that allows you to understand technology. I provided the kind of framework a mech/aero/control person might use, and that's generally the level of precision you need in the mapping to talk to s/w engineers in a useful way.

If you are a theater or history major, possibly you'll find other frames of reference (storytelling for UX, organization theory for data architecture etc.), but there is one area where no shortcuts are possible: math and logic.

You need at least a basic understanding of math and logic, especially geometry, counting, matching, variables, constants...

If you have no mathematical/logical training at all, you could be in trouble.

As for hands-on programming. Is it useful? I don't know. But I suspect doing at least "hello world" level stuff using the technology your tech people are using, will at least help you conquer fear of technology. It isn't that hard. A weekend is enough to get to "hello world" in any technology, and it will give you a handle on "known unknowns" ... stuff you KNOW you don't know.

And of course, it goes without saying that you need to read all the non-technical material you can lay your hands on, ranging from TechCrunch to pop-science books like Nick Carr's "Big Switch" and s/w philosophy books like Brooks' "The Mythical Man Month" and blogs by programmers who can actually speak to mere humans, like Joel Spolsky (forget about the by-programmers-for-programmers blogs that are all about low-level hacks that you needn't worry about; leave that to the pros).