The Obsession With Coding
Coding is learning a lot of things that you don’t care about as a non-developer — like software design patterns or operating a database with and without an ORM. Nobody who's not an engineer should be required to do it if they don't want to.
Recently I read a post in Fast Company about what they call “The Full-stack Marketer”, arguing that after we made all designers learn to code, we need to turn our entire marketing team into growth hackers, inbound marketers and coders that just happen to do marketing. While I do a fair bit of coding myself as a designer, I’m starting to think this whole obsession with coding in the startup world is getting quite ridiculous. I agree that knowing how things generally work is quite crucial if you’re a product person — no matter if you’re a product manager, marketer, designer or QA engineer — teaching everyone to code is not the ultimate way of building an amazing product. The key part is to have a team and culture that fits the needs of your product.
Yes, it’s useful if marketing team knows HTML just enough to put the analytics into the site on their own or they’re able to inject and run A/B testing tools on their own. This is not what “real” coding means, though. This is just scratching the surface enough to be able to do your job. Coding is dirty, hard and complex. Coding is a lot trial and failure. Coding is learning a lot of things that you don’t care about as a non-developer — like software design patterns or operating a database with and without an ORM.
I couldn’t care less about my potential marketing team knowing the difference between a singleton and a factory or advantages of using CouchDB over MongoDB — what I care about is the results they provide and willingness to get their hands dirty. What I’m looking for is a hacker mindset — and you can’t force that on people by making them go through a Rails Bootcamp. It means working around your particular domain’s problems, not being afraid to color outside the lines a bit, being able to use available tools effectively and quickly test solutions through trial and failure. It’s about making sure that we’re building the best thing we could possibly be building.
I understand that for early stage startups (I’m a part of one these days, by the way) it’s a great thing if three people can do the job of six or twelve because of the budget restrictions, but let’s not force people into complex solutions to complex problems they don’t need to care about in the long run. I doubt your startup’s designers need to know more of “the code” than just enough to be able to prototype and understand what are the limitations and possibilities of medium they’re using, just like people who design chairs need to know possibilities and limitations of materials in production. I also believe that your startup’s marketers need to know what you’re building, what is the market they’re working with, who are the people that use your product and how can they “hack” their way to more people using your product. If they can build out something simple quickly — even without the code, using ready-made tools — to test their assumptions or know just enough HTML to not pester your development team to put a line of JavaScript from Google Analytics into the site — that’s enough.
Just because you know how to code doesn’t mean that suddenly everyone has to and it’s a solution for every problem of your startup — it most certainly isn’t. Create a no-silos culture, attract people with a hacker mindset and hack and build awesome things together. It works for Blizzard, it works for Github, it works for Valve and it will most likely work very well for your startup. And it will most likely be more productive than spending six months trying to find a mythical one-man-army design / development / marketing ninja to cut your development costs.