Forgive potential ignorance here, but people often quote Joel Spolsky as saying things like: "...the trouble with using a lot of mediocre programmers instead of a couple of good ones is that no matter how long they strive, they will still produce something mediocre."
What really genius-level things has Fog Creek done? I remember demoing FogBugz, and it was marginally better than its competitors, but it was far from a complete game-changer. Trello is ok, but it's only marginally better than a whiteboard with post-it notes. None of these reinvent an industry, or provide something so outstanding that people rush toward it.
Don't get me wrong; I think Joel has a lot of good ideas in general, and Stack Exchange is indeed a game-changer. But as someone who continually talks about hiring "rock star programmers", I simply don't see a result that I'd consider "rock star" equivalent. But, maybe I'm missing something?
Edit: More than that, I don't even consider myself a rock star developer, just a normal developer who loves learning new things and getting a lot of stuff done. I'd be thrilled to work for a Google or Microsoft, but what would attract "rock star developers" to Fog Creek? Basically, are fancy chairs enough? Isn't the most attractive thing a super interesting problem domain?
I'm constantly fighting that same urge. The problem is one of domain. UI coding for straightforward data models (which is 90% of all "web" development) just ... isn't very hard or impressive. Great programmers in that regime produce software that is smaller, cleaner, tighter and higher quality. But it's still just a bug database or social thing or web store, etc... Anyone (even mediocre programmers) can look at it and say "I know how that works."
There's plenty of rock star coding out there, of course. But it tends to be either hidden inside companies due to secrecy concerns (Google's scaling architecture or the NVIDIA driver stack, say) or exposed in the open source community instead of the startup world (Fabrice Bellard is a great example here).
Startups all say they want rock stars, but then they put them to work doing "better versions" of the same boring stuff we all recognize. Which, if you think about it, is sort of what startups are supposed to do.
Although the article never used the word "super star", it's something I see around HN and the startup world quite a bit....
I sort of snicker when I see startups post jobs looking for "rock star" coders [1]. What self respecting person would call him or herself a "rock star", let alone apply for such a position? Maybe it's just a gimmick to get mediocre developers to get to work on boilerplate web work..
[1] I also saw a job posting recently where they were looking for a coder "to work on hard problems and blow a hole through the universe"... Why not have them blow bullshit of their face while they're at it? Is this just HR trying to sound too cool, or what?
It's just a meme. Some people are into it, some aren't. There are lots of ways to motivate people, and this works for some. I try not to get to wound up over language usage.
I'm just guessing here, but I bet its more about communicating a shared perspective on software development than people thinking they're actually "rock stars". When a job ad says "looking for rock stars to blow a hole in the universe", you would be a fool to take that literally. But its along the lines of a "secret handshake" that lets both parties know something about the other in as few words as possible. A job posting like this is basically saying "hey, we read HN, reddit, etc, we know there's a ton of crap jobs out there full of walking-dead programmers. But this isn't one of them". Of course, the whole "rock star" meme has been hammered to death so that you're more likely to be a company pretending to be something you're not. The point is there is validity in this method of job posting.
It's nonsense.
I recoil every time I see a job description like that. Anyone who believes in those mythical rock star programmers has a serious problem and I certainly don't want to be part of it.
When a job listing says ninja/rockstar/badass coder, its really just a codeword for someone they can force to do anything at all costs. They act like they want a 10x'er but really just want someone who they can get to do 10x much work.
The term "rock star programmer" is by now a symbol that people intuitively understand the meaning of. Essentially equivalent to the "creme de la creme" of programmers, but if we switched to using that term few would balk at the comparison to dairy production. I've described support staff coworkers as "total rock stars" before. Everybody gets what I mean when I say that.
So it's hilarious when companies like Geico or whatever post ads on Stack Overflow Careers 2.0 saying they only accept "rock stars"... Because we all know that's where all the hot shots flock to...
Rock stars generally don't get a salary, but royalties or profit sharing. The better the star/band does, the more money they make right now at the gig, and longer term in increased sales over time.
If someone wanted me as a 'rock star' developer, I'd want some serious profit/revenue sharing plan in place - something more than "10% of profits are held back and divvied up amongst 90 other people based on seniority".
Not sure about that—a lot of famous guitarists were originally pickers, and while the electric guitar may be a sexier instrument, most of the drummers I’ve known have actually been very attractive.
The majority of amazing software that has not been created yet is "CRUD". Why developers keep thinking the low level stuff is the good stuff.
A huge class of such systems that are waiting to be created are crowd labor systems. How do you create leaderless organizations that produce what google or boeing or walmart produces and that compensates individuals for performance.
The answer today is a messy unorganized market system. Proper information systems that better organize that would create a lot of value. The analogy would be this site. Thousands of people communicating, without the organizing software it would be much worse (thousands of people standing around talking to each other, the good ideas spoken would not easily reach the top as it does in this organized software system).
tldr; the biggest value opportunities lie in CRUD apps, not the low level code
The answer, of course, is that the "good stuff" is subjective (and almost never aligned with "the biggest value opportunities", ick).
Yes, CRUD pays. Being able to make more CRUD in less time (and/or CRUD that is better performing or more maintainable, etc...) is a valuable skill.
But it's boring. And more, it's just not impressive in the same way that, say, qemu/kvm is (or Mesa, or Linux, or llvm, etc...) That stuff is hard, and fun, and interesting in a way that CRUD will never be. So it has value too, and IMHO it's entirely reasonable to celebrate its practitioners even if they don't make as much money as CRUD jockeys like Zuckerberg do.
I agree, the classic engineers like to work problems with an easily definable end result (so that business types don't tell them what to write).
It's a pity though, there's a huge space of products that are needed but the talent is going into slugging it out in societally useless and relatively low paying niches (such as many of the most talented programmers entering the game industry or social networking or linux kernels). Meanwhile dumbasses are raking in millions with shit like SAP and the like.
While I agree on your remark about talented programmers in game and linux kernels. I don't necessarily agree with lumping social networking with the two fields aforementioned. I also disagree of your remark about SAP.
I don't necessarily agree with SAP or SAP consultants but there are cases where people would prefer to use SAP to implement some of their core: http://www.infoq.com/presentations/Building-a-Hybrid-Cloud-a.... SAP is a complex, specialized tools that requires specific knowledge on how to tame it.
(I'm not arguing if complexity is good, bad, or anything like that. I'm focusing on what SAP is good at).
You're missing the point that the term rock-star programmer doesn't mean they will produce world changing programs. It means they'll do an order of magnitude better/faster than their non-rockstar peers.
That might be a bit contradicting to what Joel is explaining.
From what I've experienced first hand, there's programmers that can produce similar code/software in a week that takes 5 mediocre programmers to produce in a month. Those are extreme cases though.
There's not enough "rock star programmers" to go around, so not everyone can have a piece of that cake. Much of this is also very domain specific, it's not a given that a "rock star" game programmer is going to be a orders-of-magnitude better at developing business support systems. Finally, this is not that specific to programming. Not everyone's Einstein, Feynman or Michelangelo.
Can we please stop using the term "rock star?" It's getting old.
This idea that a single programmer is somehow so much better or superior may have its merits, but it's harmful to your overall business if you put all your weight on that single support.
You have to accept that above a certain number, your employees will fall on a bell-curve of ability, and you should support the efficiency and productiveness of the entire system, not depend on a few "rock stars" to drag it up with you.
Here are words I associate with Rock Star: driven (sure), but myopic, single-minded, selfish, unbalanced, and unfaithful. I say we strike it from the vocab.
I agree completely with that. If you're betting your future on having all your employees being an order of magnitude better than the average, well - you're gambling high.
Well, in the linked article he used a Mozart/Salieri analogy, implying that rock star programmers write masterpieces, not simple bug trackers. If all Fog Creek programmers were truly rock stars, wouldn't they be beating Google instead of writing menial money-farm stuff? In my experience, those of us who move at a faster pace than our peers tend to get the most interesting projects. There's a reason that ERP software is so bad, after all.
In the rock star analogy, it'd be like getting the Beatles to write music for Justin Bieber fans, or getting Metallica to switch to the "easy listening" genre. That's not what you do with rock stars.
The point is that if John Lennon was borne today he (or if Jean, she..) would make great music. You might never hear it because of "the industry" but John, or Jean, would be out there somewhere doing ingenious things with melodies that no one else would have.
You can't stop people like that, the same is true for programming, if it's your thing you'll do it. If not.. you won't, you'll be a session musician, and every tune you hear (or function you see) you will be able to say "I could of written that" but you didn't.
> What really genius-level things has Fog Creek done?
Made himself independently wealthy. Repeatedly (IE: Not luck).
Not that I disagree with you. But that is worthy of respect in itself. Also, there is an art to the very difficult task of making the difficult look simple and easy.
There have been many people that have won the lottery more than once. Does that mean they are skillful at winning the lottery? Simply succeeding more than once is not sufficient evidence that the success wasn't because of luck.
All success is based on luck to some extent. It's silly to argue otherwise. Of course there is skill involved as well.
To quote The Spolsk himself:
"This paper is the ultimate rebuttal to those grumpy people who email me, barely able to conceal their disgust, saying, 'why do you need to hire such smart people to work on bug tracking software?'"
"Don't get me wrong; I think Joel has a lot of good ideas in general"
The saying that comes to mind is perhaps the following. "Those who can, do, those who can't teach." I'm guessing that Joel, by his writings, is a combination of the two and as a result his output is not "rockstar" quality.
Another example might be Steve Blank. Who no doubt achieved more fame as a teacher then he ever did creating anything.
There is obviously quite a value in people who can do both in varying degrees.
Indeed; and my post was never intended to belittle Joel himself. He has provided great value to the industry in both capacities. I'm mainly challenging the notion that if he truly hires only developers he considers to be rockstars, then why doesn't the company have a more compelling domain than bug tracking and PM?
Choosing a good domain is a challenge in itself, quite separate from executing well once the choice is made. Programmers who don't explicitly tackle that challenge will tend to drift into writing stuff they would use themselves, which obviously means going where the low-hanging fruit has been scoured terribly clean; looked at that way, it is a testimony to Fog Creek's execution skills that they can stay in business at New York living costs at all.
Well that certainly has to do with both business sense as well as the risk taking ability and what he feels comfortable with.
To do something compelling you have to want to take that risk (which could result in spectacular success or failure). Joel might not want to bite off more than he can chew or he simply might not be creative enough to come up with anything "more compelling domain than bug tracking and PM".
That is why a good programmer needs to be around good business people (add: as well as people with ideas and a feel for the marketplace). They are two different skills. Same with medicine. Doctors specialize. You don't find that someone is the best thoracic surgeon and world famous also does urology. Maybe he also dables in photography but he's not going to be as good as Ansel Adams who does it full time. Business is a skill and takes full time attention. So does programming.
Look at PG. Running YC is a full time job. While he can certainly do programming on the side now and maybe write a book you're not going to tell me he can do all three better than a specialist who can devote full attention.
That is why a good programmer needs to be around good business people
Partnering with a business person for my next venture is something I'd like to try, but it's not exactly clear where you find a good business person who wants to partner up. The business people I am in contact with are already busy with their own things.
Unlike a programer who might be presently doing the 9-5 corporate job, it seems like a good business person will always be busy doing their own businesses, as that is what business people do.
I have been mulling over something in particular as of late, but I presently don't have much interest in building it if I'm also going to be responsible for selling it. A partner seems like it would be a good fit.
"where you find a good business person who wants to partner up"
My first question would be to ask you where you are located? Not sure if you want to reveal a specific city or not. Where you are matters.
"The business people I am in contact with are already busy with their own things."
True. Which is why you need to be somewhere where there is a chance of meeting people who are in between, recently graduated etc. There is also the possibility of someone who is employed full time starting to help and give advice on the side. When/if the venture takes off they would feel more secure in leaving their permanent job.
"it seems like a good business person will always be busy doing their own businesses, as that is what business people do."
You only need to find one person (it's like getting married). There are of course compatibility issues as well to consider.
"have much interest in building it if I'm also going to be responsible for selling it."
If you build it and it makes sense from a business perspective and have a prototype you can attract that one or two people you need. With just an idea of course you can't. Care to elaborate on the idea at all?
My first question would be to ask you where you are located?
Rural Canada, which I assume does not bode well. There's certainly no startup scene, so to speak.
Where you are matters.
Which is unfortunate because one thing that has always excited me about software in particular is that it democratizes location. I've had the opportunity to work with some amazing organizations from around the world without having to be physically present for any of them.
If you build it and it makes sense from a business perspective and have a prototype you can attract that one or two people you need. With just an idea of course you can't. Care to elaborate on the idea at all?
That's fair. I've built "hundreds" of prototypes before. Some I've come to realize are simply bad ideas, others I've decided were still good and were taken to market with some mediocre success. In those cases I have felt were limited due to my lack of business acumen. What is not clear to me is where to go even after a prototype has been made and still shows merit.
I don't mind sharing the idea, but after some further research I discovered some companies who are already working on pretty exactly what I had envisioned, so I'll spare you the details. Though I do appreciate your advice in general as there are millions of other problems that need to be solved so it will no doubt come up again.
I think this gets to the heart of your bias. "Bug tracking and PM" is not compelling to you, but I suspect Joel and his hires find it a lot more fascinating than you do.
Not to answer someone else but I think what the parent means is that it's not original, unique, or greatly improving on whatever is already out there. (Is it?)
I mean it's kind of meat and potatoes addressing a problem that has been addressed and maybe doing it better.
Let me state that while I can program I am certainly not a programmer. But from my perspective it seems that Fog Creek, while a great company is not the place that a world class programmer would go to work on world class software. I mean this as no disrespect to Joel (who I admire greatly) or what he has done.
Using an analogy if you want to be in law enforcement are you going to work for the local big city police department or try to work for the secret service or the FBI?
What would you say about people working on search algorithms at Google? Is that prestigious enough for you to call it world class? Because that seems like an addressed problem and maybe doing it only a little better.
> Using an analogy if you want to be in law enforcement are you going to work for the local big city police department or try to work for the secret service or the FBI?
Do tell me what makes the FBI or the Secret Service more "compelling", "original", or "unique" than a "local big city police department". Because I see law enforcement, full stop. Not Swanky Law Enforcement versus Ghetto Law Enforcement.
I think it is always important to consider time-lines on stuff like this. In this field (many fields actually, but it seems especially this one), the first version of something may be revolutionary or particularly good, and then everyone copies that as obvious, making the first one seem only OK or even bad. TV-Tropes covers this effect nicely in the world of fictional television at: http://tvtropes.org/pmwiki/pmwiki.php/Main/SeinfeldIsUnfunny
I'm not sure the timeline on FogBugz, but it wouldn't surprise me if this was a case of it.
FogBugz arrived when the main player on the scene was BugZilla, and capitalized on the fledgling "AJAX" craze. It was definitely a Bugzilla zapper, and it still remains a quality product to this day, gaining features and maintaining simplicity. It's a quality piece of software, but it's still "only a bug tracker". It wasn't the first of its kind, and it's definitely not the only one these days.
When I think of a rock star, I think of someone who not only produces stuff of quality, but actually changes the landscape of the industry. If FogBugs hires 40 rock star developers, I'd expect to see a lot more come out of them than products all in crowded spaces. While they are all quality products, they aren't changing the landscape of the industries involved.
For a lot of developers, the how of making software can be as important as the what of making software. I've worked on casual games, bug trackers, retail signage databases, public outreach platforms, streaming media servers, and lolcat captioners.
And you know what? It's all about the same. It comes down to things like being respected, challenged, engaged, and working with people you like being around.
If Spolsky were to go slumming it and open an office in my town, I would be first in line to apply to work on FogBugz, and I don't care about the fancy chairs.
What really genius-level things has Fog Creek done? I remember demoing FogBugz, and it was marginally better than its competitors, but it was far from a complete game-changer. Trello is ok, but it's only marginally better than a whiteboard with post-it notes. None of these reinvent an industry, or provide something so outstanding that people rush toward it.
Don't get me wrong; I think Joel has a lot of good ideas in general, and Stack Exchange is indeed a game-changer. But as someone who continually talks about hiring "rock star programmers", I simply don't see a result that I'd consider "rock star" equivalent. But, maybe I'm missing something?
Edit: More than that, I don't even consider myself a rock star developer, just a normal developer who loves learning new things and getting a lot of stuff done. I'd be thrilled to work for a Google or Microsoft, but what would attract "rock star developers" to Fog Creek? Basically, are fancy chairs enough? Isn't the most attractive thing a super interesting problem domain?