Agile Software Development Chapter 5 Prime generator example code refactoring