Growing object-oriented software, guided by tests - Freeman, Steve (Addison-Wesley, 2010)