|
Red Squirrel Reflections
Dave Hoover explores the psychology of software development
|
I just wrapped up my first season at the helm of a PeeWee soccer team. My four-year-old daughter wanted to play soccer this year. After agreeing to be an assistant coach, I found myself with a whistle dangling around my neck surrounded by twelve pre-schoolers throwing grass at each other, the lone head coach. It ended up being a great experience, very tiring at times, but mostly a lot of fun.
There was one particularly not-so-fun experience, though. One practice, for whatever reason, the kids would just not respond to me. No matter how loud I blew my whistle, no matter how much I yelled, redirected, or encouraged, no matter how silly I made the drills, the kids seemed unreachable. After practice was over and my blood pressure had settled, I thought about the experience.
How had I lost control?
A nugget of vintage Jerry Weinberg wisdom came to mind: "It may look like a crisis, but it's only the end of an illusion." I was never in control of those kids, they were allowing me to lead them. They were giving me their attention because they felt like it. I had deluded myself into thinking that I was in control of the team.
How often do software development coaches fall under this same delusion?
FacMan WikiIn an effort to increase the quantity and quality of online resources for retrospective facilitators, I decided to host the FacMan Wiki. At William Pietri's advice, I broadened the topic from retrospective facilitators to Facilitators and Managers. I have no idea if facilitators or managers want a wiki, or if they would find something like this useful, but I do know that I want to learn more about both of these roles, and wikis are a great way to share knowledge.
Code Complete and Test-Driven DevelopmentAs I read Code Complete, I'm finding descriptions that feel incredibly close to describing the test-driven development lifecycle.
A few examples...
"...find an error as close as possible to the time at which it was introduced." (page 25)
"As you're writing the routine, think about how you can test it." (page 59)
"You can catch an amazing number of subtle errors simply by allowing the compiler to detect them. ... After stepping the code in the debugger, test it using the test cases you planned while you were developing the routine." (page 69)
"The idea is to start with something concrete, worry about only one thing at a time, and build up...from simple components. Take small understandable steps as you make [the code] more general and complex. That way you minimize the amount of code you have to concentrate on at any one time and therefore minimize the chance of error." (page 344)
McConnell was so close to describing TDD, I wonder what it was that kept him from taking that step off the cliff into the world of the extreme.
The MarathonThe chicago marathon is less than a month away. I have been training for it since June and I'm surprised at how much I have grown to enjoy running. On a 14-miler yesterday, it occurred to me that I that should write about some of the similarties between marathons and software development. I guess when you're alone with your thoughts for hours on end, your mind tends to wander...
Teaching and the Ideal JobAt Tina's recommendation, I'm reading The Courage to Teach in preparation for our work together on reflecting teams and project retrospectives. Parker's book has been affirming thus far, touching on a sensitive topic for me: staying true to yourself in your choice of work.
"A vocation that is not mine, no matter how externally valued, does violence to the self -- in the precise sense that it violates my identity and integrity on behalf of some abstract norm." (page 30)
The book has me imagining the same future that was dancing around in my head as I read A Pattern Language. I imagine working from my home, or a residential office very close to home, on various software development projects and consulting for various teams. More importantly, though, would be the involvement of youth in this work, local teens and college students interested in apprenticing at Red Squirrel. I could imagine myself being a good teacher in that sort of environment.
And this fits nicely into a conversation I had last week with an old football buddy, who described his ideal job as one which would allow him to work from home so that he could spend more time with his kids along with providing him the freedom to spend time on his other passions. It wasn't the description I was expecting from him and it caught me off guard. But as I've mulled it over, I see the advantage of this lifestyle if it can be attained.
What is the value of financial success if you miss the majority of your children's childhood? What is preferable, taking a family vacation every year to Hawaii or eating lunch with your kids every day? Would you rather make that big salary and sleep in an enormous house or grow your family and your career, living in a humbler home? These are important questions I need to keep in mind.
Powered by Greymatter