This post originated from an RSS feed registered with Ruby Buzz
by Dave Hoover.
Original Post: The Dependencies of a Craftsmanship Studio
Feed Title: Red Squirrel Reflections
Feed URL: http://redsquirrel.com/cgi-bin/dave/index.rss
Feed Description: Dave Hoover explores the psychology of software development
As we continue to expand our Craftsmanship Studio, I am becoming increasingly aware of our dependencies. In order to grow better as we grow bigger and maintain a healthy mix of apprentices and journeymen (no masters yet), we are absolutely dependent on the two most important attributes of a software developer. As Andy said in one of his long-lost podcasts, the two most important attributes of a software developer are the ability to communicate well and to learn quickly. I would add passion to that list.
Mentoring apprentices comes in many forms. Some of it is indirect ... they overhear your conversations ... they read your code ... they read your blog (!). But some of it needs to be direct, and in those moments, I am sacrificing my productivity on some other activity in order to answer a question, provide guidance, or sketch a domain model. That sacrifice is an investment. I believe that 10 minutes now is going to be paid back tenfold in future productivity gains. I believe that because it's obvious that our apprentices Victoria and Brian have the attributes that Andy was talking about.
A couple examples ... Victoria's ability to communicate well lightens my workload because as she is implementing features, she can interact directly with our customer, allowing me to focus on other technical tasks rather than diving into Basecamp or GMail. Brian's ability to learn means that I can review our Rails portfolio with him in his first few days and a week later he's nearly single-handedly retrofitted ActiveRecords with advanced associations onto a legacy database on his first Rails project.