Steve Yegge, who works at Google, has a blog post entitled Good Agile, Bad Agile
which has a lot of really interesting bits. The first is his take on the origin of Extreme Programming where he writes
So some of the consultants began to think: "Hey, if these companies insist on acting like infants, then we should treat
them like infants!" And so they did. When a company said "we want
features A through Z", the consultants would get these big index cards
and write "A" on the first one, "B" on the second one, etc., along with
time estimates, and then post them on their wall. Then when the
customer wanted to add something, the consultant could point at the
wall and say: "OK, boy. Which one of these cards do you want to replace, BOY?"
Is it any wonder Chrysler canceled the project?
the consultants, now having lost their primary customer, were at a bar
one day, and one of them (named L. Ron Hubbard) said: "This
nickel-a-line-of-code gig is lame. You know where the real money is at? You start your own religion." And that's how both Extreme Programming and Scientology were born.
The link which explains that Chrysler cancelled the project where a lot of the Extreme Programming and Agile Methodology hype started is on Wikipedia so for all I know that clarification may be gone by the time you read this post. Unfortunately in trying to track down the details in more permanent location all I can find is a USENET thread and more wiki entries. That's pretty interesting, that XP and Agile resulted in a failed software project in the original project where it all started.
There is also some stuff about working at Google where he writes
From a high level, Google's process probably does look like chaos to
someone from a more traditional software development company. As a
newcomer, some of the things that leap out at you include:
- there are managers, sort of, but most of them code at least half-time, making them more like tech leads.
- developers can switch teams and/or projects any time they want, no
questions asked; just say the word and the movers will show up the next
day to put you in your new office with your new team.
- Google has a philosophy of not ever telling developers what to work on, and they take it pretty seriously.
- developers are strongly encouraged to spend 20% of their time (and I mean their M-F, 8-5 time, not weekends or personal time) working on whatever they want, as long as it's not their main project.
- there aren't very many meetings. I'd say an average developer attends
perhaps 3 meetings a week, including their 1:1 with their lead.
- it's quiet. Engineers are quietly focused on their work, as individuals or sometimes in little groups or 2 to 5.
- there aren't Gantt charts or date-task-owner spreadsheets or any
other visible project-management artifacts in evidence, not that I've
- even during the relatively rare crunch periods,
people still go get lunch and dinner, which are (famously) always free
and tasty, and they don't work insane hours unless they want to.
For some reason this reminds me of Malcolm Gladwell's The Talent Myth which is excerpted below
This "talent mind-set" is the new orthodoxy of American management. It
is the intellectual justification for why such a high premium is placed
on degrees from first-tier business schools, and why the compensation
packages for top executives have become so lavish. In the modern
corporation, the system is considered only as strong as its stars, and,
in the past few years, this message has been preached by consultants
and management gurus all over the world. None, however, have spread the
word quite so ardently as McKinsey, and, of all its clients, one firm
took the talent mind-set closest to heart. It was a company where
McKinsey conducted twenty separate projects, where McKinsey's billings
topped ten million dollars a year, where a McKinsey director regularly
attended board meetings, and where the C.E.O. himself was a former
McKinsey partner. The company, of course, was Enron.
"We had these things called Super Saturdays," one former Enron manager
recalls. "I'd interview some of these guys who were fresh out of
Harvard, and these kids could blow me out of the water. They knew
things I'd never heard of." Once at Enron, the top performers were
rewarded inordinately, and promoted without regard for seniority or
experience. Enron was a star system. "The only thing that
differentiates Enron from our competitors is our people, our talent,"
Lay, Enron's former chairman and C.E.O., told the McKinsey consultants
when they came to the company's headquarters, in Houston.
Among the most damning facts about Enron, in the end, was something its
managers were proudest of. They had what, in McKinsey terminology, is
called an "open market" for hiring. In the open-market
system--McKinsey's assault on the very idea of a fixed
organization--anyone could apply for any job that he or she wanted, and
no manager was allowed to hold anyone back. Poaching was encouraged.
When an Enron executive named Kevin Hannon started the company's global
broadband unit, he launched what he called Project Quick Hire. A
hundred top performers from around the company were invited to the
Houston Hyatt to hear Hannon give his pitch. Recruiting booths were set
up outside the meeting room. "Hannon had his fifty top performers for
the broadband unit by the end of the week," Michaels, Handfield-Jones,
and Axelrod write, "and his peers had fifty holes to fill." Nobody, not
even the consultants who were paid to think about the Enron culture,
seemed worried that those fifty holes might disrupt the functioning of
the affected departments, that stability in a firm's existing
businesses might be a good thing, that the self-fulfillment of Enron's
star employees might possibly be in conflict with the best interests of
the firm as a whole.
Interesting juxtaposition, huh? I've talked to people who've come to Microsoft from Google (e.g. Danny Thorpe) and it definitely is as chaotic as it sounds there. For some reason, the description of life at Google by Steve Yegge reminds me a bit of Microsoft where there were two huge money making projects (Office & Windows in the case of Microsoft and AdWords & AdSense in the case of Google) and then a bunch of good to mediocre projects full of smart people dicking around. Over the years I've seen a reduction of the 'smart people dicking around' type projects over here and more focus on shipping code. I suspect that it's just a matter of time before the same thing will happen at Google as investors seek a better return on their investments once they hit their growth limits in the online advertising space.
There's just one more thing that Steve Yegge wrote that I want to comment on, which is
The thing that drives the right behavior at Google, more than anything else, more than all the other things combined, is gratitude.
You can't help but want to do your absolute best for Google; you feel
like you owe it to them for taking such incredibly good care of you.
I remember interning at Microsoft five years ago and hearing someone say how grateful he was for "the things Microsoft has done for me" and thinking how creepy and cult-like that sounded. A company pays you at worst 'what they think they can get away with' and at best 'what they think you are worth', neither of these should inspire gratitude. Never forget that or else you'll be on the road to heartbreak.