Books
Making Work Visible
by Dominica DeGrandis
Refactoring
by Martin Fowler
Second Edition
due out Fall 2018
Refactoring to Patterns
by Joshua Kerievsky
Working Effectively With Legacy Code
by Michael Feathers
Java for the Impatient
by Cay Horstmann
Articles
Why Getter and Setter Methods Are Evil
by Allen Holub
Looking at TDD: An Academic Survey
by Ted M. Young