Red Squirrel Reflections
Dave Hoover explores the psychology of software development
Mon, 28 Mar 2005sustainable pace" used in the context of extreme programming. Or perhaps I've never fully understood this idea and someone needs to enlighten me. I was just doing a bit of writing and was using "sustainable pace" in a sentence when it occurred to me that when I use the term "sustainable pace," I'm focusing on working a reasonable number of hours per week.
But "pace" doesn't refer to a quantity of time, it refers to a rate of speed.
I find myself wondering whether this phrase might be sending the wrong message. By metaphorically linking the number of hours worked with the speed of the team, are we implicitly discounting the idea that the speed of the team might be relatively independent of the number of hours worked?Johanna was asking for some help with explaining pair programming to some skeptical managers. My off-the-cuff response:
Some managers like pair programming because when the software is released, managers can go to almost any developer with almost any problem and the developer will be able to handle it. Pair programming destroys knowledge silos.
Sun, 27 Mar 2005
Pete wrote about the new imperative of software craftsmanship. Dave and Andy wrote about the practices that can take you from journeyman to master. But how does one transition from apprentice to journeyman? This is the journey that I have been on over the last several years. And some thoughts are spinning around in my head about how to communicate to aspiring software craftsmen what has worked for me.
But I've got a bit of writer's block lately. I am trying to keep the words of C.S. Lewis in the back of my mind:
"No man who values originality will ever be original. But try to tell the truth as you see it, try to do any bit of work as well as it can be done for the work's sake, and what men call originality will come unsought." --The Weight of Glory, p. 175
Sun, 20 Mar 2005
"People master a craft because they care enough about the craft to make the effort." --Software Craftsmanship, Pete McBreenI have been pondering Pete's quote for the last few days, questioning why I want to master the craft of software development. I have realized that my desire to master this craft is not due to my caring about the craft itself. My desire is the result of the joy that I experience when I have created something with software. I admit it's a self-gratifying desire. I'm not driven to improve as a craftsman in order to please my customers, to make more money, to impress my employer, or to become a luminary in the industry. I'm doing it because I love the act of creating something from nothing, of creating order where there was disorder, from growing something elegant out of something simple. I like the way Fred Brooks said it...
"Why is programming fun? What delights may its practitioner expect as his reward? First is the the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God's delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake." --The Mythical Man Month, p. 7If you are someone who aspires to become a master crafsman what is your motivation?
Wed, 09 Mar 2005mini. In order to prolong the life of this beautiful little machine, I decided that everything that my kids would touch on a regular basis should:
Tue, 08 Mar 2005http://redsquirrel.com/dave/work/QuoteManager/QuoteManager.zip
Fri, 04 Mar 2005Rachel is waving a red flag, hoping that the agile community will take notice:
"I am writing this blog to express my personal support for the Software Development Apprenticeship (SDA) program at New Mexico Highlands University. The program's unique approach to remunerated experiential education prepares student apprentices for careers as agile developers who understand the value of people and craft in the development of humane software systems."Linda's description of this program encourages me to keep my own dream alive of starting a local apprenticeship program someday:
"The Bachelor of Software Development Apprenticeship (SDA) program at NMHU is the realization of Dave [West]'s long-held goal: teaching students in a community to use software development as a lever to change the world instead of using it as a tool for doing the same things people have always done more quickly and accurately. This reflects his belief that the key to improvement is better people rather than more rigidly specified processes."According to Rachel this program is in danger of being cancelled. It's not clear how people can help out, but it sounds like Rachel will have more info soon.
Tue, 01 Mar 2005Pat Metheny said...
"I have one kind of stock response that I use, which I feel is really good. And it's 'always be the worst guy in every band you're in.' If you're the best guy there, you need to be in a different band. And I think that works for almost everything that's out there as well.This sums up perfectly why I came to ThoughtWorks. It also feels like it could be a seed for an apprenticeship pattern language. More on this in the weeks ahead...
(Via Chris Morris.)Organizational Patterns of Agile Software Development, Jim Coplien and Neil Harrison pointed out...
"...changes at this [the organizational] level do not come easily. It may take years, or perhaps even a crisis, to shake the foundation of the organization--it's value system." page 311Whenever I hear "crisis" and "change" in the same breath, I think back to a child and family therapy technique called raising the bottom. And I ponder anew how this concept could be applied appropriately to software development.
Agents of change are well aware of how difficult it can be to affect change in others. But they also know that the fastest route to significant change is a crisis. They have a challenging problem with a tricky solution.
The good news is, we have the solution. The bad news is that humans tend to dislike this solution (a crisis) even more than change itself. Even worse, no one wants to be the cause of a crisis, because those people tend to be targets of blame. But what if we could openly and responsibily accelerate an organization or a team into a crisis in order to bring about change and avoid a more dangerous crisis down the road?
The classic example of a crisis acceleration: Parents who cut off their drug-addicted child, leaving him to fend for himself. The parents would have already engaged the system around the child to help him have a controlled landing. They coordinate with the police, the school, therapists, friends, relatives, as much of their child's system as possible. What sort of parents would do this? Parents who are convinced that their child is going to end up dead in a gutter. They would rather have their child hit rock bottom on their terms.
Food for thought...
"It may look like a crisis, but it's only the end of an illusion." --The Secrets of Consulting