I had this experience working at Google. I had a horrible time getting anything done there. Now I spent a bit of time evaluating that since it had never been the case in my career, up to that point, where I was unable to move the ball forward and I really wanted to understand that. The short answer was that Google had developed a number of people who spent much, if not all, of their time preventing change. It took me a while to figure out what motivated someone to be anti-change.
The fear was risk and safety. Folks moved around a lot and so you had people in charge of systems they didn't build, didn't understand all the moving parts of, and were apt to get a poor rating if they broke. When dealing with people in that situation one could either educate them and bring them along, or steam roll over them. Education takes time, and during that time the 'teacher' doesn't get anything done. This favors steamrolling evolutionarily :-)
So you can hire someone who gets stuff done, but if getting stuff done in your organization requires them to be an asshole, and they aren't up for that, well they aren't going to be nearly as successful as you would like them to be.
The other risk is of course the people who 'get a lot done' but don't need to. Which is to say they can rewrite your CRM system and push it out to the world in a week but only by writing it from scratch.
But hey, the CEO had sold a previous company for good money so this means he knows what he's doing. I'm sure they'll be a huge success.
I'm not saying that I'm God's gift to college-dropout programmers, but I'd never had a problem succeeding in a job until this one. In reaction to this state of affairs I had considered that maybe I need to be at a huge company that has better processes, but your Google tale says maybe otherwise.
I was able to land a gig with a small shop doing work for some incredible clients filled with brilliant people that know their product back-to-front and management that polls the developers for input throughout the project life cycle. Needless to say I've never been happier.
You've sort of nailed it. Also what I see is, how much people are addicted to the NIH syndrome. They have a ways of working which they won't change, adapt or even agree debate for their own good.
The way I see, too much or too little process are both equally dangerous. The key is neither to over play nor under play the game. Too little management leads to wandering in the wild with no goals, plans, tracking and destination. Often overly delayed projects.
Too much management gets in the way of achieving what would have been even easily possible.
After all the analysis I can say, sure you may want to hire every smart guy on the market. But you must also know to manage them. Bunch them together, create a positive environment and enable them to be as much productive as they can be. Good people need to be taken care of, Senior developers/architects even though not managers need to have some people skills. Its simple, if interacting with people is a part of your job.. People skills become part of your job.
To be good alone is not sufficient, if you are good alone you can probably get a maximum of 9 hours worth of job done everyday. But if you can manage 10 such brilliant guys you can deliver 90 hours of such work every day. But that requires spotless planning, tracking, course correction and most important creating an environment where such people can be productive.
Nothing big in software these days can achieved without team work. If a person is not good with teams, may be its time for him to look somewhere else. Being a jerk, rude and arrogant with junior developers may help you give a false sense of superiority but that won't bring you success.
I think you nailed it here. But something to realize is that this is not unique to Google, this is true in any large corporation.
The issue is that as people develop careers within the corporation, they become interested in what is most politically expedient for said career. This means they become very averse to any situation where the individual might personally look bad.
This means that aggressive projects which could have a high level of reward and equivalent risk for the company get waylaid disproportionate to their overall risk/reward ratio.
I think your point about people not understanding the systems that they are working on compounds this idea, as it makes the risks of changing a system appear higher (because they do not know the system).
A start-up environment and Skynet are quite different with different objectives.
So very true. I'm in this situation at my current job: I was hired as a dev, was told to fix organisational things by senior management and am now meeting resistance and roadblocks for various reasons. I'm a dev, and I'm not an asshole, and I also have no authority to steamroll people. At first I felt empowered but lately I've just felt bogged down. It's a sucky feeling.
It pretty much depends on what are you looking for: a procedural executant or a project developer. A project developer can execute very well for the first couple of times, but expect from one to get bored with the same speed.
You have to find the right tasks for these "very smart people" instead of hiring them to do the wrong job. The alternative is to hire really dumb people, at least they'd never be able to do anything more or better than what they're told.