Steve talks about the development environment at Google, where:
- 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 ever seen.
- 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.
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 feellike you owe it to them for taking such incredibly good care of you.Makes sense, but only because they can get top talent, who are good at what they do, and take pride in their work. You see the opposite in beaurocratic systems, such as state government, and it's a vicious cycle: the employees aren't rewarded, so don't produce, which leads to people doing the minimum, new employees wondering why their co-workers are such slackers, and then learning that the minimum is acceptable.
Lots of other good tidbits in the piece. Google schedules meetings during the middle of the day, so people can either come in early or stay late and have long stretches on uninterrupted development time. He mentions that "the whole code base looks the same, so switching teams and sharing code are both far easier than they are at other places." In other words, they've established strong systems that contribute to sustainability. This is something I've been really trying to drive home at my new job, with this new VISTA project. We need to document things, create systems, and develop institutional practices. VISTA stresses capacity building, and w/o these things in place, you can't implement systemic, long term changes.
Perhaps most interestingly, he mentions how they don't have deadlines. Of course, one of the reasons this works is that they have dedicated employees, who want to see the results of their endeavers. They're not motivated just by a check (though they know if they do well, they will be rewarded), but they have high personal standards and they seek recognition from their peers. There's also a good bit about how they do work queues - just long task lists, and they knock items off of it. (Which is simliar to getting things done.)