I read something about agile programming practices that sparked my interest in the first chapter of Refactor Your Wetware by Andy Hunt. He brings up the topic of the "Dreyfus model" of skill acquisition. As of my understanding so far, this model describes the levels between novice and expert for any given skill. There are two major stages, 1-3 and 4-5. Four and five are the "proficient" and "expert" levels. What distinguishes the practitioners of these two stages from the first three is the ability to "self-correct." They are able determine what needs to change about their behavior or implementation in order to achieve a desired outcome. Hunt states: "Proficient practitioners can take full advantage of the reflection and feedback that is core to agile methods," and that "some of the most exciting new movements in the software development community are targeted at proficient and expert developers." He's saying that in the interpretation of the Dreyfus model, agile methods are most useful when its users are very competent programmers. Do I measure up?
Hello,
I am an application developer almost 4 years out of college, graduating in computer science. I've spent my career working in start-up environments in small teams of a diverse range of experience. This quote seemed relevant to me and my experience with agile. Our team operated on two-week sprint development cycles. Every sprint we would set new goals, as well as try to assess our performance of the previous sprint and how we could improve ourselves. "How did the previous sprint go?" Our lead programmer would ask. A common response might've been, "Oh, I think it went pretty OK." A pretty dry and not very insightful remark in hind sight. So what went wrong? Is anything wrong here at all? I think this is an opportunity lacking fulfillment. We were not taking the question in the correct context. There is so much we could talk about. Our job is software development, about which Hunt concludes, "must be the most difficult endeavor ever envisioned and practiced by humans." A bold remark! But it nonetheless assumes that our job is not such a simple thing that can be summed up as "pretty OK."
Inferiority Complex??!
I'm not an expert. I'm most likely not proficient. Hopefully I'm competent. If what Hunt is saying is true, it seems like our missed opportunity for self-improvement was staunched in part because we were not using a system of practice that would be best suited to our average experience level. A good lead programmer can only do so much to inspire change in his employees. Am I being defeatist? After all, the Dreyfus model is just a theory. Or, is there something to this? What are your experiences with agile programming? I'd love to hear your opinion, whatever your experience level.
Reference
Hunt, Andy (2008) Pragmatic Thinking & Learning: Refactor Your Wetware.