Devlico.Us
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @devlicious

Tim Barcz

Why use nails when a screw is the more reversible choice? Have Twitter, follow the conversation there at @timbarcz


Developer Book Club - Recommendations Needed

Today I tossed the idea of a developer book club out to the rest of my team.  They all seemed to be on board with varying degrees of enthusiasm.  I know that we won't be the first to try this and so I'm hoping some of you out there can share some stories/ideas of what worked for your team.

The goals are three-fold:

  • Team/community building
  • Common knowledge
  • Knowledge building/sharing

Specifically I'm looking for three things:

  • What books would be on your short list?  Which book should we start with?
  • What works well to keep people excited/enthusiastic?
  • What are the things we should absolutely stay away from, whether they be specific books or implementation details?

So let me have it, what advice can you share?  What can we do to make our book club a success?


Published Nov 18 2008, 07:37 PM by Tim Barcz
Filed under:

Comments

Derick Bailey said:

at my office, we've done Friday Lunch-N-Learn sessions for the last 2 years off-and-on. Everyone reads the same chapter every week, then on friday, the company buys lunch and we all sit around and discuss the chapter for 2 hours. it's worked really really well for our department. out of about 45 developers, we average around 15 in the session every week.

these are the books we have done so far:

* Code Complete 2nd Edition

* Design Patterns In C#

* Domain Driven Design

our next book, staring in the new year will be:

* Working Effectively With Legacy Code

and after that, we'll be doing

* Agile Principles Patterns and Practices in C#

if i were to re-order these books, i'd do Code Complete before DDD, and i'd do Legacy Code before Agile Principles and Patterns. the design patterns book can be important if your team does not know anything about design patterns already, but was primarily just reference material for us.

the most important aspect of our succes, though, is ensuring that everyone in the room knows that their opinion is valid and valuable - even if others disagree. repeat the mantra of "there are no wrong answers. there are no dumb questions" at the start of every meeting, until the team truly believe it.

it's also become important for our sessions to have a designated leader. in general, i took this duty for the Domain Driven Design book. another senior dev did the Code Complete book, etc. the "leader" is responsible for sending out the meeting request every week, announcing what chapter to read, and ordering the food for everyone. the leader is also responsible for leading the discussion down productive paths, related to the chapter. it's really easy for the sessions to turn into complaint-fests, and the leader needs to be able to redirect the conversation back to productive when it goes off track.

# November 18, 2008 8:56 PM

Michael Herring said:

These may be a bit too info-architecture / Semantic Web for backend developers, but they're damned interesting:

Hackers and Painters

Ambient Findability

Everyware

Everything is Miscellaneous

# November 18, 2008 9:07 PM

Tim Barcz said:

@Derick,

Great feedback.  So logistical question but who buys the books?  Does your company offer to buy them for people as they are learning or is it up to the developer?

How much did you typically assign to read in a week?  Was it straight by saying  a chapter per week, or was it more in fux given the content (ie. heavy material might be less where fluffy stuff would allow for more content to be covered)?

# November 18, 2008 9:14 PM

Jimmy Bogard said:

My story was similar to Derrick's.  Each book had a someone to lead discussions, mostly to make sure that discussions moved forward and we had good talking points.  The leader also might bring up examples from current applications to apply the knowledge.

We did:

- Pragmatic Programmer

- A technical ASP.NET book

- Framework Design Guidelines (we were shipping a public API)

- Agile Principles, Practices and Patterns

- Legacy Code

- DDD

Others we wanted to do included Code Complete and Head First Design Patterns.  DDD is a good book to do, but it'll require quite a few pieces in place before any of it makes any sense.  I'd suggest starting with the building blocks - PragProg, the Head First books, etc. to build a solid foundation.  DDD is a heavy, intense book that requires good OO understanding to know why it's needed.

# November 18, 2008 9:55 PM

sergiopereira said:

I suggested and my company has put all developers on O'Reilly's Safari bookshelf. We are about to start our own book club.

If I could I would like to have everyone in my team read all those thick and dense books we all know about, some already mentioned here. Unfortunately I think that would be a guaranteed way of killing the club half-way through the first book.

