#TL;DR:
TL;DR:
#Examples:
Examples:
Work on your own projects
###Work on your own projects I'veI've worked in an environment where we tested this idea and it worked quite well for a while. We dedicated every friday to this and interesting projects came out of it ranging from little libraries to full-blown test frameworks. In some way or another all of those projects even helped the company we worked for at the time, even though there was no mandate that it had to be for the company.
Select projects from a list provided by the company
###Select projects from a list provided by the company InIn another team, this was fun too. We were able to influence the list some and had a good time working on the projects alone as well as in teams.
Work on whatever piece of existing software you think needs work
###Work on whatever piece of existing software you think needs work ThisThis is what the company of a friend of mine do. They have 'hackathon days' where team members get to work on their product, improving whatever they want. It only has to be finished by the end of the hackathon - for the presentation.
#Features:
Features:
Motivation
###Motivation WorkingWorking on your own projects, bits that you really want fixed/refactored from your daily work or similar things at your own pace and direction is very rewarding to a lot of programmers.
Getting out of the box
###Getting out of the box ItIt sparks creativity, thinking through a whole stack, planning and coordinating with other team members and possibly presentation skills.
Extending/Spreading knowledge
###Extending/Spreading knowledge OftenOften people worked together on projects to learn from or with each other new skills, technologies or libraries.
Improvements to company products or assets
###Improvements to company products or assets AlmostAlmost everything I've ever seen done in this kind of environment eventually proved useful to the company.
#Benefits:
Benefits:
To the team
###To the team TeamsTeams tend to work together better and be more resilient to unexpected sick days or similar loss of resources. Team members usually feel happier, more fulfilled by their work and better in general. Even what could be called rivalries or outright wars within teams sometimes can be reduced or turned around by this.
To the company
###To the company ManagementManagement can plan better, because bottlenecks (at least skill- or knowlege-wise) reduce. Quality of work delivered often improves, from continuous peer-review by teaming up and from thinking outside the box which leads to new and unexpected connections and (warning: buzz-word) synergies. Not to mention the benefits from improved culture and greater perceived happiness with the job, which also carries over into other teams and completely unrelated departments.
#Source: