Essential Skills For The Agile Developer: A Guide To Better Programming And Design 2011