Instead I'm suggesting books that are relatively thin and engaging:

- High Performance Websites (Souders)

- Javascript, The good parts (Crockford)

- Ship It! (Gwaltney, Richardson) - not in Safari

- The Pragmatic Programmer

- jQuery in Action (b/c we are adding jQuery now)

# November 18, 2008 10:18 PM

BradO said:

Many good choices - Pragmatic Developer & Code Complete are 2 of my favorites....however I would start out a different way..."Dreaming in Code" - excellent story and easily relatable for most development teams

# November 18, 2008 10:55 PM

Tim Barcz said:

@Brad,

Literally started that book last night...and is sitting right here next to me.  I've wanted to read it since I got it for xmas last year.

Tim

# November 18, 2008 11:01 PM

Neil said:

I would go for opinionated writers who write well and will stimulate interest and debate.

As such the first text that comes to my mind is Object Thinking by David West. An excellent and provocative text that is engaging, and very opinionated.

Wish someone would do this in the London area!

# November 19, 2008 3:37 AM

Josh said:

I think the most important thing is to make the books interesting to the majority of your team. What are your teams weak points? Maybe concentrate on those. Really the key is to make the planning a team activity not a disctatorship.

I do not recommend reading metaprogramming books for months. There are only so many books you can read about patterns, pming, etc before the value wears off.

Personally these books are indespensable to me and I highley recommend them (of you can see where my interest lies:):

A Developers Guide to SQL Server 2005

www.amazon.com/.../0321382188

Pro ASP.NET 3.5 Server Controls and AJAX Components (Pro)

www.amazon.com/.../ref=sr_1_6

Advanced ASP.NET AJAX Server Controls

www.amazon.com/.../0321514440

# November 19, 2008 10:19 AM

zhaorui said:

these is best for dummies or newpie

O'Really Head First Series(Java, C#, Design)

Now, I reading the The Definitive Guide to Microsoft Enterprise Library

My Next book list is

the code complete

design pattern in C#

# November 19, 2008 11:41 AM

Ronald S Woan said:

I'll be controversial and suggest two non-development books that I used for a mandatory education program for my engineering teams at IBM:

How to Be a Star at Work  (crappy name awesome content) ISBN-10: 0812931696

The Innovator's Solution  ISBN-10: 1578518520

99% of the problem is not knowing the game or building the right product as opposed to building it well. And agile developers often still miss the boat having the wrong customers dictating the product decisions.

Finally for a book in our field, I think Eric Evans Domain-Driven Design ISBN-10: 0321125215 is a true eye opener that got me back on track with what I think the roots of OO really are as opposed to the language artifacts and derived IT designs that we practice.

# November 19, 2008 2:41 PM

Tim Barcz said:

@Ronald

Thanks for the suggestion of the "How to Be a Star a Work", I've never heard of that one.

On the DDD front, I'm curious about this choice given how many people say they struggle with that book.  Is that more of an architect book versus every developer book?

# November 19, 2008 2:50 PM

Ronald S Woan said:

If you are going the agile route, I suspect there will be little to differentiate architects from developers other than experience.

I would highly recommend DDD before the others on the theory it is incredible to unlearn bad habits compared to not having developed them before hand.

I think DDD would be a good match for About Face 2.0 ISBN-10: 0764526413 if you guys do any UI development.

And then the rest, I would put Refactoring ISBN-10: 0201485672 at the top of my pragmatic list before any Design Patterns or agile books because it really sets the context of both the possibilities and limitations of evolutionary design and design through development.

# November 19, 2008 3:04 PM

Peter Seale said:

I sent you some tweets about this. After reading everyone else's comments, I'll just reiterate that Object Thinking by David West is "book club poison." Although I will again mention that I like the book.

# November 19, 2008 3:23 PM

J.P. Hamilton said:

