Showing posts with label Scrum. Show all posts
Showing posts with label Scrum. Show all posts

Sunday, May 24, 2009

Do we really need to sit together?

I think co-location rocks for teams.  The first time I had the pleasure of trying Scrum proper-like I stuck three devs in a broom cupboard to work together, one of them still talks to me (he even uses nice words).  Is co-location really important?  Software development is a social process so people will communicate anyway even if they are close but not co-located, won't they?

In Managing the Design Factory Donald G. Reinertsen has a graph very much like this one.  It shows the probability of technical people communicating weekly by distance.  The original data is from a 1977 publication, so pre-email/SMS/IM/Twitter.

Warning - graph is an approximation of the data. As I don't have the actual data I have reproduced this as best I can.
At a distance of 10 metres the probability of technical people communicating to each other everyday is pretty low.  

If you're working in a serialised process you probably don't care - they don't need to communicate, it's in the spec.  

If you're working with a concurrent or collaborative process then you need the people side by side.

"But we have a stand up/daily scrum, so everyone communicates once a day.  We can skip this co-location bollicks and leave people at their desk."  OK, but are you more more open with someone you know well or someone you don't know well?  Co-location allows people to have the general getting know each other conversations that break down barriers and build relationships allowing for richer communication so they can tackle more important issues (eg What's blocking me). So nerr.

Saturday, March 14, 2009

Book Review - Scaling Lean & Agile Development: Thinking and Organizational Tools for Large-Scale Scrum

Scaling Lean & Agile Development: Thinking and Organizational Tools for Large-Scale Scrum (Agile Software Development Series) Scaling Lean & Agile Development: Thinking and Organizational Tools for Large-Scale Scrum by Craig Larman

My review

rating: 5 of 5 stars
This is a fantastic book to help with the issues of taking scrum/agile/lean/xp from a small software development team into a much larger scale product development effort. The depth of knowledge and experience of the authors is demonstrated by the fact that they don't give any silver bullets, but describe tools for dealing with complexity of scaling.

The first half of the book on Thinking tools is well considered and useful. Most of it isn't a surprise to me, but the section is well written and distills the fundamentals of systems thinking, lean thinking, queuing theory, false dichotomies and being agile very well. These thinking tools are used to help the reader understand the concepts in the second part of the book on Organisational tools.

Organisational tools is fantastic, covering Feature teams, Teams, Requirement areas, Organisation, and Large-scale Scrum. Using experience and the thinking tools Larman & Vodde describe why you would adopt these tools to help scale. I regularly did the "d'oh, it's so obvious when you put it like that" forehead slap reading this section of the book.

The recommended readings and fantastic reference list at the end will ensure I blow another huge wad on books this year.




View all my reviews.

Saturday, February 14, 2009

Scrum Chef

Similarities of Iron Chef (Japan) and Scrum:

ScrumIron Chef
Time boxing60 minute battle
Sprint themeTheme ingredient
Single Product ownerChairman Kaga
Sprint planningMenu planning (esp Michiba)
Daily ScrumRegular getting together of chefs with Iron chef/challenger
Sprint reviewTasting and judgement
Sprint retrospective - - -
Self organised teamsIron Chef/Challenger with a team of trusted chefs carry out the work


OK, there are quite a few differences too.


Tuesday, November 11, 2008

Scrum certification test

At the Stockholm Scrum Gathering there was beta of the soon to be used test for CSM certification. It was an online, multiple guess test that covered topics you'd read in the three scrum books, and learn on the course or working on a project using scrum. There were a few questions on the agile manifesto, something I don't remember talking about when I did the CSM course. I thought it was quite good, and many of the questions required some thought, rather than a rote response.

After InfoQ wrote an article* on the test there has been an almighty flap (big enough to penetrate the usual volume of noise) on the Yahoo scrum development group. People firing off their 2c worth (0.5 c Australian) on things like:
  • Certification means nothing
  • The test is ridiculous
  • It's testing the wrong stuff
  • The CSM is not what people really want
  • You could end up learning the wrong thing by taking the test
For a group of people who should be pushing the idea of continuous improvement - Inspect and Adapt people! - I am amazed at the carry on. The toys are well out of the pram on this one.

The only point from the whole broo-ha-ha worth repeating is from Ron Jeffries:

"How did it suddenly get necessary to do everything right the first time?"


* article in the sense of taking quotes from the Yahoo group and arranging them.

BTW - My mark was 88! Missed the top score by 1. Blast.

Thursday, October 30, 2008

The best things in life are free, but that's for the birds and the bees

Compensation of agile teams (XP teams, scrum teams, what-have-you) is a tricky issue. Ken Schwaber takes a stab at it in "The Enterprise and Scrum" (if you haven't read it, the bad news is the lack of Star Trek references) where he ties parts of compensation to enterprise performance (doesn't even say "warp factor" anywhere) which is nice because you want everyone focused on the enterprise and not their individual role. Mary and Tom Poppendieck have a swing at it in "Implementing Lean Software Development" and make some nice points about promotion, influence and my favourite "Find better motivators than money" - something I particularly support because
1 - I'm not motivated by money (ok I like not being poor, but I prefer books & music to cash though I do like Pink Floyd's Money)
2 - It works with Prof Vroom's expectancy theory, which looks to have some reasonable thinking behind it and how can you doubt someone with onomatopoeia for a surname?

