By now, all of you know that Google is THE company where bright people want to work. Just look at what Peter Norvig, (arguably) the best AI expert in the world, says in his rÃ©sumÃ©:
Note to recruiters: Please don’t offer me a job. I already have the best job in the world at the best company in the world.
While reading Steve Yegge’s blog today on Good Agile, Bad Agile, I came across his description of how software developers work at Google:
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 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.
… which I summarise by saying that at Google, software developers are treated as intelligent human beings and are encouraged to create and have fun at the same time.
Now I understand why the brightest want to want there!
As a Lecturer, I find it rather disturbing that we tend to train students otherwise. Could we
- Act as tech leads who actually participate in the software development process together with the students?
- Let students move from project to project until they feel comfortable?
- Let the students come up themselves with interesting projects to do?
- Encourage them to use 20% of their time to work on something personal?
- Socialise more?
Can this work? Or will the students just take us all for a ride? Will students stop respecting us if we socialise too much? Will students be able to come up with interesting projects to do? Or will they just Google up something already done and copy paste from that?
Are we ready to act as intelligent people?