The idea is to drive innovation and make it a better workplace. So far, I think we're successful at both goals, but it may be a little bit early to tell on the second one. Doing this hasn't impacted delivery dates for normal business-driven projects.
We did put a couple of restrictions around it:
- If your team room really needs you (broken build, release problems, etc.), don't leave to work on your side project.
- You should work on a project with at least one other person.
- A "project" doesn't have to provide direct business value - it can be learning a new technology.
This works pretty well because we hired people who enjoy their work and don't need much supervision. Treating good developers like losers who won't do any work without constant monitoring is a great way to get the good ones to leave. (Until you're left with losers who won't do any work without constant monitoring.)
And yes, the idea came from the way Google treats its developers.