During ObtivaCon, I had a twitter conversation with Dave Hoover, the Chief Craftsman at Obtiva about marinating a focus on quality and continuous improvement in hostile/dysfunctional environments (not trying to say anything about my current or past places of employment ;). He recommended the book Apprenticeship Patterns, or should I say he pointed out that this topic is covered in his book.

So, I picked it up and am glad I did. Finished reading it last night and intend to revisit it in 6 months. There is not a single line of code in the book. It is all about the journey of software development as a career path that doesn’t lead into management.

The content is presented as advice to a newcomer to the craft of software development and attempts to establish a pattern language for hard won lessons. The content is strongly influenced by the Software Craftsmanship movement and makes heavy reference to Pete McBreen’s Software Craftsmanship: The New Imperative.

If you are interested in checking it out the entire book has been made available online by O’Reilly.


 
Categories: Books

I started reading Apprenticeship Patterns today after Dave Hoover suggested it to me during a Twitter conversation while he was attending ObtivaCon. It’s a great read so far, I wish someone had handed it to me 10 years ago. Here are some choice quotes thanks to my handy Kindle.

 

Apprenticeship makes a difference because it instills a lifelong passion to master the craft. It instills a passion for perpetual learning and, in the process, enables the apprentice to become a great developer. --Pete McBreen, Software Craftsmanship

“effort is what makes you smart or talented”

“I guess it basically means having the attitude that there’s always a better/smarter/faster way to do what you just did and what you’re currently doing. Apprenticeship is the state/process of evolving and looking for better ways and finding people, companies and situations that force you to learn those better/smarter/faster ways.”

It is not something we give to people by telling them about their high intelligence. It is something we equip them to get for themselves—by teaching them to value learning over the appearance of smartness, to relish challenge and to use errors as routes to mastery”


 
Categories: Books | Commentary | Development

UPDATE: Looks like I may have jumped the gun with this review. The actual print version is due to be released in September 2009. So the content may change a bit.

I am a huge fan of Manning’s Early Access Program. I get to read books on new technology as they are written. It is almost like the authors and I are learning about the topic together. Every few weeks an update arrives in my inbox and I upload it to my Kindle via Amazon’s conversion service.

A few weeks ago, the final shipping edition completed chapter of ASP.NET MVC in Action hit my inbox and after getting it on my Kindle I forgot about it for a few weeks. I have a personal project that my wife and I have been talking about for a while now that I want to write using MVC. So, as a way to get myself in the right mindset I sat down and read the book cover to cover recently.

The book is broken up into four major sections. Chapters 1-5 give you an in depth overview of the core concepts of the MVC architecture. Model, View, Controller and Routing all get dedicated chapters that give you a firm understanding of their purpose and usage.

The second section of the book covers the various extension points of the framework as well as application architectural concerns. View Helpers, Partials, Components and Action Filters are all touched on.

The third portion of the book is a kind of  of hodgepodge of topics. MonoRail and Ruby on Rails get a chapter that gives some historical context on the topic. Hosting and Deployment are covered to help you figure out how to get MVC running under IIS6 or IIS7. “Classic” ASP.NET tooling is covered to give you an idea of existing tools and techniques that applicable in the new framework.

The final section of the book wraps everything up nicely with some guidance with Best Practices and a set of Recipes to get you started.

I can recommend this book as a great place to start on your journey into ASP.NET MVC with a couple caveats.

This book is not for beginners. It assumes you have a significant amount of ASP.NET development under your belt. And by “ASP.NET Development” I do not mean dragging and dropping controls on Web Forms. If you have implemented IHttpHandler or pages that do not require View State this book should be right up your alley. On the other hand if GridView is your best friend because it handles everything for you… maybe this book is not so much for you.

This book is highly opinionated. The authors are prominent figures in the ALT.NET community. There is a certain amount of agenda pushed in this book. Concepts like DI/IoC, Unit Testing and ORM are not only mentioned but are actively demonstrated as best practices. When available open source projects are used in examples and Microsoft tooling are more or less shunned. NHibernate, StructureMap, NUnit, MVCContrib and the current state of the art in ALT.NET toolbox all make appearances. Jeffrey Palermo’s Code Camp Server serves as the sample application through most of the book.

This is not so much of a problem for me as this is Kool-Aid that I have openly drank and serve to others around me. I use these tools, I understand their value and enjoy seeing them being used in examples in a book. Others who prefer to be fed the Microsoft story line by line wanting to only stick to the nuts and bolts of the technology might find this distracting.

In the end Jeffrey Palermo, Ben Scheirman and Jimmy Bogard not only did an excellent job of putting together a great practical guide to ASP.NET MVC they also successfully embedded some subversive ALT.NET concepts that will hopeful make us all better developers. And at the end of the day that is a damn fine accomplishment.


 
Categories: Books | Commentary

Head First Object-Oriented Analysis & DesignI have recently taken an interest in firming up some fundamental skills in development. I have been so focused on the my current brownfield project, I have been neglecting to sharpen the saw. I picked up a copy of Head First Object-Oriented Analysis & Design at my local B&N. I had read Head First Design Patterns a couple years back and was really impressed with the style the book uses to keep the topic interesting.

OOA&D uses the same tried and true style as the other Head First books. The examples are witty and illustrate the point well. The code is very java focused but should be no problem for anyone with some C# or even JavaScript under their belt.

The book handles the analysis and design process from a simple to understand 3 step solution:

  1. Make sure your software does what the customer wants it to do.
  2. Apply basic Object Oriented principles to add flexibility.
  3. Strive for a maintainable, reusable design.

This simple recipe for great software is then examined in great detail. Topics covered include gathering requirements, effective use case diagramming, textural and domain analysis and various other tools to help the developer understand the problem space. The book starts out very simplistic and works it's way to more and more complex topics. By the time the book was discussing design principals like Open Closed Principal, Don't Repeat Yourself Principal, Single Responsibility Principal and the Liskov Substitution Principal  was really into the book and devouring the content.

If you are looking to bone up on some fundamentals or to take that first step from programmer to architect, this is a great starting point.


 
Categories: Books | Development