Tuesday, March 25, 2008

A reading list for our developers

An idea I'm thinking of trying to get implemented at our place is a required reading list for all our developers. A collection of books that will improve the way that developers think about their code, and they ways in which they solve problems. The company would buy the books as gifts to the employees, maybe one or two every three months.

Some questions though:

  • Is it fair for a company to expect its employees to read educational material out of hours?

Conversely:
  • Is it fair for an employee to expect to be moved forward in their career without a little bit of personal development outside the office?


If anyone has any books out there that they'd recommend - please let me know. Otherwise, here's my initial ideas - the first three would be in your welcome pack:

Update:Gary Myers came up with a good point, being that any book should really be readable on public transport. That probably rules out Code Complete (although I read it on the tube, I can see that it's a little tricky), but Design Patterns and Refactoring to Patterns are small enough I reckon.

Unfortunately, Code Complete is a really good book that gives a lot of great, simple, valuable advice. Does anyone out there have any other suggestions for similar books?

Update 2:Andy Beacock reminded me of Fowler's Refactoring, which really should also make the list.

Update 3:The development team have bought into the idea and the boss has been asked. In fact, I'm pretty pleased with the enthusiasm shown by the team for the idea. I can't see the boss turning it down. Interestingly though, someone suggested that Code Complete go onto the list...

In this order:


Ruled out because of their size:

9 comments:

SydOracle said...

I wouldn't have a problem with reading educational books in my time. But heavy volumes can be a real pain on public transport.
Also consider a way of circulating articles, white papers and presentations.

Andrew Beacock said...

What about Fowler's classic "Refactoring"?

I'd also add Peter Drucker's "The Effective Executive" and no it's not a business book, Drucker considers any thought worker to be an executive.

Andrew Beacock said...

Also check this post out for other ideas:

http://feeds.feedburner.com/~r/MusingsOfASoftwareDevelopmentManager/~3/256820009/

Rob Baillie said...

Nice one Andy - Refactoring gets my vote too.

I've not read "The Effective Executive" though, maybe that should hit my own reading list...

Anonymous said...

The latest Harvard Business Review touches on your questions in an article discussing the tension between training and promotion in-house and hiring from outside.

What I took away was that absolutely you can ask staff to contribute to the learning process through use of their own time (or possibly even more than that) since there is no obligation on you to develop them in this way in the first place. You just need to make sure it's opt-out.

For new hires, I'd ask the question in an interview ('We have a scheme where the company provides books from a standard reading list for free. If you take the sceme up you're obviously expected to read them in your own time. If you join us would you be interested?'). Anything less than enthusiasm for the idea is probably a red flag since who wouldn't want free books?

Rob Baillie said...

Good points Phil. I'll have to check out that HBR article.

You're right. I shouldn't have been surprised when the team were up for the idea - after all, if they were the type of people to shirk such ideas we wouldn't have hired them in the first place.

It's funny though, having spoken to people outside of software development, even those for whom I have a lot of professional respect, there seemed to be a general opinion of "you can't really ask your team to do that". Maybe it was just the particular people I spoke to; maybe there's a more general apathy in the rest of the working world?

Stew said...

I don't think it's unreasonable to expect your programmers to read, or at least skim, one new book every 3 months.

As a software developer with 25 years under my belt (but I'm not a software engineer), I've felt for a long time that if you're not constantly learning new things about this craft, then you're falling behind. Subscribing to computer mags is one thing, but scanning the web for new tools and ideas about your specific work is a must-do. And reading significant works by solid authors is another. I still refer people to "The Mythical Man-Month", which sits on my office bookshelf.

Rob Baillie said...

Stew, it seems the team agree with you and have got into the idea with gusto.

There's a chance that we might have to turn up the dial a little and hand out more than was originally planned.

flip said...

This is a great list, and it's gotten me to finally toss Fowler into my Amazon checkout queue.

I found the GoF "Design Patterns" book rough going without some accompanying exegesis -- I'd put the HeadFirst book next to it as a twofer.

I'd add "Envisioning Information" by Tufte.