It's Clear to Me (Ramblings of Matt Scilipoti)

Posts My Philosophy Who Am I

XP and the 6 Rules to Simplify

I collected a few thoughts about each of the “6 rules to Simplify” and how they relate to XP (Extreme Programming):

  1. Understanding requires interaction.
    XP ensures continuous cooperation. It ensures I know what my coworkers are doing, what they are capable of, and, most importantly, what they excel at; so we can cooperate effectively. Do you operate in a vacuum; unaware of the knowledge, capabilities, weaknesses, and interests of the people you sit next to? How can you possibly earn, or give, respect without that knowledge? Without a high level of interaction? (See: Communication, Feedback, and Respect)
  2. Reinforce integrators
    XP uses the title of Coach. There is little need for time management, task shuffling, and status meetings. The Coach is a part of the team, pairing along with everyone else, with full visibility into progress, blockers, tendencies, and issues. Full visibility… organically. They are facilitators and impasse blockers. Like a sports coach, they get on my case when I hog the ball, even if I score, because they know the team could have scored more, if the team was working together.
  3. Increase total quantity of power
    In order to use my judgement, I have to know the whys. Are you privy to the appropriate Feature discussions? Do you know why fellow coders have made the choices for their code? Do you find yourself throwing up your hands saying, “I don’t know why it was done this way. I’m not sure if I can change it.” (see: Communication and Courage).
  4. Extend the shadow of the future
    We need to feel the consequences of our actions. We need to see how the code we write affects others, including developers who were not privy to our conversations. Do your current practices support that? Developers need to see how their changes affect load tests. We need to get out from behind our desks. We need to meet customers. To work with customer support. To sit with the other teams, within our company, as they use our tools. Some may balk and we may give in to their cries, but we do it knowing that, in the end, it decreases our team’s effectiveness. (see: Communication, Feedback and Respect).
  5. Increase reciprocity

    “We don’t fear anything because no one ever works alone.”

    Remove dysfunctional self-sufficiency. (see: Communication and Courage).

  6. Reward those who cooperate. Penalize those who do not.
    Cooperation: I encourage you to listen for this at standup.
    You will notice that some groups discuss who they are interacting with to achieve each task, some rarely do. I also encourage you to ask yourself what have you done lately to increase team productivity? To make it easier for a teammate to do their job?