Monday, May 14, 2012



My education is kind of unusual in that I'm not really a "business guy" or a programmer. By studying both as an undergrad (EE/CS + Business), I've somehow magically landed into a slightly awkward zone. When I apply to work for a company, there's always the choice bubble: Software Development Intern, Business Intern, etc. I always delay having to make that choice. I had an interview last fall for a bigger company, and I somehow avoided that question until after my interview. The guy asked me "So... what position are you applying for?" "Uh... Where do you think I would fit best?" I wasn't getting that job. And the thing is, I didn't want it, because there was nowhere in that company that I would both fit and be fulfilled.

The conventional wisdom is that specialization yields results, greater efficiency, and less chaos in corporate structure. Even startups tend to have this bifurcation: BD or Dev? Yeah, it makes sense in some ways; "if you can't code, then you shouldn't try." I don't know how much I like that logic, though, because it's often extended (wrongly) to say: "if you can code, you can't do anything else." It reminds me a lot of high school, where the perception was that the good writers weren't great at math and science, and the science nerds couldn't write at all. But here's the deal: That wasn't true at all. It was something mediocre kids said to make themselves feel better, like "they're just really specialized at one thing; I'm a jack of all trades." What actually happened was this: the science geeks were most often almost as good at humanities as those considered the best writers, and vice versa. Kids that did really well in either thing were good problem-solvers, and that applied to anything.

The geeks did science because they loved it, but to go back and say to these kids "You can only do science from now on," and to tell the humanities kids "You had better stick with writing, rather than try to catch up with the science kids," is crazy. It would close off boundaries and hurt productivity more than it would help it. This problem is parallel to the business/programmer divide, and it happens every day. Software Developers should be given the opportunity to take on more business oriented roles, if only to "see the other side," and to understand why some restrictions are placed on their coding from a business standpoint. And not all business guys are stuck on high horses, not wanting to get their hands dirty coding. I know several Wharton students who started programming and now they are among the best programmers I know, even better than most of the engineering students I know. To close people off into these boxes from what they are hired as closes off that potential; it's hard for people to develop a skill on their own when working a full time job that doesn't require it.

My suggestion: hire people knowing what they have done previously, and what they know, but also hire them based on how they think and reason out problems. Good problem-solvers can be business or software guys. A business/programmer divide forces people to ask themselves "Is this a programming problem or a business problem?" Only if they answer is their specialty will they actually get the job done. On the other hand, more flexible roles would permit people to just do the task while they are capable of either doing it, or figuring out how it should get done. Trust me, this do-while statement is much more productive than the former if-then statement.