Saturday, May 30, 2009

Beyond Agile: Cultural Patterns of Software Organizations

At QCON London 2008, Marc Evers and Wilem Van Den Ende gave a talk about cultural patterns. They start out by mentioning that cultural patterns can help make sense of what’s happening. It helps us understand various subcultures that exist in an organization, and can predict conflicts. It helps put agile in perspective and helps us adapt our change strategy to particular situations. They then cover 6 cultural patterns:

1. Routine – We follow our standard procedures (except when we panic). Bring order to disorder. Management by controlling. Process oriented. Working in a well known context. It is very predictable, but difficult to improve productivity

2. Variable – We do whatever we feel like at the moment. Value Craftsmanship, foster innovation. It’s characterized by close cooperation between customers and developers, craftsmanship, hands off management. Performance and quality is totally dependent on individuals. It works when starting with a few customers developing custom built software until the number of clients increase to 8 or so. Once they go beyond that organizations switch to routine. But when something goes wrong, then they go back to variable. Variable produces fast delivery and good relationship between customer and developer.

3. Steering – We choose among our routines by the result they produce. Make extraordinary things ordinary. It’s characterized by feedback control, results oriented, trust based, act early, act small, XP, and Scrum. Testing and feedback play an important role. It uses feedback. You can improve as you go. Can be light weight.

Moving towards steering:

a. Mental models: Have more work to do. Increase hours/week to try to finish work. However, more hours per week lead to fatigue which results in more defects and thus increases work to do.

b. Visibility: Charts and boards on the board.

c. Stability: Need to have a stable velocity.

4. Oblivious – We’re not aware that we’re developing software. No separation between user and developer. Highly adaptive, highly customer oriented. Customer and developer is the same person. You always get what you want as long as you can make it

5. Anticipating - We establish routines based on our past experience with them. The art of the long view. Pay more attention to long term planning and changing your processes. Consciously managing change, process oriented, always improving your processes (if it ain’t broke, fix it). Practices (retrospectives, scenario planning, risk management). Lean Software development. It makes steering culture more predictable with a conscious process of managing change

6. Congruent – everyone is involved in improving everything all the time. It is a culture of ongoing reflection and improvement.

They see some similarity with CMM where level 0 is Oblivious, 1 Variable, 2 Routine, 3 Steering, 4 Anticipating, and level 5 Congruent. They conclude by stressing that you should find the patterns that fit your context.

This presentation is available on InfoQ at

Friday, May 22, 2009

Born to Cycle

Fearless Change: Patterns for Introducing New IdeasLinda Rising gave a talk at QCON London 2008 entitled “Born To Cycle”. This talk is very similar to “Perfection is an unrealistic goal”. Linda does add a couple of interesting experiments:

1. Rats in a maze. During REM sleep rats were transferring information about what they learned about the maze. The next morning the rats navigated the maze and found the cheese.

2. Two groups (humans) were taught a task. The group that took a nap improved more than the group that stayed awake. After a night’s sleep, both groups were at the same level.

3. One group was taught a task and then 6 to 8 hours later, a second task. The next day, the group did not improve on either task.

4. Two groups were taught a task. Both were taught a second task, but one group took a nap in the interim. No improvements were noticed later in the day, but the next morning, the nap group had improved at both tasks.

This presentation is available on InfoQ at

Saturday, May 9, 2009

Agile Mashups

Agile CoachingRachel Davies gave a talk about Agile Mashups at QCON London 2008. Rachel mentions that organizations trying to adopt agile can be confused by the different agile methods (Scrum, XP, Crystal, DSDM, Lean). These methods are simplified ideas and practices to make it easy to transmit and understand. It will help teams get started but they have to fill in the gaps. A lot of teams create their own agile combinations. A good way to do that is through retrospectives.

Next Rachel goes over some typical agile practices like standup meetings, sprints, user stories, release plans, TDD, velocity, burndown charts, team boards, retrospectives, continuous integration. Most teams adopt these practices but struggle with pair programming, product increment, and collocation. Often the teams are self organizing and cross functional and include 5 to 10 members with at least one tester. The customer role is split between someone who is making priority calls and someone who is explaining the domain. Agile project manager or scrum master are responsible for facilitating meetings, shielding the team, working with the team to remove obstacles. Sometimes they also do project management activities like reporting progress and preparing the road ahead.

Rachel stresses the importance of setting up a visual space to see what the team is working on at the moment. The team gathers around the project board for their daily stand up meeting.

Projects start with an iteration Zero that creates the release plan, sets up an infrastructure, architecture, and for some initial estimation. The typical cycle is 2 weeks. Half of 1st day is spent planning, then development, and at the last day there is a demo and then a retrospective. A lot of teams start the sprint on Thursday. Lots of teams have a preplanning meeting. The meeting at the beginning of the iteration is for estimation and task creation while the meeting to decide what goes into a sprint happens a couple of days earlier. Demos need to involve product owner and a wider set of stakeholders. It’s ok to have breathing spaces between iterations. It is also ok to have polish iterations before a major release.

Rachel wraps up by recommending that we read multiple agile books and use them as a source of ideas and not as “religious” texts. Projects are varied and each might need a different approach. We need to inspect, adapt and evolve.

This presentation is available on InfoQ at

Friday, May 1, 2009

Agility: Possibilities at a Personal Level

Fearless Change: Patterns for Introducing New IdeasLinda Rising gave a talk about personal agility at QCON San Francisco 2008. The talk was about the effects and history of caffeine. In the industrial age, people were having caffeine for breakfast. They boiled the water to make it safe to drink and then had coffee or tea. Coffee, tea, clock, and factories appeared at the same time. Before that we used to have beer for breakfast (Europeans were consuming 3l beer /person/day). We used to wake up and sleep based on the sun and seasons. We now have to adapt and cope with a work schedule set by a clock and not daylight or the natural sleep cycle. Inventions of the clock and availability of caffeine changed lives.

Next Linda explained that caffeine blocks the effect of adenosine (one of the body’s natural sleeping pills) and keeps us awake. The average person takes about 3.5 hrs to metabolize caffeine. It takes longer for thinner, or pregnant women. Newborns cannot metabolize caffeine. Nicotine moderates the mood, extends attention, and doubles the rate of caffeine metabolism.

Then Linda mentioned that without adequate sleep, we are not at our best, physically, mentally or emotionally. We have come to believe that sleep is a waste of time and makes us overall les productive. As a result, we are sleep deprived and our brains show visible signs of premature aging.

Linda shared research that shows that caffeine is not better than breaks. It improves “vigilance tasks” – prolonged attention, little physical activity. But a good night’s sleep improves performance, mood, and alertness better than caffeine and the benefits last longer. For simple tasks, caffeine improves performance. But on complex tasks, extroverts’ performance tends to improve, while introverts’ tends to get worse.

Finally, Linda showed how spiders on different drugs performed (marijuana, chloral hydrate, Benzedrine and caffeine). The spider web of a spider on caffeine had no architecture, no regularity, no structures what so ever and was rather erratic.

Linda wraps up by questioning if agile is the new caffeine. It is energizing, stimulating, fun and addictive. It also has side effects: irritable, restless, anxious, and sleepless and teams get themselves into a lot of hot water! Is what is good for teams good for us? Linda wonders if we can do a better job instead of living our lives as we did in the industrial age.

This presentation is available on InfoQ at