As a community of programmers committed to software craftsmanship, we could provide better, open source, experiential learning systems to help programmers learn the principles, patterns, and practices we most value.
We could start by creating one or two such learning systems, asking several programmers to try them out, then "assessing" how those programmers perform and what they experienced.
Over time, we might be able to accumulate a vocabulary of large practice exercises, "Grand Kata," that have the effect of helping programmers improve in some useful way.
In particular, I want to experiment with a Grand Kata that focuses **ONLY** on the following practices/metrics/principles/patterns:
-- code coverage
-- method-level cyclomatic complexity
-- class-level cyclomatic complexity
-- Compose Method pattern
-- Extract Method
-- Extract Interface/Class
-- Move Method
-- Pull up/Pull down field/method
-- TDD/BDD basics
My question for the conference is: for a group of industry-standard vocational programmers, how much would it help to FIRST deeply internalize only the above practices, principles, patterns? How meaningful would it be to start with these?
What few others might one add to this initial list? Could any be subtracted?
Thanks for your attention, all. I look forward to working/talking/pairing with you!
BTW: If you would like to experiment with using these in some real (smallish) legacy code, you can check it out here via svn:
http sometimes does not work as well as https for me with subclipse and googlecode. Fair warning.