The Truth About Hiring "Rock Star" Developers
snydeq writes "You want the best and the brightest money can buy. Or do you? Andrew Oliver offers six hard truths about 'rock-star' developers, arguing in favor of mixed skill levels with a focus on getting the job done: 'A big, important project has launched — and abruptly crashed to the ground. The horrible spaghetti code is beyond debugging. There are no unit tests, and every change requires a meeting with, like, 40 people. Oh, if only we'd had a team of 10 "rock star" developers working on this project instead! It would have been done in half the time with twice the features and five-nines availability. On the other hand, maybe not. A team of senior developers will often produce a complex design and no code, thanks to the reasons listed below.'"
The whole article could be summarized like this: "We have no fucking clue how to manage rockstar developers".
If management or MBAs don't click with devs, the project is ripe for crashing.
...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
Rock Star Developers, seriously? None of them are that good.
Agreed. Rock Stars suck as developers. And most of them suck at rock, as well.
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
Article is weak on expertise.
1) No, you don't need 10, idiot, you just need ONE, and about a dozen or so relatively obedeient and competent non-novice developers.
2) Those weren't senior developers.
I'm not sure about how unions work in America, but in Germany the purpose of an organised workplace is to have a forum between workers and management. The union wants the company to be productive because that secures jobs and usually results in higher wages. The management want the workers to be happy because then staff turnover is reduced, productivity increased and honesty maintained.
The UK and the USA are falling further behind as they put short-term executive profit over the needs of all classes of people.
it's the lack of a single, piercing intellect who is given the power to do their best. You need SINGLE intelligence to coordinate complex maneuvers, and many minds to search out the plain of solutions like hunters of old. Coding is actually quite holistic, occurring in natural stages. Maybe the problem isn't that there too many or too few people; a good software team should be inspirational, allowing the members to spend time for excellence, even if its not obvious (to you, the hiring boss).
No surprise efficiency is an issue in some places; if one builds a "well oiled" machines for it's consistency of action, trouble us not about these tiny changes (in all honesty) that leave managers hoping humans can be better machines. The art you are looking for, and the people, aren't found where that idea lives.
CS majors know the time/space tradeoff, but they never get taught the 3rd, crucial, tradeoff of the set: comprehension!
"Rock stars" - we called them divas in my company - are notoriously unmanageable: many of them are temperamental, don't work well with others, tend to do what they "know" is right instead of doing what they're told, and have an overinflated sense of ego. It's a high price to pay to exploit their expertise.
At any rate, one diva per project, provided a good supervisor is found to manage them and the project is in early development, is okay and probably does bring added value. A team of them however is sure to bring chaos, as individual personalities will inevitably clash. And forget about getting these guys to work on products that are in the middle of their product lives.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
No-one who identifies himself as a rockstar developer is a rockstar developer, and no good developer would call himself a rockstar. The only thing certain is that in any article about "rockstar developers", a few dozen people will wander in and complain that the only reason the world isn't perfect is because rockstars like them just aren't looked after well enough.
So, for all of you thinking about making this claim: if you're so fucking great, go out and start your own business and rewrite every single software product in your own image. Be the rockstar you think you are, identify everyone's desires, and out-compete every other firm on the planet. Internet capitalism is more meritocratic than most forms of capitalism - if you write a killer operating system or office suite or CRM system or time&billing app or whatever, people will take notice. So team up with as many people as your ego will allow (you're a rockstar so you already have considerable savings) and go get 'em, tiger!
in Germany the purpose of an organised workplace is to have a forum between workers and management. The union wants the company to be productive because that secures jobs and usually results in higher wages.
Sounds like Germany still has labor unions. In the USA, we have organized crime posing as labor union organizers, and their purpose is to tax the workers to pay for hookers and blow for mobsters and politicians.
Description starts by talking about rockstar developers, then makes assertions about senior developers. These two groups are not even close to equivalent. Seniority (generally) implies experience -- not "rockstar" status.
I think it's hard to claim the USA and UK are falling back when pitted against Germany for that reason.
USA and UK are falling back to slave labor.
echo -e "HEAD / HTTP/1.1\nHost: slashdot.org\n\n" | nc slashdot.org 80
Upward mobility is a slippery slope - the higher you climb the more you show your ass.
...No, you don't need 10, idiot,....
That's the attitude and one of the things that made my time as a developer miserable. It wasn't enough that I was under constant pressure to meet unrealistic dealines and spending all my free time keeping up with new tech, I had to put up with that kind of abuse and the constant intellect pissing contests and penis measuring.
The other was the fact that you couldn't say "I don't know. Let me research it." Any sign of ignorance or weakness would get you fired or the very least treated like a moron by one's colleagues.
Last year, I saw the National Geogrphic show on Stress. To make a long story short, the guy who was researching monkeys made some observations about them that reminded me of working in software development.
This sounds like a desperate justification for doing it on the cheap. And the "truths" are badly flawed. First, the term "rockstar" is already pretty bad and way off. A very senior engineer is not a "rockstar". Rockstars are people that crave attention and can generate it.
As to the items:
1. Wrong. If you hire highly competent and professional people, the savings in time, maintenance, etc. will be far higher then the higher salary you have to pay them.
2. Wrong. People in the described situation have trouble seeing the big picture, and will get details wrong as well. Their code will basically barely good enough if you are lucky, but it will be a nightmare of maintenance, architecture and design issues.
3. Wrong. This is confusing "rockstars" with very senior engineers. Very senior (by experience and capability, not age) engineers will know this pitfall (hint: Brooks calls it the "second system effect", a really senior coder will know about that) and will know how to avoid it.
4. Well, yes. But what is the point? If the hiring process is run incompetently, of course you will get bad people. That is in no way the fault of the good people that are out there as well. Seems to me the author needed an excuse to bring it up to 6.
5. Wrong. This is a typical problem of people that may think they are senior when in fact they are not. Also see 3 and 4.
6. And here the truth is revealed. This person does not want senior individuals that actually know what they are doing and may criticize as stupid plan. In fact this person wants no individuals on the team, so everybody can be replaced easily and knows it. Yes-men preferred. Unfortunately that is a sure recipe for disaster.
Bottom line: All there "truths" are wrong or irrelevant and show the real problem: The author of this article has no clue and is a "rockstar" himself. But not one of those that can actually do things right. Just one of those small people that cannot handle others being better at something than he is.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
I don't. http://www.tradingeconomics.com/germany/gdp-growth
Looks as if Germany's GDP is managing just fine.
and every really hotshot piece of software I have ever encountered (and I'm talking world-wide success here) has been written by a very small team of highly-motivated developers working very long hours at very odd times of day with no management interference at all. They weren't rock stars before the project or they would have been managed into oblivion. After they had completed the product and it became successful, then they were rock stars. The self-motivation usually came from "fuck you, manager, I'm going to prove that my ideas are correct" One of these projects, where I knew the people well, became one of IBM's top 5 most profitable products world-wide (you've never heard of it), and those guys broke every rule in the book. They worked nights, never went to meetings, smoked cigars at their desks, suppressed all records of how many hours they were really working. By working those hours, the two of them held the entire structure of a big application, its database, and all its interactions with the operating system in their heads, and that mental state enabled them to write vast quantities of simple clear code that contained no serious errors on shipment, and none revealed in the first year. Later people added on to the project for subsequent releases never found any serious errors in the backbone written by the first two guys, nor did they have any problems adding to the code.
Code written during the normal working day, with constant interruptions, will never soar like that.
"Cock Up Your Beaver" does not mean what you think. This sig is intended to clog filters and annoy do-gooders
If you have 40 people writing spaghetti code, then you need _one_ good developer and code reviews, and reject bad code until they learn. Many bad developers are bad because they haven't learned how to do it better. Those that can't learn - sorry, but their productivity is negative, so let them go. What you don't need is a dozen "rock stars". You need developers who can lead by example and let them do it, and who can solve difficult problems that turn up, and you need more people who are reliable, not necessarily bright, who can do all the boring bits - of which there are usually lots.
What I can't understand is how the author talks about smart people making smart designs that don't work. If the design doesn't work, it wasn't smart in the first place. If someone creates a design that isn't smart in the first place, that person wasn't smart. So this seems to be about people who can bamboozle others into thinking they are smart, creating designs that nobody understands.
"Now I use my programming skills in another industry"
TBH most developers I know work in the IT dept of a non IT related industry. The amount of devs who work in pure IT is actually quite small.
What are you talking about? One of those three countries still has a solid AAA credit rating and is now loaning money at negative interest, the two others do not (well UK has the rating but has been warned it will fall unless things improve). The country in question is Germany. US is failing and UK is not looking too great either.
Incoming lawsuit for distributing the lyrics in 3...2...1...
"Your arguments would probably be more listened to if you didn't use Marxist terminology"
It's not "marxist terminology" capitalism is enforced and came into being by men with guns, only in america would someone say something so ignorant of history. More proof america is under the spell of mass political propaganda.
There's quite a bit of truth to the article allthough I'd say that true rockstar programmers do use the right tool for the job. If a programmer builds a custom Java CMS where Joomla would do, he isn't a rockstar. He's an idiot.
Then again, the best programmer in the world is worth nothing without the environment or the right people around him. That includes higher ups that keep people off his back, maintainers that can handle the pipeline and clear objectives to work against.
If a rockstar doesn't have those, he'll be faster than others in producing workable stuff, but if he gets hit by a bus it will be just as much worth as the other unfinished stuff.
Many programmers I know hat are considered rockstars are quite mediocre. They only were at the right place at the righ time and didn't have any scruples in building a complex key product only they could understand, without docs, concept comments or usecases, as a means of job security.
My last teamlead was a nice guy and a demigod in Perl, but absolutely incapable of any sort of productive or result oriented teamwork-organisation or inter-team communication. In itself not very rockstarish, allthough people did think of him that way when he saved the day on some billing system or something every once in a while.
Bottom line:
Rockstar is always relative. Very relative.
We suffer more in our imagination than in reality. - Seneca
... is not rockstar developers it's that making and understanding how software will perform and it's impacts is a hard problem. It's not like engineering where the laws of nature are relatively fixed and known and is a matter of trade offs (time vs cost), ANY change to a program has potential impacts and ripple effects on all other subsystems effectively changing program behavior to some extent. The real issue is the tools for software development and making these things understandable in complex systems is a hard problem. It's a matter of framing problems and solutions in ways that you can actually understand their impacts. Too much software development is undefined and uncharted because of the nature of coding itself. There is a lot of research going on in visualization trying to make these ethereal systems of code easy to grasp and understand in ways that are much easier and more natural for our senses as human beings.
http://www.allosphere.ucsb.edu/
It's a matter of being able to grasp what is that you are trying to do and it's impact. Most developers (even rockstars) have issues with not even knowing where they are headed and what will be needed down the line as projects grow and outstrip human ability to understand them. Software has long since passed the complexity where the human mind has the ability to full grasp all the complex interactions. The real problem now is getting the research and data to make demystify this complexity (i.e. complexity partially being a synonym for not being able to see/understand what a problem and solutions are and it's impacts).
Surely the recent past has shown you what 'ratings' are worth.... These are the same people who stamped all those dubious mortgage backed securities as AAA, remember how that turned out..
These ratings are simply an opinion that is correct until it isn't - it's worth bat shit.
Never happened. True story.
Actually, thanks to workfare it seems that people do end up doing work for less than minimum wage. There is an, admittedly anecdotal, story that a woman was dismissed from a paying job and then ended up at the same place doing the same job under workfare. Not exactly the definition of slave labour but makes a mockery of minimum wage laws.
Prison–industrial complex
Upward mobility is a slippery slope - the higher you climb the more you show your ass.
Rock Stars make great performances not great software.
Ego has little place in software development and in most cases those that consider themselves 'Rock Star Programmers' are suffering from a chronic case of Dunning Kruger syndrome
Great Programmers are masters at listening and comprehension. They are humble, asking questions before offering solutions. They not only accept criticism they solicit it. Their code is simple and elegant, capable of being comprehended by the most junior and appreciated by experts.
Every time somebody brings up the topic of unions in the US, I find myself wondering whether "union" is one of those terms like "potato chips" or "football" that means something completely different over there.
Well, in America "unions" mean very powerful quasai-political entities like SEIU or UAW which basically make american labor unprofitable (see the insane costs of auto-workers). These "unions" extort huge fees from their often-unwilling constituents and in turn donate large sums to our Democratic/socialist party.
Source: my uncle worked in Detroit from high school-> retirement. He loves American cars but told me it's one of the most corrupt systems out there.
Not all countries unions work the same way. I know that here in the UK unions are very different from unions in the US and also different to unions in Germany.
The fact that the union system in the US was infiltrated in organised crime does not mean that happened anywhere else. I think it might be one of the only developed western countries where this happened actually, it is certainly not the case in the UK.
I dont read
No programmer in his right (or left one for that matter) mind can believe that a "programming test" during an interview would provide any meaningful indicator about a coder's abilities.
Actually, I think you are dead wrong here.
I have been through a few programming tests and have now created a few as well and I think they can be a very good indicator if they are approached correctly (by the company, not the prospective employee).
Firstly, there are no hard and fast wrong answers. I made a few glaring screw ups in mine but since I was able to recognise them myself and discuss them during the post test interview this did not count against me.
We were asked to fill in some blanks in a some code (very big blanks though, more than a few lines long). This pretty much guaranteed some mistakes since we had to do it on paper with no access to a computer or any reference material. We also go to choose a language were comfortable with to do the test in (PHP or ASP since it was a web dev role). All in all I think the test took about half an hour, then a further half hour to discuss it.
The main thing is that you do not expect the test to be marked and that be the be all and end all. Instead it is used as a starting point for an interview. Then the interview can be far more useful than if you just go in with a list of stock questions that the candidate will have rehearsed for anyway.
I dont read
not sure why he equates senior developers with rock star developers, for me rockstar developer is someone able to do very complicated piece of functionality that a team of ordinary (even ordinary senior developers) would need a month for, and do it alone in less than one week with ten times less bugs, you know people that not only have 10+ year experience but also high intelligence
I am a Mechanical Engineer but I also have a CS degree. It was interesting in school to see how software engineering being a relatively new field is struggling with what other engineering fields have had to deal with for a long time.
Staffing a project is not a linear function. A project with twice the complexity doesn't take twice as many people. It may take 4 times as many because now you have to coordinate those people. This requires project managers and system engineers. This begs the question what is the right project size for a team?
I've been on small teams that have done amazing things in limited time because we were all in one room without distractions. I've also been on large projects that have gone nowhere because nobody knew what to do.
Very occasionally I've been on a large project with a good manager that can break the project down into subsystems with clear requirements small enough for a small team to handle. The manager handles the conflicts with interfaces between these subsystems but otherwise stays out of the way. This is the type of manager I like to work with.
I love Jesus, except for his foreign policy.
Unions in the United States needs massive reform. However no one is really wanting to admit it. When ever someone says to the Union "Dude, you have some major problems, you need to fix them!" they go back and spout all the good stuff they did in the past. Weekends, Overtime, Vacation....
The problem now the Unions main goal is to increase the size of the Union. So I have seen Unions agree to something similar to the following example
Lay Off 50% of the IT Staff (say 10 People at an average of $70k a year), and Expand Factory workers by 20 average $30k a year. To save $100k, for the company. But the Union ends up getting more money out of dues.
Also because the Unions are structured there is a deep dislike towards Outside Consultants and Contractors for temporary work. (For example the Auto Union hired workers to do nothing until there is a surge in work, so they sat around all day and watched TV except for a few time a month or year) Because they would get more unioned members vs. hiring contractors to pick up the extra slack when it is needed, but they are not paying union dues so they are not welcomed.
Union shops tend tries to make sure no one does anyone elses job. You request and get approved for a whiteboard. The board is shipped to you. If you hang it yourself your are in trouble, you will need to wait an other week to get a Unioned employee to take 5 minutes to hang it for you.
I once got in trouble from the union because I was consultant commissioned to create a Web Application for them. The commission came from the Application Development group, I did the work to the best of my abilities... Apparently it pissed off the Web Group because my application looked better then what they could do, and they demanded more tools so they can make their apps look better then mine...
There is also a fear amongst union members to bad mouth the union. When I was taking my MBA class, and the Unioned Professor trying to teach how to deal with collective bargaining, she would close the door and talk quietly. When I use to work as a consultant, I was told to avoid these people because they are big in the union, and if I did anything to make them look bad there will be a lot of trouble.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Except they/we are rockstars because they get the job done, despite a bunch of MBA's trying to stop them. I agree with him about too many senior developers, they cancel each other out. I've use teams of 3-4 people, usually one rockstar and 3 who are happy to play second fiddle and follow his lead.
When I've done the rockstar roll (before I moved into managing them). The number of times I've had ineffective programmers try to trip me up. A typical pattern is the 'spec says X', I'm well into the spec, X is already written, a programmer on some other platform is falling behind and hasn't gotten to X yet. What do they do? Typically they will start changing the spec, now X is Y and I have to go back and re-implement X as Y.
Do this often enough and I have to WAIT for the slow coach to decide what he's going to implement from the original spec. before I can clone it on my platform.
Then there's the IBM type guys (I think EDS are the same, but I haven't personally had experience of them yet). I couldn't get them to code at all in any way. I'd receive a mountain of design documents for the most trivial of things, and a million excuses why it would take 10 years and more resources than we had. If I simply went ahead and coded their part, they'd send in the 'Rock Star Business Analysts' to claim it's spaghetti code and the distraction of it was the reason they couldn't code their part.
I've seen IBM do a hatchet job on a Danish software producer, so much that the Danish company refused to continue with the project. Yet I never saw an IBM guy deliver a single line of code that tackled a single problem. All they every did was produce meetings explaining what is wrong with the code (which was nothing but a few bugs they were hired to fix but didn't).
That's the other problem superstar programmers face, superstar bullshitters whose real agenda is to delay a project.
I often think there are superstars in every company, and the difference between a Google and a Microsoft is that one company can tell the superstar developer from the superstar bullshitter, the other can't.
We are better then you are because we choose a particular measurement to show that we a better then you.
The GDP is a good indicator but like most indicators they are not the big picture. The problems exist in the details, not the aggregated big number. Back during the Bush year the Stock Market was at a record high (S&P Dow Jones Nasdaq they are good indicators as well) But the details was in the fact they are high off of lies. So when the truth came out the collapsed. But during this high Republicans and Democrats were going Hey Things are going good! No the Democrats wanted to get power so they choose other indicators to show where the problem is, while the republicans show others to say things are great. But that is normal politics.
For complex problems like the economy I don't like to look at any particular number. You need to look at the details who are the the guys that are Upward forcing the GDP who are the guys lowering the GDP.
So for example you see that a few companies are the biggest player in your GDP, while you have a lot of small companies lowering it. It could be big trouble. as your economy is based on few company where they can do one mistake and kill your economy) However if you see that you have a lot of small companies raising your GDP and a few firms lowering it, then that gives you a stronger stance to weather a lot of problems.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Definitely a lot of organised crime in relatively strong Australian unions.
In the days of strong militant unions in New Zealand OC in unions was a big factor (surprising considering that New Zealand is nearly the least corrupt place on the planet), but unions were thankfully mostly broken in 80's, (with partial exception of waterfront), at the point where they had come close to destroying the economy with uncompetitive labour practices and the Labour govt of the time was left with no choice but massive reform.
And you really think that anybody here in Germany gives a fu*k about what an american credit rating company says about this country? What kind of reputation do you think they have here? Germany has NEGATIVE interest rates on short-term bonds, and lower interest rates that anyone else (US included) on 10 year bonds.
A low-level german factory worker with middle school education makes 50K a year, cannot be fired if not for just cause, can vote for 50% of the seats in the Council of Surveillance (what you call "board of directors" in america) so the company is substantially co-managed by workers themselves and shareholders have limited power compared to the US (yes, it's a semi-socialist system, and it works great!). And he/she gets complete and high quality healthcare coverage from the government, a generous pension benefit when he/she retires (67% of the last salary, and completely tax free), all paid for by a highly progressive tax system. Of course also education is free, college included.
Instead, if you're american, you live in a country where the richest 10% of the population has 70% of the wealth, and the remaining 90% are beggars brainwashed by trashy hollywood movies since birth. That's the "american dream", right? Just keep it.
That's okay, the banking executives in the United States caused the biggest recession in 80 years without a single criminal prosecution or even getting fired. When the people on top of the economy get their house in order, I'll start listening to their advice for curbing the excess of the working class.
They didn't have the budget for unit tests, realistic deadlines or an architect. They probably adopted "Agile" and had the project manager set all the deadlines, using the process mostly as a method of flogging the developers. And they probably never had clear requirements. You don't need rockstar developers to insure a project success. You don't even need rockstar managers. You just have to put some thought into the project, and that, sadly, is what's lacking in most of these badly-executed software projects.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
That plus there are always applicants who seem very smart and capable until they actually get to coding, at which point they will completely fall apart as their "years of experience with PHP" turn out to mean "I spent half an hour with PHP 3 back in 2001".
Coding tests won't allow you to perfectly gauge the coding abilities of an applicant but they will at least give you a rough idea on how familiar they are with the language and how they approach a problem in the time allotted. (Plus honesty; an applicant who starts out with "I don't know the language but I'm willing to learn it" leaves a much better impression than one who spends most of the test trying to find out how to display a string without ever having mentioned thay they have no clue about the language.)
I find that starting with a short general interview, then doing a coding test for an hour or so and following that up with another interview where you discuss what the applicant did and how they did it is a fairly reasonable way of doing things. You can see whether they're familiar with the language and how they approach the problem in general. I'd rather not try to hire someone without a test. (Look at me, less than two years of total work experience and I'm talking like I know what I'm doing. Startupish companies put you in weird positions...)
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
If you're not a rock star manager, you vastly overrate your ability to identify, attract, hire, and retain rockstar developers. You're far more likely to hire people who have massive egos who don't realize their own faults, and who can succeed in pulling the wool over your eyes because you don't know any better.
Rock Star Developers, seriously? None of them are that good.
Agreed. Rock Stars suck as developers. And most of them suck at rock, as well.
There's not great at astronomy either.
Get out of here with your 'logic' and 'sensible suggestions'! USA! USA! USA!
Seriously, though, I totally agree. I agree that welfare should not be a handout with no strings, but at the same time the helping hand should be there to help them change their lives to the point where they no longer need government assistance. Sometimes there are mental health issues that need to be addressed, or untreated medical conditions that aren't being adequately covered by our Medicaid/Medicare programs. Sometimes there needs to be skills training to make them more employable. The private sector can help as well; instead of exploiting the fact that the job market sucks by hiring these people into no-benefit, minimum wage jobs that nobody would take under normal circumstances, they could hire people into positions that have potential for raises and promotion based on hard work. I guarantee you that 99% of the jobs listed at your local unemployment office are dead-end garbage that only reward hard work with more hard work, and pay so little that frequently a person would be better off without the job at all. (At least then they might be eligible for Medicaid and have SOME health coverage.)
Your child care suggestion? You'd get laughed out of the room if you proposed that. The attitude is that they had the kids, it's their problem. They're literally being punished because they had children.
And yes, there are some who game the system to collect benefits without putting in any sincere effort. It's human nature for some people to want something for nothing (hell, it's probably human nature for all of us) but the baby shouldn't be thrown out with the bathwater. The system isn't perfect, but it's a damn sight better than the alternative.
Never underestimate the power of stupid people in large groups.
Except they/we are rockstars because they get the job done
The problem with rockstar developers is they often write code that mere mortals cannot read or maintain.
Sure, they can whip out version 1.0 or impressive enhancements quickly, but if it becomes a maintenance nightmare later, isn't the cost just being shifted from up front to later? Rockstar developers are often more trouble than they're worth.
Good, solid, dependable non-rockstar developers are better, in my experience, because they're more likely to write code that their colleagues can actually maintain later.
My brother used to work summers fixing lawn mowers for Sears. He was forced to join the Teamsters (fell under delivery, I guess).
The masthead for his monthly Teamsters newsletter looked like the dramatis personae for a mob movie. There were like 15 names, and every single one was Italian with a nickname in quotes in the middle. Crap like "The Knife" aand "Lefty".
If running for union leadership was a class in an MMO, the character creation sheet would have a line for "Enter nickname here. This is your mob handle and will show up in double quotes over your head between your first and last name."
(-1: Post disagrees with my already-settled worldview) is not a valid mod option.
Another key piece of why programming tests are useful: If you give out some relatively easy problems, you learn a lot by finding out not just whether the candidate can solve them, but what it took for them to solve it.
For instance, I recently gave a relatively simple problem to 1 developer who seemed competent from the resume and our phone conversation: She took a quick look over the problem, typed for about 3 minutes and showed me her completely correct solution. I gave the same problem to another developer who seemed competent: He hunted and pecked for 15 minutes, poked through some documentation, and wasn't completely on the wrong track when I cut him off.
When you get clear results like that, the decision of which candidate to hire becomes really really easy.
Oh, and never ask stock interview questions, that's just a waste of time. Much better to ask them to apply their purported knowledge and experience to situations that might arise in the job, and use their answers to extract out thought patterns and problem-solving approaches. The fakers get really obvious in these kinds of interviews, and also really clear is whether they take any pride in their work or have a personality problem which would make them an ineffective employee.
I am officially gone from
Rock Star Developers, seriously? None of them are that good.
Agreed. Rock Stars suck as developers. And most of them suck at rock, as well.
There's not great at astronomy either.
Tell that to Brian May! (http://en.wikipedia.org/wiki/Brian_May)
90% of everything is crap. Also, crap is relative.
The link between labor and organized crime is an important one but not for the reasons you want people to think.
The link between labor and the mob formed because US corporations had their own private armies that were able to gun people down. The labor movement in the US quickly turned violent and labor needed it's own muscle.
The mob is just the other side of the coin.
A Pirate and a Puritan look the same on a balance sheet.
I've had a few rock star developers on my projects in the past. And, when managed well they can make a project a breeze. But, if you let them run wild they will produce some of the most insane code you've ever seen. The big thing is simply to remind them that a much less experienced developer has to support the project after they move on and unless they want to be called at 2:00 AM when something breaks they should make it easy for an inexperienced developer to read. We do elegant coding where speed is needed (financial transactions) and we do less elegant/slow code where we simply need things to work. If you can keep driving these points home you can keep your projects sensible. Now on the other hand my employer often times chooses to hire some of the most inexperienced developers out there to do coding and has us senior engineers try to manage their work. The results vary quite a bit... I often times wished I had a rock star.
Indeed, the article is not actually talking about "rock stars" but about poaching senior developers. It is also quite possibly the most perniciously agist thing I have ever read. "People do their best work when their head is barely above water," huh? How about the "truth" that the person who's "slogged through it 100 times before" also knows where the pitfalls are? The entire article reads like a bad stereotype of crotchety old developers too arrogant to follow directions.
I sometimes ask revealing, often ignorant-seeming questions. Maybe they're harder to answer than you think.
The best outcome of a project I have ever been a part of was during a project for an unnamed automobile manufacturers website. The project was far behind when we came on and the original development group was let go. :-) We put together a group of a few "Rock Star" developers together with a group of experienced developers that we knew form previous projects would take direction and understood design. It was only because of the urgency of the project and the potential profit that management allowed us to form this group. We placed them in what we used to call the prison. They were not allowed contact with the rest of the project team (Business, Graphic Arts, PMs etc). I had short standup meeting with them every morning. Then the "Rock Stars" rocked away. They implemented an elegant, workable, well executed design. There were 12 of them when normally we would have used more like 25 or 30.
My point being they were real "Rock Stars". They could design and code. They were not above doing the actual work. The idea that there are only two kinds of developers: ivory tower academics who know UML and Patterns but can't code, and spaghetti coders who hack through crap but get it done, is the real problem. We hire everybody who can understand an if then statement as a developer these days. What needs to happen in the development business is that hiring managers need to learn that developers are not all equal and resumes can lie.
No sigs in BETA. Beta SUCKS.
One of the biggest problems with a capitalist system with a welfare safety net is that there is usually a dangerous gap between welfare coverage and financial independence. It doesn't do any good to be on welfare getting all the health care you need and then get a "real" job that offers no health benefit or a health benefit that you cannot afford. Another thing that Germany is doing well is their private health insurance system. It's actually similar to the US system under Obama, except that everybody pays the same percent of their income to fund the system. In the US programs like social security and medicaid tax the working and middle class, but incomes over $100k are not taxed. If the higher incomes were taxed for social security at the same flat rate then all people could enjoy a more secure retirement. As for health care, insurers in Germany are more regulated and can't just screw their policy holders like they do in the US.
Point is, welfare programs become a trap because making just enough money to no longer qualify for the aid will leave you exposed to so many economic barriers that you inevitably fall back into welfare whether wanting to or not. Someone on welfare may love to walk away with a job paying $40k+ per year, but maybe not so much if the job pays only $25k with bad work conditions, unflexible scheduling, no benefits, and the recipient has special needs children. In the later case I could understand why a single parent would try to game the system to stay protected by the welfare umbrella.
An alternative would be a form of socialism where everyone has a right and equal access to a baseline level of support, such as government hospitals and clinics, access to community gardens and food pantries, affordable housing projects, etc. When access to such basic needs is universal, then there is no counter-incentive to productivity. People may naturally prefer to work at a job or start a business to have nicer things in life than a subsistence serving of raw vegies, a half-day wait at a community clinic, a shared room in a dormitory, and mandatory 20 hours of labor for the able-bodied to qualify. Knowing that the safety net is available would encourage more lower-income and middle-class to take some risks in starting a business which is good for the economy as a whole. People might be motivated to save a reasonable amount of money - which is good, but also motivated to spend and invest, which also drives the economy. Such a system, however, cannot allow the able-bodied to just lounge and accept a passable existence. Those receiving the aid would have to also provide the labor, but it would ensure that "unemployment" would be virtually non-existant - there would only be those employed at the subsistence level and those employed independently.
Such a system doesn't necessarily make people "dependent" on the state, since they can attempt at any time under any circumstances to work independently to earn a higher standard of living without being fearful of earning too much and losing benefits, and they aren't "dependent" on the major corporations because they could always quit at any time, endure a short term on subsistence benefits, and then choose to work somewhere else or be self employed. The only risk to such a system is if the government outsourced the "management" of the system to some private for-profit corporation, which is how the US likes to do things.
I work in the entertainment industry and am a brother with an IATSE local. Our board of directors are all people who work and have established careers, our organizers and field reps are attentive and always available for questions, the union holds regular meetings and mixers, I have good wages and excellent benefits and even though our health plan's been taking a hit lately, the leadership's been very communicative and always has time to talk to people about the negotiations.
To each his own.
Don't blame me, I voted for Baltar.
This is why we, the Rest Of the World (ROW) should try to emulate what works best instead of shoving our heads in sands shouting WE ARE THE BEST. No one have absolute truth but some people do some things better and it deserve more recognition.
Tomorrow is another day...
Very insightful. Give them the means to help themselves, and assist them along the way. Make the process reward achievement and effort.
The alternative is to destroy hope, drop benefits quickly, punish initiative and keep them chained to the system. With no hope, crime soars and lives are wasted in a socioeconomic limbo.
I'm an American, and AC has it totally right. German labor dynamics are awesome. Union/mgmt relations in the US are almost inherently adversarial. It's about how best to screw the other guy, not how to succeed together. My dad has been a machinist (tool and die, now primarily CNC) for 40 years, and has worked in union shops and non-union shops. The union shops were only marginally better, if at all. The best shop he ever worked at (and has worked at for 20 years now) is a non-union shop, run by... Germans.
Look at Wall Street. The people who fucked the economy are still employed. Some of them gave up a fourth yacht. Boo hoo.
I like the free market when it works. Toyota eating Ford's lunch ten years ago? Awesome. Google taking the lead in search? Awesome. iPhone destroying Blackberry and Palm? Awesome. But clearly that kind of free market competition has been prevented from working properly in the banking industry.