In my last post on discipline, I discuss disciplines as being the thing that kicks in when motivation fails you. More importantly, I state that there are specific disciplines which I believe apply across software developers wishing to be better at what they do.
In doing research for this topic, I came across many references to this same concept in the martial arts world. Some interesting ideas have come from an initial scan through the book Budo Mind and Body by Nicklaus Suino. These are:
- Focus: Don’t allow the mind to wander
- Complaining: Before assuming something is wrong, contemplate on it to understand the other view point
- Don’t criticize: Focus on becoming a better person. Your attacker isn’t going to adjust to do the “right technique” – you must be the one prepared
- Dojo: Dojos are a place to practice ideas disseminated by the teacher. There is a time and a place for individual reflection
But while these are nice concepts, they are, to me, guidelines, not disciplines. I’ve found a nice summary of some disciplines in another book called Kungfu Basics by Paul Eng. In it, he describes basic, universal principles that apply across the martial arts. They can be split into two categories:
- Attitude Towards Others
- Personal Qualities
Over the next several weeks, I’m going to be examining these disciplines and showing how we can benefit from understanding them in the software world. There are 13 disciplines Eng discusses in his book, and I’m sure that as my research continues I’ll find more, or make tweaks. The culmination of this work will be going into a talk Corey Haines and I will be giving at Agile 2009 entitled Disciplines of a Software Developer. But, at a high level, here are the 13 disciplines so far:
- Devotion, honor and respect to one’s parents
- Sense of responsibility for those under you
- Humility / Modesty
I’ll update this list with the links to the individual posts as I finish them. And, as always, I’d love your feedback!