(@Peter - didn't know you got around so much)

I think my short list would be something like this:

Prag. Prog.

Agile Principles Patterns and Practices

Clean Code

Refactoring

# November 19, 2008 3:40 PM

Tim Barcz said:

@JP

In that order?  So what I'm wanting to avoid is scenarios where we the books we read end up losing people.  I'd rather read Prag. Programmers as a group even if that means two guys have to reread it since they've already read it.  I think there is value in the common knowledge, everyone has a common basis then to move forward from.  Or is this just a pipe dream?

# November 19, 2008 3:55 PM

J.P. Hamilton said:

@Tim

No, I don't think it's a pipe dream at all. I have been trying hard to figure this stuff out, too. That is, how I can bring a group of devs to same level.

I would read the books I listed in the same order. PP gives you DRY, YAGNI, and a bunch of other good foundational...thought modes? APPP will give you the SOLID principles. This makes for a very good foundation I think.

Clean Code and Refactoring are very complimentary. These books will really help you simplify your classes. Refactoring had an especially profound effect on my coding style.

At this point, I think you would be at a place where everyone could write testable code effectively, so you could move on to some good TDD or design pattern books.

I think that combining a code dojo with a book club would even enhance what you are trying to do. I will be doing something similar very shortly so I will let you know if it works out.

# November 19, 2008 4:47 PM

RhysC said:

in order of chronological reading, not importance, my short list would be

(If it was for a team)

Implementation patterns

Pragmatic programmers

PoEAA

DDD

if it was for a interested developer i would switch Code Complete for the Implemetation Patterns

# November 20, 2008 3:12 AM

Doug Ferguson said:

Head First Design Patterns

DDD

Agile Principles Patterns and Practices

Working Effectively With Legacy Code

Refactoring

PoEAA

Code Complete

Analysis Patterns can be useful, esp if your problem domain falls under one of the covered topics

# November 21, 2008 9:48 AM

Derick Bailey said:

@Tim

My company buys the books and pays for the lunches that we have during the sessions. It's part of the training budget that we put into the yearly budget for the department. We buy 20 copies of whatever book we are doing, well in advance of that books' class actually starting.

depending on the chapter size, we typically limit to 1 chapter a week. for some of the larger DDD chapters, we split into two weeks, though. There were also a few Code Complete chapters that got doubled up because they were very small.

# November 21, 2008 10:28 AM

Zach Young said:

Tim

We have started a virtual book club with the book "Agile Principles, Patterns, and Practices in C#".  For more information you can go to the Austin Tech Book Club group on Google groups.google.com/.../austin-tech-book-club.

# November 22, 2008 12:04 PM

Sean Kearon said:

Anything Fowler certainly UML Distilled for all levels, even (especially!) newbies.  (Surprised that there are no references other than Billy McCafferty's post in the link above)!

Steve McConnell - Code Complete, RAD.

Gang of Four - Design Patterns n(again, few references to this...why?!?!?)

# November 22, 2008 6:15 PM

RhysC said:

@Sean:

I think there are few references to GoF due to the fact it is so heavy weight. There are many pattern books BASED on GoF that are much easier to read and absorb for devs new to patterns. I have GoF but I dont recommend it too people new to patterns. Its too hard a read. (IMO)

Obviously with out it ther would not have been the more user friendly version like Head First etc

# December 1, 2008 7:49 AM

RhysC said:

@Sean:

I think there are few references to GoF due to the fact it is so heavy weight. There are many pattern books BASED on GoF that are much easier to read and absorb for devs new to patterns. I have GoF but I dont recommend it too people new to patterns. Its too hard a read. (IMO)

Obviously with out it ther would not have been the more user friendly version like Head First etc

# December 1, 2008 7:52 AM

Brig Lamoreaux said:

Book List:

Head First Design Patterns (Freeman, Freeman)

High Performance Web Sites (Souders)

Essential ASP.NET (Fritz Onion)

Study Method:

Each week assign one person to summarize a chapter. Each team member reads the chapter and contributes to the discussion.

Avoid:

Too much reading each week. People are busy. Learn in easy bit sized portions

Good Luck!

# December 8, 2008 12:14 PM

Sean Kearon said:

@RhysC - Thanks for the response.  I've never tried looking at many other pattern books other than Fowler and Gof...I'll give Head First, a go.  Anything that's clear and accessible is good!

# December 17, 2008 3:20 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add
Check out Devlicio.us!

Our Sponsors

Proudly Partnered With