The problem with compensation is - IMHO - organisations couple compensation with organisational structure and motivation/incentive (can you couple three things?). The higher up the structure the more compensation, and the bigger and broader the bonus (eg retention bonuses). When you have a self-organising, cross-functional team the structure is removed. These teams are organised around enterprise/product/project goals so incentive for role based performance fractures the team mindset.

So here is an idea I have been toying with ready to be torn apart by better thinkers.

Salary should be a factor of responsibility and (positive) influence (ok that does mean the higher up you go in the org chart the more salary you should have). Individuals with great deal of organisation experience should have both of these, ie if you can influence how the organisation behaves you should have some overt responsibility for the outcome. This allows for people with different skills and preferences to be adequately payed without giving up their vocational passion to earn more by becoming a manager.

If there must be a bonus give it at the team level, if there are multiple teams give it at the project level. Then have the team decide how to adequately distribute the bonus. Wait, that was too easy, and you can't trust the team to look after that kind of thing - but you can trust them to deliver on a strategic, money making project.

Ok, how about do it like this. If there is monetary bonus it should be associated with the outcome of some work. Some of the benefit the organisation receives from this work should be taken to reward the team. I now depart from K Schwaber's idea in that I think the bonus should distributed dependant on your contribution, and not you seniority. Taking Kerth's Prime Directive (that's a touch treky "remember the prime directive number 2s") everyone has worked to the best of their ability and I think should be rewarded evenly, they are already being payed based on the difference in influence and responsibility so don't double up.

Distribute the bonus based on the number of days/iterations people were working on the project. If you're on the gig from day one, you receive the maximum amount, if you're on it one day it's the minimum. People who work across projects in a kind of consulting role should pick up the dosh from all the projects they touch.

To make this work all projects will have to have explicitly stated value that can be demonstrated, which is surely a good thing. Think of the pleasure of portfolio management.

A side effect would be that everyone wants to be on a small team doing a high value project. Which is ok, because why would you do low/no value projects, and to deal with the need to have longer project have these projects do multiple releases to deliver some return before the end of the project.

No one will want to work in BAU or Support, so get rid of it. "Developers should eat their own dog food" J Sutherland 2008. If you make it/design it/depploy it you're responsible for it. So this should keep people focused on delivery high quality results.

The product owners that regularly return their estimated value would quickly stand out, not just in the finance department, but when teams form everyone will want to work with these people.

There must be significant problems with this agile utopia, but I hate to contradict myself so I'm not going to think about it. I also didn't bother with expectancy theory and trying to work out the motivators for individuals, get over it - I did. There is nothing here about how to hire or review people if this is implemented, sorry about that.

Monday, October 27, 2008

The big bang smack down

Recently watched a couple of peeps from Salesforce.com give a presentation on their fanfare, reverb for the voice "agile transformation". There were many points to their presentation that made me go "ewww" and "ahhh" but what struck me the hardest was the big bang, all at once approach for the change.

My general opinion is incremental change, prove the new stuff works, and grow teams and projects organically from this. The hassle with this is the still running waterfall projects that will be running when the first agile project is started. No agile project in a normal waterfall shop will start well, it will be a complete disaster, every problem from every project will be exposed in the first few weeks. The project will be red - because project managers can only cope with three colours - and everyone up and down the food chain will hate it. The concurrent waterfall projects will be considered a haven of tranquility and good news, not like that *$#@ing agile project. Any team member who isn't comfortable in the new project will want to run back to the good ol' way and they will have the voice - from experience - to let everyone know how crappy the agile project is.

If you do all projects at once, every person and team, then everyone has a crappy time together. There is no "well running waterfall project" (ohh look at that spec, and that Gantt chart, now that's how you deliver software) to turn back to, to compare to, to contrast with. It's all or nothing. Lance the boil. I like it.

Sunday, June 15, 2008

Learning - Maturity

Watching two games of netball last weekend I witnessed an example of team maturity.

The first game was children learning their favourite game. Two good teams, but both are still learning how to play the game. Both sides were "teams", people drawn together with a purpose and direction. They worked together to achieve a goal - no pun intended.

The second game was a professional game with highly skilled and trained athletes. These teams are made up of masters of the game, some of the best players in the world were on the court. The rules were the same as the first game and the outcome was just as close (one point) but the execution was different.

The first teams were strongly focused on what they needed to do in their role, where they could go on the court, where their matched opponent was, what ritual in the game was being performed. The children would stop suddenly at the sideline or the line of their zone. They knew if they were Centre there was another Centre to look for, when the ball left their zone they stopped as there was nothing more they could do. They exemplified a strong demarcation in their roles and actions, and this is part of learning about the game. Just like learning a new role, or new job.

The second teams were markedly different. Apart from the skill, the boundaries were constantly being pushed. The ball moved forward, across and back down the court with the one team working as an organism attempting to achieve their purpose. Individual marking was replaced with a zone, if one-on-one marking was required marking your exact opposing player was less relevant, what mattered was that opposition players were all marked. The lines of the court meant Jump! Stretch! as the players played the ball in the air, not touching down out of the court or offside until they had passed. The team worked within the rules but pushed each one.

What am I going on about?

A team that works within its rules and boundaries without pushing these can achieve their goal, but is an immature team or a team that is learning what it can do. A great team is the team that pushes their boundaries to achieve their goals. The focus shifts from individual effort first to team first.

Hardly profound