I personally like:
Agile Modeling (by me) for modeling
Extreme Programming Explained for XP
Agile Software Development for a good foundation
But, as always, it depends on your situation. ;-)
Unfortunately many technical people only want to learn about technical things/products, such as Hibernate, but never take the time to learn the fundamentals behind them (in this case
O/R Mapping). As a result they think that they've discovered something new when they first start using that thing/product, or worse yet continue to make the same mistakes as they did in the past when they're adopting a new technology (e.g. Ruby) when they "discover" that you need to save objects into RDBs once again. My point is that learning some fundamental skills such as effective modeling or what's in Alistair's book is likely a very good career-enhancing move.
- Scott
<a href="http://www-306.ibm.com/software/rational/bios/ambler.html" target="_blank" rel="nofollow">Scott W. Ambler</a><br />Practice Leader Agile Development, IBM Rational<br /> <br />Now available: <a href="http://www.ambysoft.com/books/refactoringDatabases.html" target="_blank" rel="nofollow">Refactoring Databases: Evolutionary Database Design</a>