Tuesday, April 15, 2008

Revolution is social invention

I'm planning to write a series of blogs regarding systems thinking. To research this topic, I came across the various blogs of Ron Davidson - where I found this quote:
"If I were to ask you to name some technological inventions that helped us to become modern, you could probably name quite a few – things like the printing press, the steam engine, the automobile and the computer. But if I were to ask you what social inventions helped us to become modern, you might pause. We are less inclined to think of things like schools and universities, banks and corporations as inventions and yet they are. Our social institutions and customs are at least as different from what they had in medieval times as is our technology.

When a technology inventor comes up with a radically new product, they call it an innovation. When a social inventor like Martin Luther or Thomas Jefferson comes up with a radically new institution, they call it revolution."
At ThoughtWorks we talk about "Revolutionizing the IT Industry". When we say this, we are not just talking about new tools or new methods, but about an innovation in thinking within the industry itself - and in the organisations that use IT in their business.

Monday, April 7, 2008

Business Benefit

In Agile software development, we often say that a story is about describing business value. This might seem pedantic, but I've come to think that is wrong.

What a story is doing is describing business benefit. This is the benefit a business will get if they implement the story, and might include any of the following:
  • Reduction in cost.
  • Increase in revenue.
  • Compliance to regulations.
  • Increase in productivity.
  • Learning and new knowledge created.
  • Removal of risk.
Obviously, obtaining any of the benefit of a story will require work. This is the cost, and consists of:
  • The cost to develop. This can be predicted from the estimate and the velocity of the team.
  • The cost to support. This is ongoing cost that will have to be paid to support the feature described by the story (eg. hardware, regular maintenance / manual intervention, etc).
Knowing both benefit and cost, we can then determine value. In simple terms, value can be described as a relationship between benefit and cost:
value = benefit / cost
Value can be increased by either increasing the benefit or decreasing the cost. Thinking about benefit and value in these terms makes it much easier to understand prioritisation of stories - you simply do the story that has the highest value first.

Saturday, April 5, 2008

Principles of Feedback

One of the most powerful ways you can effect improvement is via feedback. I definitely consider that any team that actively engages in regular effective feedback is likely to be much more effective than one that does not.

So what is effective feedback anyway? At ThoughtWorks, we believe feedback should be given for only two reasons:
  1. To strengthen confidence of the recipient
  2. To improve effectiveness of the recipient
If feedback is being given for any other reason, it's likely that it's not feedback but rather criticism.

As a giver of feedback, you should observe the following principles:
  • Feedback is for the benefit of the recipient only - be receptive to their needs.
  • Focus on key behaviors (not assumed attitudes or values).
  • Be specific - give examples of observed behavior.
  • Be non-judgmental.
  • Be balanced (positive and negative).
  • Ensure the feedback is manageable (not too many points or details all at once)
  • Ask permission to give feedback and find appropriate timing.
As a receiver of feedback, you should observe the following principles:
  • Actively solicit feedback - feedback is your real chance to improve, so seek it out early and often.
  • Assume that the person giving feedback is trying to help you.
  • Listen - hear both positive and negative.
  • Ask questions to clarify what is being said - make notes.
  • Require behavioral feedback - if feedback is about attitudes or values, ask for specific examples of observed behavior.
  • Acknowledge - confirm that you have heard and understood.
  • Do not defend - reflect and look for themes.
  • You do not have to act on feedback.
  • Accept feedback as the (legitimate) view of the person offering it.
  • Be open to doing something different - you can ask what it might be.
  • Say when you have had enough.
  • Thank the giver of your feedback.