It’s time to recommend some books, for we should prepare some soft skills to become an agile developer and work more effective and efficient. All three books don’t have code, and will not explain the programming technology, they focus on engineering practices, people in development process, etc. I have finished book 1) and 2), and I am reading 3).
1) <The Pragmatic Programmer: From Journeyman to Master>, 5 stars in Amazon.
Hunt and Thomas vastly exceeded my expectations. This book is never dry, often humorous, and always educational. They don’t always say what you expect them to say (e.g., about commenting code), and I didn’t always agree with them, but every sentence is full of thoughtful analysis.
One of the best features is their incredibly practical advice — while yes, this book does teach philosophy and encourages thought, it also provides many immediately-implementable suggestions.
Chinese version: http://www.amazon.cn/%E7%A8%8B%E5%BA%8F%E5%91%98%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93-%E4%BB%8E%E5%B0%8F%E5%B7%A5%E5%88%B0%E4%B8%93%E5%AE%B6-%E4%BA%A8%E7%89%B9/dp/B004GV08CY/ref=pd_sim_b_2
2) <Practices of An Agile Developer: Working in the Real World>, 5 stars in Amazon
In my own work, I am struggling with various agile vs. non-agile practices, but sometimes it can be hard to see why a non-agile practice is worse in the long run than an agile practice. This books goes a long ways toward identifying the problems with non-agile practices by identifying an agile practice, then showing the benefits of following it as well as the result if it isn’t followed. Throughout the book, a little angel and a demon show up-the angel illustrating a “good” practice, and the demon illustrating a “bad” practice. This makes the book a fun read and I think really helps in illustrating the authors’ points.
Chinese version: http://www.amazon.cn/%E9%AB%98%E6%95%88%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%8445%E4%B8%AA%E4%B9%A0%E6%83%AF-%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93-%E8%8B%8F%E5%B8%95%E6%8B%89%E9%A9%AC%E5%B0%BC%E4%BA%9A%E5%A7%86/dp/B0033WSFAO/
3) <Team Geek: A Software Developer’s Guide to Programming Well with Others>, 5 stars in Amazon
Brian Fitzpatrick leads Google’s Data Liberation Front and Transparency Engineering teams. Ben Collins-Sussman is one of the founding developers of SVN and now manages the engeneering team for the Google Affiliate Network. The Book has a clearly defined goal – to help programmers become more effective and efficient at creating software by improving their ability to understand, communicate with, and collaborate with other people.
And that is the essence of this book. It explains why each relationship (not only related to Software projects) should be based on Humility, Respect and Trust (HRT).
Chinese version: http://www.amazon.cn/%E6%9E%81%E5%AE%A2%E4%B8%8E%E5%9B%A2%E9%98%9F-%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%B8%88%E7%9A%84%E5%9B%A2%E9%98%9F%E7%94%9F%E5%AD%98%E7%A7%98%E7%AC%88-%E8%8F%B2%E8%8C%A8%E5%B8%95%E7%89%B9%E9%87%8C%E5%85%8B/dp/B00BLZMG8W/