Apr
08 Agile Software Development
	
      So it's been a while since I updated this. It's time for another book 
      report.
    
    
      I've been working through Agile 
      Software Development, by Robert C. (Uncle Bob) Martin, of Object 
      Mentor, Inc. This is not his latest work, and it was a long time in the 
      oven as it was, so the book is somewhat dated. A couple of the larger 
      examples are in C++ (which in on my backburner for now) and were written 
      before Agile, XP, or Test-Driven Development.
    
    
      But the beginning of the book is solid - the Principles on which he 
      measures "good" OO software, and the Practices (Agile, mostly XP) that 
      help to create it. This stuff is kind of like normalizing a data 
      structure - the really good DBAs know how to normalize anything, but 
      often don't in order to optimize something besides the remote chance 
      that data could be duplicated and then corrupted. Uncle Bob knows how to 
      write "perfect" OO software, but then tempers those design goals with 
      the real world of performance and maintenance. He is not lazy, and 
      doesn't encourage laziness. Instead, he points out the trade-off of code 
      complexity vs. great design, and chooses simplicity more often than not.
    
    
      I have a feeling that this book will bang around in my head quite a bit 
      as I write code, and as I go on to teach others to write code.
    
    
      Recommended, but not my highest recommendation yet. Looking forward to 
      the next one of his that I have: "Clean 
      Code."
    
    
      In the meantime, I have started The 
      Art of Agile Development, by James Shore and Shane Warden. Too bad I 
      don't work at or for a F1000 company - this stuff is excellent, but too 
      often irrelevant for just little old me.
    
    
      Updates on GUIs and Frameworks in the next post.
    
	Categories: Books