Working for Google

I was reading the latest posting on Stevey's Blog Rants talking about Agile programming, frankly I was skimming it but then came across the section called "The Good Kind" where he describes the environment at Google where he works. It sounds like a developer's dream...

- 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.

And there's a lot more, go have a read, it's a long old boy of an article so you'll need 10 or 15 minutes. I was wondering whether that sort of approach to development would work in a more traditional environment, like an insurance company or a bank. Now obviously there are certain things which just have to be done as they are regulated in the financial services industry but I think a lot of the more peripheral projects which are not business critical (normally the sort of things I work on being a Domino developer) could benefit a lot from this style.

It would take a manager with enourmous cojones because he would inevitably take a beating from his bosses but in the medium to long term the pay-off would be great. I'll give you my reasons but guess other's might disagree...

Generally the developers on a project will have better ideas for what an application actually needs than the owners of that application. Once the business process is understood (often the business don't even know this part which is just scary) the developers by their natures will be organising the application around the best workflow, ideas and so on because, assuming the right incentives are in place, they'll have a good reason to. Even the "boring" tasks would be made attractive if the project team is given autonomy over the what, how and when elements.

Of course there are problems, Google hires the best people who are well motivated before they even arrive, but whenever I struggle with motivation for a project it's usually because there are crappy political struggles going on, or the whole approach is wrong and I have no control over redirecting the deliverables, it's not because the underlying development doesn't hold some attraction.

The biggest challenge in all of this is to find a manager and a company where it would be allowed. Now I wonder if Google are looking to hire a Domino developer?