Study Groups


I'll begin with study groups. You may be amazed, as I often am, that there are programmers today who have never read Martin Fowler's book Refactoring: Improving the Design of Existing Code [Fowler1999]. There are even programmers on XP projects who have never studied the refactoring catalog in this book, even though they are supposed to be refactoring all the time! Martin's book is one of those hardcover classics that everyone is supposed to read, but they don't because they perceive it to be too imposing or hard to understand, which is far from the truth.

So if programmers on XP projects don't know the refactoring catalog, how good do you suppose they'll be at refactoring? They can get better by pair programming with developers who do know the refactoring catalog, but that can be a slow process, which may still fail to introduce them to important refactorings. In addition, if these programmers don't know anything about other areas of software development, such as design patterns and good domain-modeling practices, how good do you think they'll be at building a well-designed system?

To continuously improve programmers' technical abilities, I recommend study groups. A programmers' study group meets regularly in a comfortable place to delve into important technical topics. These topics can come from the group's learning repository, from books or articles, or even from a guest participant.

Ken Auer's XP company, Role Model Software, allocates time once a month for technical group learning sessions, which Ken calls "strategic focus time."

Attendance in a study group is optional, but having the meetings regularly, such as once per iteration, is vital. I recommend that groups meet for two hours if they want to delve deeply into a subject, though one-hour meetings are fine for covering topics quickly.

There are roles to be played in a study group and certain important safety rules and rituals to follow. Absolutely no one should play the role of lecturer or teacher in a study group. The group meets to conduct group learning. If someone is expert in a certain technical area, that individual ought to help others learn, not show off or talk down to participants.

Those who find it burdensome to study important books or articles on their own may be surprised to discover that group study can make learning easier and more insightful.

If you'd like to start a programmers' study group and learn how to run it successfully, I suggest that you study my pattern language on this subject, which is called Pools of Insight: A Pattern Language for Study Groups [Kerievsky1999]. You might even begin your first study group by studying the patterns in that language, as several groups have done.



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net