Archives for the Month of February, 2009

Applying Real Options on Projects

As a followup to an introduction on Real Options Thinking, a group of us gathered once again last Thursday to consider ways in which we could apply Real Options in our projects.

Let me tell you a story

As usual, we kick off with an ice breaker to get everyone moving. Each participant pairs with the person they know best and comes up individually with Six Words to describe one another (as opposed to themselves like we did in the first session). Participants then circulate in pairs to exchange the story they’d written. This ice breaker seems to generate even more laughter and joviality than the first time we played it together.

The Power of Collective Memory

Next we get together by project team and spend 10 minutes recapping on Real Options theory. Each team then presents what they’d remembered about Real Options to the rest of the group. As many discover, this is an effective way of reinforcing the learning from the previous week. You can download the handout here.

Applying Real Options to our projects

We begin the second half of the session by brainstorming current examples of Real Options in our projects to generate scenarios where Real Options could be applied.

Then we select one particular scenario and work through the 7-step Optimal Decision Process. Last, but not least, each team presents their scenario back to the group to demonstrate how they could apply Real Options on their project. One team comes up so many more options they’re keen to hurry back to their project to try them out.

Facing Uncertainty

As a final bit of fun, participants are asked to create a Human Uncertainty Spectrum, with participants sorting themselves from those who are supremely comfortable with Uncertainty on one end to those least comfortable with Uncertainty on the other. This exercise generates the most discussion and laughter of all. Who would think confronting ourselves about how we really feel about Uncertainty in public could be so much fun?

Selfish Programming in Action

Many thanks to all of you for reading. We’ve made some improvements to enhance this blog’s usability:

  • Full blog entries are now displayed on all pages (instead of summaries) 
  • Previous and Next links have been added to the bottom of every page for easier navigation
  • The Archive month-by-month listing is now displayed in the lefthand nav of every page to make it easier to browse entries by month

Many thanks to Sarah Price for playing The Perfection Game as a way of providing feedback on this blog and a super special thanks to Pascal Van Cauwenberghe for making the changes happen in PHP!

Happy reading!

The *BLEEP* Test

(During circuit training at a gym near you)

Brad the Instructor: Come on team! You’re letting yourselves down!
Brad: Had too many pies? Get moving!
Brad: It’s mind over matter. Your body can go on forever. It’s your mind that’s stopping you. You can do it!

Seeing the Future from the Past

Have you ever done the *BLEEP* test? If you can’t remember, then you’ve never done it. It’s not something you easily forget. The *BLEEP* test consists of a man with a monotone voice who counts up, level after level, as you repeatedly scramble, scuttle then eventually crawl from one end of the training room to the other.

Each leg is marked by the perpetual knell of the dreaded *BLEEP* that grows increasingly urgent with each round. They call it the *BLEEP* test because it comes complete with asterisks to enclose your choice of expletives as you struggle from one level to the next.

Body Futures

Brad reckons we can all see into the future. ‘Put it this way,’ he says, ‘you pay for the body you have now in 10 years’ time. Do you want to celebrate the future or regret the past?’

The clever among us will be adept at telling stories to ourselves to side-step the issue of personal fitness. ‘It’s too dark and cold out’ or ‘My favourite soap is on in 5 minutes’ or, more impressive still, ‘I have to put everyone else first before I think about myself’.

The Beauty of Baby Steps

The fact is, there’s no need for high-tech devices to measure the state of our health. All we need is a full-length mirror and the courage to take a good look at ourselves. Sometimes the simplest things are the hardest to do. What’s the smallest possible action you can take to future-proof your health today?

Celebrate Uncertainty

Last Friday, we celebrated the forthcoming weekend with a session on Real Options, a simple, yet powerful decision making tool. What better time to learn how to deal with uncertainty than in highly volatile times such as these?

What’s your story?

