We'd need to decouple work and wages. Someone told me there is no such thing as working illegally in the US. There is only illegally getting paid. I am sure we can find work for everyone but how much is the compensation?
Perhaps we ought to guarantee a certain amount of money to everyone whether they be Warren Buffet or Joe Schmucks. Then, we'd get rid of the minimum wage.
I had a similar conversation with a coworker this morning. What job would have the most people applying for if no job paid any money? In other words, if salary and job were decoupled, what result would we see?
He said "no job paid any money", not Milton Friedman style guaranteed income. A lot of jobs need to pay a premium over the alternatives to get enough people to do them.
Right and that is a part of the thought experiment. How would society evolve around not being able to compensate people to do those things through money? It is just a thought experiment though and I was not trying to solve any problems, I was just wondering what jobs are the most attractive once you remove money from the equation.
Wow, did you not even think for a second about the consequences?
We'd need to decouple work and wages
Well what incentive would people have to go to 11 years of college then to become a surgeon? What incentive would a start-up founder have to work 80 hour weeks for years on end if there was no chance to get rich off of it?
What job would have the most people applying for if no job paid any money? In other words, if salary and job were decoupled, what result would we see?
The job which required the least amount of effort. The more difficult or time consuming the job, the less applicants there would be.
No, it's an interesting idea. People would do what they wanted to do as opposed to what they had to do in order to earn a living. I can look to my wife as an example. She's a horse trainer. She makes very little money (pretty small market for clients to start with), gets injured frequently: sometimes badly, but absolutely loves the work.
There are many of us out there who really like what we do and would do it even if we weren't paid, as long as we still had a source of income
I agree with the author, but the petroleum analogy was extended way too far and muddles the issues. Here are some specific topics that the umbrella of the analogy covers that could have been addressed:
a) How important is 'cultural fit'? Should Paypal have not hired an otherwise talented engineer because they called basketball 'hoops'? [1]
b) Hiring Generalists vs Specialists
c) How to evaluate candidates
As the questions get more nuanced, the answers can be far more compelling. For example, you might come away agreeing with this article but not realize you're subconsciously using the inaccurate heuristic Y to look for programmers. But if the answer to c) is that work sample tests are the best way to evaluate candidates [2], it's much harder to ignore.
It really depends on what stage the company is at. Unless you're Facebook / Google / Microsoft you're better off with a a bunch of full stack programmers than a bunch of specialists.
Even at FB/GOOG/MSFT the specialists only really work well on established product lines, and not skunkworks type projects. The cost of communication overhead is simply to high for specialists to work well for most companies.
Also, you can usually rent a specialist for the few days you actually need them to tune up your DB server, etc.
Unless you're Facebook / Google / Microsoft you're better off with a a bunch of full stack programmers than a bunch of specialists
Sometimes when I read job listings for "backend dev" or "frontend dev" I start to thi I am the only full stack guy out there. Thanks for helping me feel less alone.
Ditto. But moving further and further from frontend these days... can't remember the last HTML I wrote. More time on HA clustering, continuous integration, build systems, multi-provider cloud management infrastructure, emerging kernel features, network-device-agnostic network connectivity rulesets... blah.
I spent a few years detached from the backend before reestablishing myself as full stack.
Also, the more I think about it, the more I think that CI, build systems, and infrastructure are necessary and important facets of being a full stack programmer.
Depends on the complexity/size/requirements of your CI system/infrastructure. I am mostly interested in the kernel features for LXC/virt: see https://github.com/globalcitizen/lxc-gentoo .. damn handy for rapid and efficient virtualization of complex infrastructures on limited hardware.
Not all of my posts are about them. I'd say most of them probably aren't these days. This one certainly wasn't. This one was inspired by a story which made it onto reddit or HN (can't remember which) about how North Dakota now looks bright at night from space due to petrochemical flares. That got me to learn about flaring, and the whole distillation tower concept and so forth. Before I learned about that, I had no idea crude oil could be turned into so many different things. That in turn got me thinking about "using all of the buffalo" - everyone's probably good somewhere...
Meanwhile, HN has these YC company job postings which can be completely ridiculous, and it's impossible to discuss them to call them out on their insanity.
If I write a post about something and it makes you think about a certain company, that may say more about your impression of that company than anything else. See also: http://rachelbythebay.com/w/2012/03/03/corp/
Oh, I had just assumed that you meant either Google's focus on academic credentials or their down-the-rabbit-hole programmer interviews by "testing for attribute Y", considering all of your other thinly-veiled "maaaan, google is so fucked up now" posts.
I guess my reading of your posts is tinted by my mental classification of you: "great ex-google writer and programmer who had too much common sense to keep working there".
These kinds of posts make me happy and sad at the same time. Happy because I agree with every word with every fiber in my body. Sad because literally 100% of the industry as far as I can tell is exactly as how she explains in the article. I can't even remember how many phone interviews I've done over the past 8 months... Despite the fact that I have over 50,000 lines of code on my github account and 5 years experience, I'm told I'm "not what we're looking for".
I'm sure you'll eventually find out. That's the crazy thing: this kind of non-sense shows how we're basically nowhere when it comes to matching talent with companies.
The headhunter business, especially in IT, is already a huge one. But it's really just in its infancy. In a better world there would be sites doing the matching, not unlike online dating.
I don't worry for you because I know there are several good fits for you and eventually you'll find one.
But still, it really sucks. At the same time it shows there's just so much yet to be done...
"Our rejected candidate ... represent[s] diesel fuel. It's also capable of moving stuff around. Just look at all of the Mercedes and VWs and pickup trucks, semis, trains, and everything else out there. It doesn't "burn" quite the same way, but from 30,000 feet it all looks the same"
There are two solutions to the question of culture: one at 30 000 feet and one at the microeconomic level. At the portfolio level yes, diversification is good. At the company level, however, focus tends to produce better results. Diesel won't burn in a petrol car.
The only thing that can be empirically agreed upon regarding effective company cultures is that having one matters (more than which one you have) - this is another way of saying having a set of correlated values. Ideally, an economy (or portfolio) would contain a diversity of cultural heterogeneity, ranging from prone-to-blind-spots monocultures to attention-deficit giants.
That said, it is good to continuously question the efficacy of measures at measuring the intended characteristics and what constitute that set of characteristics.
Is the whole full stack generalist / specialist dichotomy a correct one?
I'm bootstrapping and I can do a lot by myself: setting up Linux from scratch, installing & configuring the DB, the proxies, the webapp server, the firewall, write administration scripts, set up the SSH tunnels, do the coding, do the HTML+CSS... Full stack "generalist" way. (Heck, I can even build the server myself if needed).
But at the same time I'm definitely a "specialist" in some fields. For example I've been holding my SJCP (now Oracle) Java cert since the last century and I've been coding in Java since more than 10 years and I know some Java frameworks inside out.
Sure I'm not a DBA nor a Unix sysadmin specialist but I'm both a generalist in that I can still do it if needed and yet I'm a specialist in certain programming domains.
I mean: aren't all generalists still specialists in some particular domain?
Maybe too that HN is representative in that a lot of the entrepreneurs in IT will tend to be "full stack"?
As a side note, sometimes it sucks to be "full stack" because people ask you to do things you'd rather not do, because you're the one in the company (startup) knowing that area the best. It doesn't make you very good at it, but by knowing it more than the next guys, you get to do it.
As a second side note, when working for bigger structure, I've noticed that the DBA, for example, or the Unix sysadmin, do really like it when they realize they're talking with someone who understands what they're doing. Heck, I've helped Unix sysadmin troubleshoot Java webapp server issues because they weren't that familiar with Java ; )
Is the whole full stack generalist / specialist dichotomy a correct one?
Maybe it's not a dichotomy, and more of a spectrum.
Also, there's the idea of a "T-shaped person" who is broad in many areas and goes really deep in one. I would take A T-shaped person over an I shaped person, all things being equal.
The only universal answer for "generalist or specialist?" is that there is no universal answer.
Sometimes you want a generalist. Sometimes a specialist. Sometimes you want adaptability, sometimes adaptation. Sometimes coverage, sometimes convergence. Sometimes generality, sometimes optimality.
As for analogies ... I prefer the pin factory, myself.
I think most companies actually need more generalists (especially for web and mobile). Lots of companies switch between different technology stacks every couple of years. Sometimes you don't even have choice e.g., when a new phone OS becomes popular.
This is different when you are looking for someone to work on one task for a short while. But if you are looking for long term employees you should look for people who are good at adapting to new technologies and have good basic programming skills.
Really, it depends. For every small startup that needs a good full stack generalist to rush to different fires, there's a lot of medium and large companies that need a <whatever> guru to come and tune their production system.
The whole article is written about how the author wishes productivity to be, but doesn't go into analysis on how the world actualy works, and why.
These are completely unrelated things.
Wishful thinking won't make every wannabe programmer able to create every product. For a real life example, google for the articles on people failing fizzbuzz-test when applying for programming jobs. The distillation is used to separate "non-programming sheep from programming goats".
I don't think the original author means you should hire people without any related knowledge. But if a company is looking for a JEE programmer they could probably hire a programmer with another background as well.
28 comments
[ 4.5 ms ] story [ 71.4 ms ] threadPerhaps we ought to guarantee a certain amount of money to everyone whether they be Warren Buffet or Joe Schmucks. Then, we'd get rid of the minimum wage.
I had a similar conversation with a coworker this morning. What job would have the most people applying for if no job paid any money? In other words, if salary and job were decoupled, what result would we see?
We'd need to decouple work and wages
Well what incentive would people have to go to 11 years of college then to become a surgeon? What incentive would a start-up founder have to work 80 hour weeks for years on end if there was no chance to get rich off of it?
What job would have the most people applying for if no job paid any money? In other words, if salary and job were decoupled, what result would we see?
The job which required the least amount of effort. The more difficult or time consuming the job, the less applicants there would be.
There are many of us out there who really like what we do and would do it even if we weren't paid, as long as we still had a source of income
Nor me. I'd be working on programming projects I'm interested in instead of the same lame CRUD apps for big companies.
a) How important is 'cultural fit'? Should Paypal have not hired an otherwise talented engineer because they called basketball 'hoops'? [1]
b) Hiring Generalists vs Specialists
c) How to evaluate candidates
As the questions get more nuanced, the answers can be far more compelling. For example, you might come away agreeing with this article but not realize you're subconsciously using the inaccurate heuristic Y to look for programmers. But if the answer to c) is that work sample tests are the best way to evaluate candidates [2], it's much harder to ignore.
[1] http://blakemasters.com/post/21437840885/peter-thiels-cs183-...
[2] http://news.ycombinator.com/item?id=4613543
edited for formatting
Even at FB/GOOG/MSFT the specialists only really work well on established product lines, and not skunkworks type projects. The cost of communication overhead is simply to high for specialists to work well for most companies.
Also, you can usually rent a specialist for the few days you actually need them to tune up your DB server, etc.
Sometimes when I read job listings for "backend dev" or "frontend dev" I start to thi I am the only full stack guy out there. Thanks for helping me feel less alone.
Also, the more I think about it, the more I think that CI, build systems, and infrastructure are necessary and important facets of being a full stack programmer.
Emerging kernel features? Probably not so much :)
Meanwhile, HN has these YC company job postings which can be completely ridiculous, and it's impossible to discuss them to call them out on their insanity.
If I write a post about something and it makes you think about a certain company, that may say more about your impression of that company than anything else. See also: http://rachelbythebay.com/w/2012/03/03/corp/
I guess my reading of your posts is tinted by my mental classification of you: "great ex-google writer and programmer who had too much common sense to keep working there".
The headhunter business, especially in IT, is already a huge one. But it's really just in its infancy. In a better world there would be sites doing the matching, not unlike online dating.
I don't worry for you because I know there are several good fits for you and eventually you'll find one.
But still, it really sucks. At the same time it shows there's just so much yet to be done...
I really liked the refinery analogy, and think it will come in handy. Thanks for sharing your thoughts on it.
There are two solutions to the question of culture: one at 30 000 feet and one at the microeconomic level. At the portfolio level yes, diversification is good. At the company level, however, focus tends to produce better results. Diesel won't burn in a petrol car.
The only thing that can be empirically agreed upon regarding effective company cultures is that having one matters (more than which one you have) - this is another way of saying having a set of correlated values. Ideally, an economy (or portfolio) would contain a diversity of cultural heterogeneity, ranging from prone-to-blind-spots monocultures to attention-deficit giants.
That said, it is good to continuously question the efficacy of measures at measuring the intended characteristics and what constitute that set of characteristics.
I'm bootstrapping and I can do a lot by myself: setting up Linux from scratch, installing & configuring the DB, the proxies, the webapp server, the firewall, write administration scripts, set up the SSH tunnels, do the coding, do the HTML+CSS... Full stack "generalist" way. (Heck, I can even build the server myself if needed).
But at the same time I'm definitely a "specialist" in some fields. For example I've been holding my SJCP (now Oracle) Java cert since the last century and I've been coding in Java since more than 10 years and I know some Java frameworks inside out.
Sure I'm not a DBA nor a Unix sysadmin specialist but I'm both a generalist in that I can still do it if needed and yet I'm a specialist in certain programming domains.
I mean: aren't all generalists still specialists in some particular domain?
Maybe too that HN is representative in that a lot of the entrepreneurs in IT will tend to be "full stack"?
As a side note, sometimes it sucks to be "full stack" because people ask you to do things you'd rather not do, because you're the one in the company (startup) knowing that area the best. It doesn't make you very good at it, but by knowing it more than the next guys, you get to do it.
As a second side note, when working for bigger structure, I've noticed that the DBA, for example, or the Unix sysadmin, do really like it when they realize they're talking with someone who understands what they're doing. Heck, I've helped Unix sysadmin troubleshoot Java webapp server issues because they weren't that familiar with Java ; )
Maybe it's not a dichotomy, and more of a spectrum.
Also, there's the idea of a "T-shaped person" who is broad in many areas and goes really deep in one. I would take A T-shaped person over an I shaped person, all things being equal.
Sometimes you want a generalist. Sometimes a specialist. Sometimes you want adaptability, sometimes adaptation. Sometimes coverage, sometimes convergence. Sometimes generality, sometimes optimality.
As for analogies ... I prefer the pin factory, myself.
This is different when you are looking for someone to work on one task for a short while. But if you are looking for long term employees you should look for people who are good at adapting to new technologies and have good basic programming skills.
Horses for courses.
These are completely unrelated things.
Wishful thinking won't make every wannabe programmer able to create every product. For a real life example, google for the articles on people failing fizzbuzz-test when applying for programming jobs. The distillation is used to separate "non-programming sheep from programming goats".