It’s been a great week at the Agile 2011 Conference. I’ve attended a lot of really good sessions, a few awesome sessions, and luckily only a couple of “meh” presentations. I feel like my mind has been expanded greatly and I’m very excited to come back to the office with some of the new things that I’ve learned.
Here are some of my key takeaways:
The team decides how they will work together, they set rules, and work together in ways that will help the team succeed. Managers empower, facilitate, communicate the “big picture”, set vision and goals, and remove impediments.
Focus on Strengths
By focusing on the strengths of the teams, the team members can use their skills to the best of their abilities. This can be done by letting the team members pick their own tasks and share their strengths or abilities with others. By focusing on individual strengths and working on building those strengths, the individuals will grow faster than by focusing on weaknesses.
People Are Motivated by Autonomy, Purpose, and Mastery
When an employee is compensated fairly, autonomy, purpose, and mastery become much greater motivators than $$$. Money motivations are actually detrimental to knowledge workers. They begin focusing on the wrong things and their work is lower quality. By giving knowledge workers the ability to master skills, have the autonomy to determine their course, and a higher purpose, employees will be motivated to build great things.
Daily Scrums Can Be More Effective
Daily scrums can be more effective by setting the context at the beginning of the stand-up. For example, including things like 1) who will be out of the office during the week 2) stories that must be completed that week 3) days left of the sprint
Kanban + Scrum for Maintenance Teams
For maintenance engineering teams, putting Kanban together with Scrum Sprints can be a very effective method of work. My team has constantly faced challenges of Customer Crisis disrupting our sprints and making it difficult to accurately commit to work that will be completed during the sprint. Making the sprints smaller can help because you can more easily commit to what you will complete during the week. If crisis items need to take priority, that is fine and because you are limiting your WIP (work in progress) through Kanban, you can still keep a focused flow of work that continuously delivers working software/systems.
Pairing or Swarming
Pairing or Swarming can help a team become more productive and produce higher quality work. Pairing is basically pair programming, where one person drives the computer and the other person navigates. This allows the person behind the keyboard to use his L-mode of his brain, while it opens up the other to be more creative, see the bigger picture, and use the R-mode of the brain. Swarming is essentially putting multiple people on a difficult task to push it through to completion.
Setting a limit on the number of stories that can be in the WIP (work in progress) can facilitate pairing or swarming. For example, if you have 6 members of the team and you only allow 3 stories to be “In Progress”, it encourages team members to pair up to get a story done so that another story can go “In Progress”
Beware of Tool Traps
We often trap ourselves into a closed mindset by relying too much on our tools and processes. This can be very much like monkey traps, where a monkey reaches his hand through a small hole in a box to grab a banana. With his hand gripping the banana, his hand no longer fits back through the hole. The monkey could go free by simply letting go of the banana, but will stay trapped because of a refusal to let go. Which of our tools and processes are like the banana?
“Lean” is something that I should be learning more about. It basically takes the principles of lean manufacturing (Toyota) and applies principles to their companies. Some of the main principles of Lean include: reducing waste, becoming disciplined people, and minimizing work in progress.
Agile on Non-IT Projects
Agile principles and tools can help non-IT teams become more effective and to deliver value to their organization more quickly, and with higher quality. We looked at several case studies where law offices, insurance companies, construction jobs, and manufacturing plants adopted Agile methods and saw a strategic improvement in the way they delivered their products. The ironic thing is that much of Agile came from manufacturing, so the use case essentially brought best manufacturing practices back to another manufacturing company from a software perspective.
Office Design Matters
Office space can be optimized to better facilitate Agile practices. Private offices and cubicle walls can be detrimental to the efficiency of an Agile team. Open areas for pair programming, whiteboard spaces, and walls for post-its can help a team collaborate more easily. A radical change in office space cannot successfully be mandated from the top down. It has to be something that the team decides would be useful. Many teams that make the transition, while skeptical at first, find it to be very effective.
Agile Games to Teach Principles
Games can be a very effective way to teach principles to a team. Games can be invented from simple craft materials. An effective model for game invention is: 1) identify the problem to be addressed 2) Identify 2-3 Agile principles that would address the problems 3) build the game and Keep it Simple Sir 4) test the game 5) Prepare retrospective questions to facilitate learning.
Story Mapping gives dimension to user desires for changing the world. By simply using different colored post-it notes, your team can quickly map out User Tasks, User Activities, Stories, and Release Features. Business people and developers alike can easily reference areas of the Story Map because of its simple organization.
All in all, it has been a great conference. For those who attended this event, what gems did you come away with?