A Full-Stack Web Team Will Provide Much-Needed Breadth And Depth To Your Startup(techcrunch.com)
techcrunch.com
A Full-Stack Web Team Will Provide Much-Needed Breadth And Depth To Your Startup
http://techcrunch.com/2012/12/01/how-to-hire-a-full-stack-web-team/
4 comments
There's a phrase in the design world - the unicorn designer.
These are designers needed for the job adverts that require somebody who is a great visual designer and a great user researcher and a great user tester and knows HTML5/CSS and knows JavaScript and knows PHP5 and ...
So called because you're about as likely to find one as you are a unicorn ;-)
There's a need for specialists and generalists on teams. Startups often need more generalists at the start - both because of cost issues and because of the communications overhead that specialists can cause. But trying to hire mythical employees who are excellent at everything is often a... suboptimal approach.
These are designers needed for the job adverts that require somebody who is a great visual designer and a great user researcher and a great user tester and knows HTML5/CSS and knows JavaScript and knows PHP5 and ...
So called because you're about as likely to find one as you are a unicorn ;-)
There's a need for specialists and generalists on teams. Startups often need more generalists at the start - both because of cost issues and because of the communications overhead that specialists can cause. But trying to hire mythical employees who are excellent at everything is often a... suboptimal approach.
I don't think the unicorn designer myth is true. We exist, there's just lack of people willing to pay for it. I design and develop and still find it difficult to find work. As you mentioned, it's a cost issue.
As an aside, I hate the idea of a visual designer that doesn't know markup, and someone else being responsible for building it - this does not make sense.
As an aside, I hate the idea of a visual designer that doesn't know markup, and someone else being responsible for building it - this does not make sense.
It's not just a cost issue - depending on the size of the unicorn.
For example I know nobody who is really good at all of:
* user testing
* interaction design
* visual design
* HTML/CSS
* JavaScript
* user research
* branding
* information architecture
* cognitive psychology
* ethnography
* marketing
I know folk who are really good at a subset. I know folk who have some knowledge of everything. I keep seeing folk trying to hire for a stack of skills that rarely come up in a single person.
The person who does user testing five days a week fifty weeks a year is going to be way better at it than those folk who do one every other month. You can't expect that level of skill from an individual if you expect them to be really good at visual design, interaction design and generative user research too.
As an aside, I hate the idea of a visual designer that doesn't know markup, and someone else being responsible for building it - this does not make sense.
It's a hellishly useful combination to have certainly - and it's my preferred way of operating.
But other ways can and do work. I've paired with fantastic visual designers without HTML/CSS knowledge and produced great results in the past. They've had other skills outside of HTML/CSS that they could help the business with.
You need all of the skills for building a product on a team. They don't necessarily all need to be in the same person. Folk hired into design roles are sometimes expected to have an unreasonable number of skills in my experience.
For example I know nobody who is really good at all of:
* user testing
* interaction design
* visual design
* HTML/CSS
* JavaScript
* user research
* branding
* information architecture
* cognitive psychology
* ethnography
* marketing
I know folk who are really good at a subset. I know folk who have some knowledge of everything. I keep seeing folk trying to hire for a stack of skills that rarely come up in a single person.
The person who does user testing five days a week fifty weeks a year is going to be way better at it than those folk who do one every other month. You can't expect that level of skill from an individual if you expect them to be really good at visual design, interaction design and generative user research too.
As an aside, I hate the idea of a visual designer that doesn't know markup, and someone else being responsible for building it - this does not make sense.
It's a hellishly useful combination to have certainly - and it's my preferred way of operating.
But other ways can and do work. I've paired with fantastic visual designers without HTML/CSS knowledge and produced great results in the past. They've had other skills outside of HTML/CSS that they could help the business with.
You need all of the skills for building a product on a team. They don't necessarily all need to be in the same person. Folk hired into design roles are sometimes expected to have an unreasonable number of skills in my experience.
The best designers I've known are also great at HTML/CSS - because great designers should know their medium.
You'll notice in the article I mentioned looking for designers who know HTML/CSS -- but not server-side languages, databases, etc.
You'll notice in the article I mentioned looking for designers who know HTML/CSS -- but not server-side languages, databases, etc.
No argument that it helps - and I vastly prefer working with folk in that mode.
But I've also worked successfully with great visual designers who figure out the medium's constraints without knowing CSS/HTML - and bring other aspects to the team (e.g. great user research skills).
I'd be a fool to reject them just because they lack HTML/CSS. I just pair them with somebody who does. They both learn.
But I've also worked successfully with great visual designers who figure out the medium's constraints without knowing CSS/HTML - and bring other aspects to the team (e.g. great user research skills).
I'd be a fool to reject them just because they lack HTML/CSS. I just pair them with somebody who does. They both learn.
I saw it as a nice counterpoint to frontend people who won't look at server code because they're designers or something.., or backend people who won't care about Javascript because its dynamic...
in that sense I identify with full-stack.
in that sense I identify with full-stack.
And this is the problem with the term. It means something different to everyone. Wordpress ninjas think they're full-stack developers. You've got your definition. I've got mine. Everyone else has their own. It's a meaningless term.
I don't think it is meaningless.
There is a stack.
That stack is in memory.
If you know what every piece of data is doing there and how to access it etc, you know that stack in the context of being able to develop on that stack.
You are a 'full stack developer'.
Or else, have people forgotten what a software stack is? Example: LAMP Linux calls Apache that calls MySQL and PHP/Perl for instance (and for all combinations). "Full stack" here means, you hack kernel code.
Full stack developer is different to full stack user.
There is a stack.
That stack is in memory.
If you know what every piece of data is doing there and how to access it etc, you know that stack in the context of being able to develop on that stack.
You are a 'full stack developer'.
Or else, have people forgotten what a software stack is? Example: LAMP Linux calls Apache that calls MySQL and PHP/Perl for instance (and for all combinations). "Full stack" here means, you hack kernel code.
Full stack developer is different to full stack user.
It's still somewhat meaningless because there's still not a commonly accepted meaning. I would consider myself a fullstack web person, but I don't do linux kernel hacking. COULD I? Possibly, if my life depended on it, but since I have no kernel patches to my name, you might not consider me a fullstack developer, although I do (and others in my network would).
By comparison to other people who only know photoshop, or only know SQL, or only know sysadmin work, I can operate functionally in many areas.
syadmin - compile and set up servers from scratch
database - can deal with most aspects of database setup, configuration, troubleshooting, optimization and usage.
server-side level - php, java and a handful of others - worked with web-app languages since 1996 (php/perl primarily in those days).
client-side level - js/ajax/etc
etc - app integration with mail servers, chat servers, multiple external APIs, etc.
Looking at a web browser, I can trace a click across the network with wireshark, through various layers down to my app, then in to a database, and can tell you how long each segment took and why and how to improve it for speed or scale.
But... I've never done kernel hacking beyond compiling, so by your definition, I'm probably not a fullstack developer.
See why there's confusion around the term?
FWIW, I'm OK with the term, but think it's going to get generalized to the point of being the next 'rockstar ninja' phrase we'll see plastered everywhere in 2013.
By comparison to other people who only know photoshop, or only know SQL, or only know sysadmin work, I can operate functionally in many areas.
syadmin - compile and set up servers from scratch
database - can deal with most aspects of database setup, configuration, troubleshooting, optimization and usage.
server-side level - php, java and a handful of others - worked with web-app languages since 1996 (php/perl primarily in those days).
client-side level - js/ajax/etc
etc - app integration with mail servers, chat servers, multiple external APIs, etc.
Looking at a web browser, I can trace a click across the network with wireshark, through various layers down to my app, then in to a database, and can tell you how long each segment took and why and how to improve it for speed or scale.
But... I've never done kernel hacking beyond compiling, so by your definition, I'm probably not a fullstack developer.
See why there's confusion around the term?
FWIW, I'm OK with the term, but think it's going to get generalized to the point of being the next 'rockstar ninja' phrase we'll see plastered everywhere in 2013.
I fall under the same definition as you...Full stack developer to me means that you can find your way around installing, configuring, maintaining and debugging things throughout the entire stack, not necessarily that you can develop/program things at each level of the stack.
I have built servers, installed, config'd and maintained web servers (LAMP), setup mail servers, setup networks, built web applications (front-end and back-end), debugged operating system issues, network issues, database issues, recovered lost data...and I would consider myself to be a full stack developer, but according to other peoples definitions I wouldn't be if I hadn't done any major modifications throughout each level of the stack...which by that narrow definition would mean that there are probably very few "full stack developers" in the world
I have built servers, installed, config'd and maintained web servers (LAMP), setup mail servers, setup networks, built web applications (front-end and back-end), debugged operating system issues, network issues, database issues, recovered lost data...and I would consider myself to be a full stack developer, but according to other peoples definitions I wouldn't be if I hadn't done any major modifications throughout each level of the stack...which by that narrow definition would mean that there are probably very few "full stack developers" in the world
Perhaps whoever down-voted me can tell me where I was wrong so I can learn?
I didn't downvote you, but "meaning is use" - and there is an established, context-specific social practice around the phrase "full stack developer" independent of how it makes you feel. In the relevant context, the word "stack" doesn't refer to the call stack.
If you want to go off on a cranky tangent every time the phrase is used, you have the right do that, but things go more smoothly when you apply some charity in interpretation and take things the way you know they are meant.
If you want to go off on a cranky tangent every time the phrase is used, you have the right do that, but things go more smoothly when you apply some charity in interpretation and take things the way you know they are meant.
Your definition is the only really meaningful and defensible definition. But that's not the point. The point is that even though there is a "correct" definition, the term is still useless because people use it to mean a million different things. And that won't change... the toothpaste is out of the tube, as they say.
You forgot... they also have to design the microprocessor!
There's a reasonable limit to every "stack". In this case I'm very clearly talking about "web programming at startups", where assembly programming doesn't have a place 99.99% of the time.
There's a reasonable limit to every "stack". In this case I'm very clearly talking about "web programming at startups", where assembly programming doesn't have a place 99.99% of the time.
A little bit disappointed that the 'visual designer' is pretty much relegated to making things pretty... UX work is so much more than that. No UX research. No user testing. etc.
The big thing missing from this stack though is what's actually being built? Where are the folk who understand the product and customers and market? Those people need to be part of the team too.
The big thing missing from this stack though is what's actually being built? Where are the folk who understand the product and customers and market? Those people need to be part of the team too.
Yeah - I actually had "UX designer" as a separate role, but decided to leave it out and focus on the more technical / hard deliverable side, since there would also be an argument for including Product Managers, Customer Happiness, Sales, Investors, etc. (ideally all of these roles impact what is built)
Not just for startups. Imagine if companies that have already seen pre-internet growth could attract this talent and apply it to new solutions, otherwise threatening startups ideas. It’s probably easier to ignore the problem of external threats from startups and just raise the walls of market entry.
If you have written a disassembler and known an assembly language, have notable programs in C and what ever higher level languages you are using, and you've written a compiler in the past, cool, I respect that. You are a "full stack developer": any new language is just a tool you pick up. Most technologies become tools you learn to apply from basic principles you have absorbed.
But I see this word get thrown around so often I don't believe people asking for it know it when they see it, or the people claiming they are, are.