We kickoff the session with an unusual ice breaker called Six Words. Each participant is given a small white card on which they write six words that sum up their lives or who they are. Each group of six words tells a short story, an idea originating from the writer Hemingway.

Participants then circulate to exchange their story with as many people as possible within 3 minutes. Judging from the outbreaks of glee mingled with quiet surprise and lots of questioning, everyone seems to be having fun. This is important because it correlates with my current team’s top team value of ‘Fun’.

Knowing when to decide what

Next we learn about the simple, yet powerful tool of Real Options. You can download the session handout here.

Real Options means you don’t have to decide now. Instead, you need to know WHEN you have to decide. You want to keep as many options open for as long as possible and actively gather information unti the moment you have to decide. Last, but not least, you commit only when you must or when you have good reason to.

A Real Option:

  • Has a value – if not, why would we consider it?
  • Has an expiry condition – a deadline or condition by which we have to choose
  • Has a cost: Buying cost + Exercising cost – the Buying cost gives us the right (not the obligation to implement a decision in the future for a known cost); the Exercising cost is the agreed price to implement the decision

Real Options help us deal with two of the most daunting features of any project: Uncertainty and Risk. Real Options creates opportunities out of Uncertainty by encouraging us to postpone our decision making so that we have more time to gather information. This, in turn, helps us make better informed decisions. Real Options mitigates Risk by explicitly encouraging us to wait and see what happens before we decide.

The Optimal Decision Process

The Optimal Decision Process helps us structure our thinking in 7 steps (especially when we’re under pressure):

  1. Identify your options
  2. Calculate the first decision point: Decision Point = Deadline – Implementation Time
  3. Decide which option to take under which circumstances
  4. Seek out information and more Real Options
  5. Reduce Implementation Time to push back Decision Point
  6. Wait… wait… Until the first decision point
  7. Make the decision with confidence

Real Options in everday life

Then, in groups of 4, We practice by identifying Real Options in everyday life, followed by working through one example in detail and mapping it to the Optimal Decision Process.

‘Agile makes my life more simple’

In response to the participants’ feedback, we’ll be meeting up later on this week to consider ways in which we can apply Real Options Thinking on our projects and to ourselves to improve our effectiveness as individuals. One thing’s for certain, it’s going to be F-U-N.

Be Your Own Valentine

The more I learn, the more I know.
The more I know, the more I forget,
The less I know.

Life’s a series of consequences, sequels, repeats and recorded playbacks. And so we’ve plenty of opportunities, both to forget and to re-learn. The lessons we learnt as children not only still hold true, but are often the most useful. That’s why it’s important we help each other remember. Together.

Back to Basics

Robert Fulghum isn’t a man who minces his words. In his book titled ‘All I Really Need to Know I Learned in Kindergarten’, he identifies what he calls The Kindergarten Credo:

  • Share everything.
  • Play fair.
  • Don’t hit people.
  • Put things back where you found them.
  • Clean up your own mess.
  • Don’t take things that aren’t yours.
  • Say sorry when you hurt somebody.
  • Wash your hands before you eat.
  • Flush.
  • Warm cookies and milk are good for you.
  • Live a balanced life.
  • Take a nap every afternoon.
  • When you go out into the world, watch out for traffic, hold hands, and stick together.
  • Wonder.

These are what he refers to as the working rules of human enterprise. They are why we send children to school. To be civilised.

‘To be fair, we must share’

For those use to adopting a more directive approach in management, the toughest challenge that comes with transitioning to Agile is sharing. Sharing information, sharing pain, sharing joy and, most important of all, sharing glory. Those who define themselves 100% by what they do often find it almost impossible to relinquish the control and power they’re used to in order to become part of an Agile team.

Given an environment where everyone can be courageous, strangers can come together to form self-organising teams. Often, this happens much quicker than you think. The catch? As a manager and team member, you must adopt a collaborative style yourself. Your first step begins with suspending judgement.

If you believe that the only thing you can be certain of in life is that people will always let you down, the only person you can be sure to disappoint is yourself.

What would life be like if you no longer believed in everything you think?

Agile Comedy Club

One way to measure the maturity of a community is by laughter. Laughter is what happens when folks with a common interest get together. They have fun. They laugh together. This is especially true with Agile because people form the heart of Agile.

Knock, Knock – Who’s there?
In my experience, nowhere are these outbursts of laughter more audible than at Agile conferences. Agile conferences are a great opportunity to learn, laugh and recharge. They’re also a chance to test your agility because Agile attracts a mixed bunch of people, sometimes with conflicting interests, motivations and values.

The Secret sits in the middle and knows
‘Have you met Daedalus?’ asks Ralph, an Agile Coach and collector of things darkly comical. Ralph gives a nod towards a small crowd of bobbing and shaking heads by the buffet table. Not one to miss an Agile moment in the making, I head towards the hullabaloo.

‘So I go to see a new client who say they want help with Agile,’ begins Daedalus, ‘and what they were looking for was an Agile installation engineer. They were expecting me to just wheel out a box, plug it in, flick on the switch, then T-A-D-A!’ He clicks his fingers, ‘Everyone becomes agile – just like that!’

Most of us are silent as we stand flabbergasted, recalling the risks and hardwork that come with the magnitude of what we try to achieve with Agile. Organisational change. People change. I’m reminiscing the many seemingly impossible moments when people halted learning because they resisted change. I know because I catch myself doing the same sometimes.

To paraphrase Dolly Parton, ‘If you like rainbows, there’ll be some rain.’ As an Agile Apprentice, it’s the thought of rainbows that keeps me going. I’ve also come to appreciate the rain because I know those are the days when I have the greatest chance to grow.

All’s well that ends well
Being agile isn’t just a laughing matter. It’s a serious business. Because people matter. And remarkable things happen when we come to understand that the Agile Values aren’t just elementary, but elemental.

Wishful Thinking and Eating Elephants

‘There’s no use trying,’ said Alice; ‘one can’t believe impossible things.’

‘I daresay you haven’t had much practice,’ said the Queen. ‘When I was your age, I always did it for half an hour a day. Why, sometimes, I’ve believed as many as six impossible things before breakfast.’

– Lewis Carroll

Turning Constraints into Opportunities

One of my favourite things about Agile is how well it works in a world of constraints. And there’s no better time than the current economic crisis to help focus the mind on Value Driven Delivery. ‘We’ve got limited funds for the project,’ says a project manager. ‘Plus we’ve got a fixed deadline.’

‘That’s great!’ I reply. ‘It’s good to have a fixed budget and a fixed deadline. That leaves us with only one variable to play with: Scope. As for Quality, it’s an integral part in everything we do.’

In my experience, such conversations usually herald the start of a potentially successful Agile project, one that delivers solutions with the highest business value possible faster than most people imagine. Here’s the recipe I use to implement Value Driven Delivery.

Begin with Stories

The key to any successful Agile project is the identification and breaking down of user stories that can be implemented by the team in a single release made up of several iterations.

  1. Identify the top two business value currencies for the project. (Value currencies are usually things like Revenue and Customer Satisfaction).
  2. Brainstorm all the user stories that the customer has in mind. These will be high level stories (also known as ‘epics’).
  3. Estimate the relative business value of each value currency per story or group of stories.

Release Planning in Action

  1. Prioritise the backlog based on the primary business value currency.
  2. Prioritise the backlog based on the secondary business value currency.
  3. Estimate the effort for the top 3 stories selected by the customer.
  4. For each of the estimated stories, divide the value estimate by the effort estimate. The product from this calculation allows you to prioritise the top 3 stories based on maximum value, minimum effort.
  5. Prioritise the stories in the Release Backlog based on what your customer values most.

The Art of Story Splitting

Q: How do you eat an elephant?
A: One bite at a time.

