Seriously, is this a good idea?
Is it reasonable to instruct your team to read certain books - outside of business hours!
Before you write me off as a crackpot, bear with me...
I head a medium-sized team (6 developers and 5 testers).
We have quite a well documented software dev process that we adhere to most of the time.
In order to avoid stagnation within the team, and to inject new ideas / methodologies, what usually happens I either get in expert training on a particular topic (usually 1 week per year) or I introduce a change to the dev process (after suggestion, research [mostly online by me] and discussion).
I should add that the expert training is usually decided upon by me (mostly after online research).
I'm not getting the feedback from my team that I expect regarding evolving the software dev process - and I'm sure it's by no means perfect.
What I want to do is broaden the team's horizons - get them to think outside the comfort zone that they occupy and contribute radical (or even incremental) improvements to the way we work.
In an ideal world - they would inspire me.
I have a reading list that I try to work through when I can find the time (a lot of the time from bed!)
I got to thinking that since we are a team of 11 (I'm one of the devs as well as the lead) then we should be able to read 11 times as many books if we all read simultaneously.
At the next team meeting, I want to propose a library of books that we as a team must work through.
Everyone on the team must take a book and read it cover to cover.
Team members will then (at some later date) give a short (10-15 minute) presentation on the best ideas of the book.
The guiding principle when reading the book will be to find nuggets / ideas / new paradigms / whatever that can be incorporated into the team's software development process document.
As a bonus, (hopefully) the individual will get to learn something new and ideally develop a renewed interest in their career.
Is this madness, or might it just work?
There's dozens of lists online (including one on Jeff Atwood's Coding Horror).
Below is a list I've started...
Code Complete
Writing Secure Code
The Pragmatic Coder
Clean Code
Art of Unit Testing
Working Effectively with Legacy Code
The Mythical Man-Month
Refactoring: Improving the Design of Existing Code
Test Driven Development: By Example
Test-Driven Development: A Practical Guide
Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs
Rapid Development: Taming Wild Software Schedules
Software Estimation: Demystifying the Black Art
More About Software Requirements: Thorny Issues and Practical Advice
Beautiful Testing: Leading Professionals Reveal How They Improve Software
EDIT:
Ok, enforced reading is bad mm-kay...
I will:
- Present a suggested reading list
- Request additions to the list
- Request people to nominate books they will read (if they want) [they need to nominate so we can buy the book]
- Request a short presentation on completed books
- Discuss how we can include this in our dev process