Thursday, July 23, 2009

Agile Expertise and the Dreyfus Models

My journey through the Dreyfus model was more atypical than the model's definition. I am not sure if the Dreyfus model really works as a road map to gain Agile expertise or teach Agile processes.

Dreyfus theorized the following stages:
1. Novice
2. Advanced beginner
3. Competent
4. Proficient
5. Expert

The way I look at it, Agile is not for the faint-hearted and certainly not for a novice. By its very nature, Agile is more of a mind-set than a set of proscribed practices and steps. To develop the mind-set to operate in Agile mode, one has to have gone down the path of non-Agile to appreciate the advantages of Agile. Otherwise, one will be stuck thinking Agile is a process and certain "steps" are required. So, by definition, the person is an experienced developer and may even have practiced Agile in some fashion or another and liked and longs to do it again.

Agile as a principle is more a life lesson than a software development principle. Most people I know when initiated into an Agile development environment feel more at home than not. The objections they raise are mostly due to external factors - "but they need a requirements document", "my boss needs a technical design document" and the best of all "how long will it take EXACTLY?". They do wish to build incrementally, test and preview incrementally and follow the feedback loop because they have been burned in the past too many times.

Most people in real life would like to try something before they buy - at the store, a friend's place etc. So, when "beginning" Agile development, it really is not a beginning, rather starting at the Advanced Beginner stage for a short time and moving on quickly to competency.

I have had junior developers, college grads on my Agile teams and even they usually are not new to Agile. For instance, Scrum is something they grok soon enough. Incremental delivery and build is also not a big deal. So, by me definition, they are not novices.

Thoughts?


No comments: