2008-01-05

Reading Agile Software Development with Scrum (2007-12-17/2008-01-01)

"Scrum is built on an empirical process control model which is radically different from the defined model that most processes and methodologies use."
--Ken Schwaber and Mike Beedle, Agile Software Development with Scrum

This past month I attended a Seattle XP Users Group meeting, read Agile Software Development with Scrum (one of two books that are primary sources of information about Scrum), and toured SolutionsIQ (a Seattle-area Scrum training and consulting firm). I wanted to see how my company's experience with small teams compares with our colleagues' in the industry. We'd been using agile development methodologies and tools since before starting the company, due to reading Extreme Programming Explained: Embrace Change, Planning Extreme Programming, and similar books by Kent Beck and Martin Fowler.

Readers of this blog may recognize in agile development methodologies the management paradigms I profess. My management methods led my company to agile development methodologies like Scrum and Extreme Programming. My blog posts on management books provide the following principles:
  1. Update opinions from observations. ("The Map is Not the Territory.")
  2. Develop a culture of interdependence. ("Mature from Dependence to Independence to Interdependence," and "People are smarter than you think. Give them a chance to prove themselves.")
  3. Prioritize what's important. ("Good is the Enemy of Best.")
  4. Jointly determine the course. (See The 8th Habit.)
  5. Set up and manage systems to stay on course. (See The 8th Habit.)
  6. Focus talents on results, not methods, then get out of people's way and give help as requested. (See The 8th Habit.)
  7. "Never automate something that can be eliminated, and never delegate something that can be automated or streamlined."
The principles above aren't articulated in industry terms, however. Specifically in software development these principles lead to the following practices:
  1. Inspect results and update process.
  2. Rely on people.
  3. Work on highest priorities.
  4. Teach self-managing teams.
  5. Improve processes.
  6. Remove impediments.
  7. Automate testing.
These practices are agile:
  1. Agile Software Development with Scrum emphasizes empirical process control.
  2. Agile methods have a people-first orientation.
  3. Product backlog and sprint backlog are prioritized.
  4. Scrum uses self-managing teams.
  5. Extreme Programming suggests various process improvements like spike solutions, coding standards, continuous integration.
  6. A Scrum Master uses a daily stand-up meeting to learn impediments to remove them.
  7. Extreme Programming emphasizes automated unit (and acceptance) tests.
I would list examples from our experience (e.g., engineering estimation, comparison to CMM Level 2 and key process areas, serving manufacturing clients, consensus decision-making) but this blog post is already long. However, I'll write that I'm pleased with how agile practice embodies good paradigms and principles.

[Updated FAQ link.]

2007-12-31

Reviewing 2007 in Seattle (2007-12-31)

I'm pleased with 2007 in Seattle, though I'll adjust my goals for 2008 in light of a review of the past year. While I had personal goals--some qualitative--, and even goals for how I help others, there are some quantitative goals I mentioned in this blog. Below is the year in numbers, Harper's Index style:
  • Total pages I read for "Where's William?" blog: 8,263
  • Number of books I wanted to blog in 2007: 50
  • Actual number of blog posts about books in 2007: 30
  • My blogged books score: 60%
  • Number of books I want to blog in 2008: 12
  • Six-hour days I wanted to spend in the forest in 2007: 6
  • Six-hour days I actually spent in the forest in 2007: 5
  • My outdoors score: 83%
  • Six-hour days I want to spend in the forest in 2008: 6
  • Pounds I wanted to lose upon returning from Paris: 15
  • Pounds I lost and kept off at first through workouts and frequent small healthy meals and later through walking: 17
  • My weight score: 113%
  • Body fat percentage I want to lose in 2008: 4%
  • Songs I wanted to perform on the guitar in 2007: 5
  • Songs I performed on the guitar in 2007: 0
  • My guitar score: 0%
  • Songs I want to perform on the guitar in 2008: 2
  • Maximum miles I wanted my car driven in 2007: 14,400
  • Actual miles my car was driven in 2007: 9,508
  • My mileage score: 151%
  • Maximum miles I want my car driven in 2008: 9,600
  • Days/week since 2007-09-06 I wanted 30 minutes of moderate activity: 5
  • Days/week since 2007-09-06 I did 30 minutes of moderate activity: 4.2
  • My walking score: 84%
  • Days/week I want 30 minutes of moderate activity in 2008: 5

2007-12-30

Reading Plato and a Platypus Walk into a Bar (2007-12-25)

A New York boy is being led through the swamps of Louisiana by his cousin. "Is it true that an alligator won't attack you if you carry a flashlight?" asks the city boy.
His cousin replies, "Depends on how fast you carry the flashlight."
--Thomas Cathcart and Daniel Klein, Plato and a Platypus Walk into a Bar: Understanding Philosophy Through Jokes

Confusing the cause of an alligator attack is an example of post hoc ergo propter hoc, a fallacy that Plato and a Platypus Walk into a Bar describes in chapter II, "Logic." (It is a minor spoiler to opine that the punchline of the best post hoc ergo propter hoc joke is, "'Schmuck, that's the way you wave a towel!'") Logic is one of ten topics in the book that together give an overview of the story of philosophy. Thomas Cathcart and Daniel Klein summarize major schools of thought in each topic, and illustrate them with interspersed jokes. I read their book--a gift from Ryan--on Christmas Day at our apartment and friends'. I found it funny, and finished wanting more details on some philosophers--or at least more jokes.