Day 3 and 4 at Agile 2012 meant a large number of interviews for InfoQ, as well as some podcast interviews and numerous hallway discussions. As a result I have combined both days into one post. Here are my notes from the sessions that I attended.
That Settles It! Techniques for Transparent & Trusted Decision-Making on Your Agile Team
Ellen Gottesdiener led this workshop, her slides are available here.
Agile team values, starter list:
- product – quality, value, just enough, validated learning
- people – transparency, accountability, courage, mutual learning
- process – fast feedback, all in collaborate, small steps, retrospect continually
They are a set of values that impact how we will make decisions.
Traps, risks and blunders:
- group dynamics – fallacy of the flawed leader, no diversity in the group, inability to consider alternatives, lack of diversity in the group, group-think (striving for consensus that drives down alternatives)
- process – not understanding the key terms
Decision making styles:
- delegative – group decision, decision leader may delegate decisions to a sub group
- democratic – discuss and take a vote
- consensus – leader and group together agree based on unanimous decision
- consultative – where the group collaborates and consults to a person to make a decision
- consensus – all legitimate concerns should be addressed that impact the group, stakeholders all need to be there, it is not a compromise, there is no bargaining, this is and/both thinking
4S – stake, stakeholders, speed and sustainability of a decision
We then created a 2D gradient to map out decison styles – delegate -> democratic -> consultative -> consensus
Ellen then introduced some decision making research, success was a decision that was used for greater than 2 years
- edict – do it, not very sustainable, used 35% of time, worked 38% of the time
- persuasion – used 49% of the time, worked 44% of the time
- participation – used less than 16% of the time, worked 80% of the time, delegated to a group or sub group
- intervention – delegated but group had guidelines and benchmarks to make a decision, used less than 16% of the time, worked 90% of the time
We then talked about values:
- trust - contractual (shared goals and boundaries), communication (transparent, honest and frequent communication, walking the talk), competency (respectful of others ability of what they do on the team and learning how we can do better as a team, honour our agreements) – is a key part of making decisions
- values for group effectiveness – people need valid information in a timely way to make a free and informed choice, decision rules that enhance internal commitment
Group versus individual decision making:
- accuracy – better at group level – more alternatives, diversity, more points of view
- acceptance – group
- creativity – group
- efficiency – individual
- speed – individual
We then had some final thoughts and questions:
- collaboration pattern – decide how to decide – need to make a decision but know you have made it
- common decision rules – delegate, decide without discussion, negotiation, majority vote, spontaneous agreement, arbitrary, consensus leader decides after decision
- gradient of agreement – endorse, agree with reservations, disagree cannot support (but won’t block), block
- 12 Angry Men – good example of the model
- to reach closure – with decision leader decide on how to decide, with the whole group clarify the decision process, close discussion, clarify proposal, poll group using gradient and decision leader decides or chooses further discussion
- RAPID – effective organisations have clarity in roles around decision making – recommend, agree, perform, input, decide (like a RAPSI)
Evolve Your Agile Coaching Dashboard
David Parker led this workshop, his slides are available here.
We started the workshop bu being given 5 minutes to draw a fact about the group we were sitting in, and could not use any numbers.
- use scrum to coach scrum teams – to get organized and be different from other coaches
- scrum on a team of one – more forgiving because you know what is going on, you are all roles in one
- create a project dashboard – 10 qualities of hyper productive teams, matrix on the wall, denoted yes/no using red/green stickies
We then created our own dashboard based around a scenario that were given.
Fixing Broke(n) Governments Through Serious Games
In keeping with the theme of Agile in non-software, I was very interested in hearing about this initiative from Luke Hohmann from Innovation Games. A copy of his slides from SXSW appear to be similar to those he presented here.
- San Jose, 10th largest city in the USA, in deficit by $115 million, Luke ran into the mayor on a plane…
- games – have a goal, arbitrary constraints, interaction rules, voluntary participation (Jane McGonical) – most people think fun and entertainment when they think game, now we use the term serious games
- serious games - advergames (get you to buy stuff eg. Burger King), edutainment (CBS have news footage for school students), news games, simulations, exergames (Nike have a game to escape zombies to entice running), innovation games
- executives love games because they involve strategy
- San Jose have a yearly planning commission meeting – worse meeting ever, after a powerpoint, all the citizens were given a roll of nickels to vote on the areas that needed attention (the smarter citizens kept the roll of nickels!), got an accountancy firm to count the results, what happens if nobody voted on health care?
- convinced them to try an innovation game because you can blame the consultant!
- first, what is the problem – had already cut the budget to the bone, so the problem was prioritisation
- buy a feature game- give people 40% of the total, give them a ranked list, the reasons for the ranking and the conditions of the acceptance, they can buy what they want but they need to collaborate often
- adapted this game to imagine these are the things cut from the budget but we have no money to fund them (green list) and here are the things you can cut from the budget to try and fund them (red list) – the goal of the game was not for everybody to prioritize everything because there are essential services regardless
- people respond better with physical money rather than things like poker chips
- for a serious game to be serious it must affect the player – they were suggesting things like cutting 5 firemen per truck to 4 to fund anti-gang warfare and park rangers (for example)
- each table had 7 citizens, 1 facilitator and 1 observer – used soloid sticks strapped to pant stirrers that were held up to signal questions – blue for police, red for fire, etc… and the head of that department would answer the question, citizens were seated from different districts at a table so they could not gang up on other districts
- red items needed 100 percent unanimous agreement at the table
- because people are citizens and dealing with real issues they tend to leave their political beliefs out of the discussion
- San Jose citizens chose pavement maintenance over libraries – if the mayor went on record to cut libraries then the friends of libraries group would have come out in disagreement but there is no friends of pavements group
- planning the first game took three months
- when governments say they will cut the budget by 10% they are never specific, made them specify that cut with a smart goal (eg. no new helicopter)
- the agile community donated quarter a million dollars of services and materials pro bono
- the government took action (reductions in fire, police, delays in libraries and elimination of services) and citizens loved the process
- pushed the boundaries in 2012 – tested new taxes, buy one or none and adding new proposals
- budget games are better than budget puzzles – about making cuts not about education and they are collaborative
- prune the product tree – usually for road mapping, used this to identify community service projects, which got shaped into initiatives which were added into buy a feature that the city would seed funding for but the citizens would need to donate time to implement them
- games work for business but needed changes to work for governments – hard to have anonymity in a way the preserves free speech, coordinating large number of players, minimizing bias
- gamification – need to ask can the average citizen play this game, need to level citizens up and play more sophisticated games
- Innovation Games have a network of facilitators and have built trust, but they don’t have all the people and answers – created Every Voice Engaged
- buy a feature works – a shared commitment using a scarce resource, citizens now sign up to community service initiatives using the same ideas
- called it a priority budgeting exercise instead of using the word game
- all the numbers come from the budget and are reviewed by an independent neighbourhood committee
- neighborgoods – reducing consumer goods, sharing materials in the community
- draw roadmaps as trees so you can talk about the -illities, show the critical infrastructure at the root
- our aspirations as a community should be more than decreasing the length of sprints from 20 minutes to 15 minutes – we can do better!
The final story Luke told was how one disadvantaged woman was almost not going to turn up the session because they had always been a waste of time. At the end of the game she stood up and said that she felt empowered because she ” had the same amount of money as everybody else at the table” and was able to make real decisions. Enough said.
Demanding Technical Excellence and Professionalism
Robert “Uncle Bob” Martin presented this session. I had seen most of this content before and did not hear anything much new (I also had to sneak out 10 minutes early to meet up for an InfoQ interview). What was much more interesting was a discussion I had Andrew Prentice from Atlassian at the Conference dinner about the validity of many of the claims that were made in the session (I think we should strive for them but Andrew seemed to think it depends on time and place and the developer).
- bad code, 32000 lines of code in two classes (Order and OrderImpl) – what created that sheer irresponsibility? The fault lies with programmers – they chose to write it that way – that choice is always the wrong choice
- our craft is defined – we have been writing the same sort of code for 40 years – assignment statements, if statements and loops
- wear the green band – acceptance and willingness to follow my craft and unwillingness to comprimise the craft
These are my expectations from craftsmen:
- short iterations – close the feedback loop, down to a week or shorter, deliver working code that passes all the tests and is ready to deploy, programmers should be working in short cycles 20 seconds or less (red-green-refactor loop)
- never be blocked – never wait for anyone, if there is a blockage then go and fix the problem, don’t be stymied!
- screaming architectures – does your code execute the use case without all the external architectures – should scream I am an accounting system not a Java web system, delay for as long as you can decisions about the database or web server , isolate the business rules so you can switch out the database at a moments notice, use decoupled architecture to focus on business rules, these architectures slow down tests
- incremental improvement over grand redesign – grand redesigns tend to expensive and open to failure
- clean code – output should always be clean and kept clean, boys scout rule – do a random act of kindness to the code (leave the camp ground cleaner than you found it)
- go fast, go well – need to flip the professional bit in your head, the only way to go fast is to do good work
- TDD – proportion is growing over the years, can’t write any production code until you have written a unit test, don’t write more of a unit test that is sufficient to fail, don’t write more production code that is sufficient to pass the failing unit test, developers initially find these rules stupid, everything worked a minute ago, always a minute away from working code, don’t want to spend time debugging but want to spend time writing working code, development teams with a long list of defects over a page is not being responsible, confidence to change the code and ship it
- 100% code coverage – what lower number makes sense, there is no other number that makes sense, personal ethics that the tests have good coverage
- QA should find nothing – the QA organisation should wonder why they exist
- statistical estimates – use velocity and it is not a failure if you deliver less, predictable team should have a flat velocity
Wednesday night was the Rodeo Circuit which was an opportunity to collect stamps while visiting all the exhibits. I was lucky enough to win a netbook from the Agile Alliance.
Thursday night was the conference dinner that kicked off with a comedian and followed up with a really good band called Emerald City.
Finally, I recorded a short audio podcast for The Agile Revolution wrapping up days 3 and 4 of the conference.