Friday, June 25, 2010

Industrial Logic

It is difficult to learn agile engineering practices on your own.  No matter how many books you read or how many chances you take with production code, there is always a risk that you will end up in the weeds trying to slash your way out.  That's because the principles and practices inherent in agile software engineering require an apprenticeship with a master who has failed at all those practices for many...many years, and can guide you so that you can avoid the pitfalls.  This is not unlike other crafts -- most notably, carpentry and martial arts -- in which expert guidance is imperative.

But what of the aspiring agile software engineer, such as myself, who's inspired by the mastery of those at the vanguard of the movement toward agile?  One cannot afford the price of a coach unless you are independently wealthy.  And with the current state of agile adoption in the corporate enterprise at only 20% [Martin Fowler, ThoughtWorks Lunch-and-Learn, Chicago, circa late 2009], it is fortuitous if you gain coaching from a master during the normal course of your employment.

There is an approach that I can, with confidence, highly recommend: eLearning at Industrial Logic.  The reason why I can be so confident is that I could not have won my first agile job without that curriculum.

I had no prior agile experience before I was hired as an agile developer/tester.  But when I did my code review during the interview process, the reviewer was impressed with my application of test-driven development, refactoring, mocking and patterns that was evident in my code.  These are practices that I refined while working on Industrial Logic's courseware.

What makes the courseware most effective, and what distinguishes Industrial Logic from other Agile Training, Transitioning and Consulting Organizations, is the level of expertise of their team -- most of whom are luminaries in the agile community -- and the fact that their courseware is designed for them to provide you near-realtime feedback as you work through the exercises.

These exercises require you to think through problems. Many require you to write code to implement refactorings or patterns, or to test-drive toward solutions to problems that come from their real-world practice.  And if there is something that you don't understand about your answer, then Joshua Kerievsky or Bill Wake or Brian Foote or Naresh Jain or someone like that will respond to your question by the next day.  I cannot think of a better way to get that kind of intimate coaching at such a high level and at a price that is affordable to individuals like myself.  They, on the other hand, have even found a way to improve upon that.

They recently added a new pricing model to make the curriculum even more affordable to individuals.  But the most exciting prospect is their Early Access Program for their Sessions Album:  Sessions EAP.  I think this innovation, in lieu of an expert coach, will help me toward my goal of agile mastery.

The concept is simple.  Install their plugin into your Eclipse IDE.  When you press record and start test driving, the plugin will accumulate data in the background.  When you stop recording and upload your session data, you can obtain graphics on the quality of your test driving:
  • how many refactorings did you apply?
  • what kinds of refactorings?
  • what kinds of code smells did you address?
  • how long did you stay in the following cycles -- 
    • red? 
    • green? 
    • refactor?
  • etc.
You can begin to track your sessions with feedback like this:

and this:

So there is a path toward software engineering agility for individuals upon which I can embark.  My new goal is to spend the next 6-12 months following the entire Industrial Logic eLearning curriculum in much more depth than I was here-to-fore able, so that I can advance to that next level.