After Release Planning, you’re likely to have to split stories into smaller stories until they fit into a single interation. I recommend splitting stories by the thinest possible vertical slice – you’d be surprised how often this is possible.

For instance, if you have to implement a form with 20 fields to be pre-populated by values held in the database, your first story might consist of a vertical slice from the Web Layer down through to Service and Data Layers for 1 or 2 fields only. The result is incremental development as the team implements more and more fields as they complete one story at a time.

Such an approach helps you reduce previously elephantine requirements into manageable chunks. The patient scrutiny required by story splitting can help you identify your project’s Minimum Marketable Feature Set (based on the idea that 80-20 rule that 20% of the stories contains 80% of the business value within the entire project backlog).

This incremental approach allows the team to:

  • Test out the size and quality of the user stories.
  • Calibrate their velocity through a short feedback cycle of updating the Iteration Board daily.
  • Demonstrate the value being delivered at the end of every iteration (2 week iterations are usually a good length to start off with).

A Word to the Wise

Remember, a truly Agile team achieves at least six impossible things every day. And over-sized chunks of elephant are bound to give your team more than a stomach ache.

Winter Wonderland

(Over two cups of hot chocolate and a bag of chips)

TJ: Your snowman‘s wearing a hat and scarf.
P.: It’s cold out.
TJ: Snowmen like it cold.
P.: They make him look authentic.
TJ: If you believe in fairytales.
P.: We wouldn’t want him arrested for indecent exposure.

It’s been an incredible three days in London. If weather forecasts are anything to go by, London looks set to get whiter before the streets are swamped in brown slush. It’s great to be amidst such rare loveliness.

During my two hour expedition across the vast expanse of village snowiness, I go past lumps, humps and stumps. Not a single snowman to be seen. Instead, there are large deformed balls of ice, speckled brown and green. Abandoned snowman wannabees litter the peaceful landscape.

Young children with makeshift sledges (made out of storage box tops and plastic trays) are having the most fun, lying belly down as they slipstream down slope after slope. And what about those teenagers with attitude, all kitted out in their snow gear with their designer snowboards, looking too cool for cats? They remind me of the fact that even if you had all the coolest kit in the world, you can still miss out on having fun. The KISS principle in action. How much fun did you have at work today?

Snow Joke

(At an Agile training course near you)

P.: What is “Quality”?
Student: It doesn’t matter.
P.: What do you mean?
Student: People can’t tell the difference.
P.: Can you tell the difference between stepping into a Ford Fiesta and an Aston Martin?
Student: NO.

Common Sense Goes on Holiday

This brief exchange is taken from a real life conversation. At the time, everyone else in the class was at least surprised, if not bemused, by their colleague’s curious response.

It’s a good example of how some people would rather be stubborn than right.

Riddle Me This

It’s Monday and I’m snowed in at home. As I stare out at my 4 ft snowman, I find myself wondering: ‘What sound does a snowman make?’ It strikes me as as confounding a riddle as the question: ‘What does “Quality” mean?’ To me, “Quality” isn’t just a remarkable achievement. It’s much more than what the eye can see. Especially in the world of software development.

Quality is Elemental

Whenever I work with a new team, I begin by asking them: ‘What does “Quality” mean to you?’ Using a Clustering exercise, we mine the information to get a collective answer. Their response tells me whether or not I’m working with real professionals.

From Journeyman to Master

‘I wish I’d read this book sooner!’ was my immediate response when I read Andrew Hunt and David Thomas’s The Pragmatic Programmer all those years ago. The book’s popularity is living proof that there are people who believe in Quality. Some of those people value Quality enough to do the right thing as well as do things right.

Take a look at the piece of work you’re doing at the moment. Now imagine it’s someone else’s work. That person’s come over to ask you for feedback. Does that piece of work withstand scrutiny by your team’s defintion of Quality?

Quality is much more than the result of system improvements. Make it a matter of personal and professional pride.