Today, we did a Discovery Session at Agile 2007. The topic? How do we implement agile. We worked in five teams that each created a roadmap for implementing agile based on their experience and their role in the organisation: management, team and customer.
A big thank you goes out to everyone who participated. Please add your comment and notes to this blog entry.
Michelle K. Cole, VP of Operations at ENVISAGE Technologies kindly wrote up the findings from the five teams as they presented. Here they are.
Where Should a Manager Start?
- get executive sponsorship
- create vision & trust
- education about benefits of agile
- create common language and measurements
- show value to team (what’s in it for me), benefits to the projects
- provide a supportive environment
- figure out success factors
- set up agile advocate group
- identifying if you need external coaches
- establish team maturity model
- staffing – hire those people that might be good in this environment (you might even need to fire some if there is too much resistance).
- empower them to come up with a better solution
- create a system of custom ownership
- use peer pressure to bring other people along
The other Management team offered this approach:
- do a big kick-off event
- send key people to conferences like Agile 2007 etc.
- provide readers/skeptics with books - some people learn well from books and many techies like to read a lot.
- pilot a project & praise success
- encourage culture of trying things
- meet with individuals to understand pain points and processes to keep
- Establish brown bags/training for people that like that style
- Rearrange workspace so team sits together
Guerilla Tactics for Teams - Developers/Project Managers/QA
- how to overcome resistance to sitting in team room
- have stand up in team room and don't let them leave afterwards!
- how to get space for collocation
- squatting long term
- have stand up outside mgmt office
- furniture on wheels
- midnight runs
- resistance to pairing
- o stealth pairing (ask people to help another)
- o set up a pair station
- o coolest equipment in the pairing machines
- o have appropriate hardware to pair (2 keyboards, two monitors, movable desks)
- resistance to collaboration
- make sure there are common goals
- resistance to agile
- convince the cool kid it is cool
- explain there isn’t that much change
- bust the myths
- mandated process
- resistance to TDD & automated tests
- demonstrating the usefulness
- pair with fans of TDD
- involve QA
- have the business analysts work with QA on acceptance tests
- PM resistance
- Show other non-software projects
- Shadow existing projects
- Send the PM on vacation
Also from a Team perspective
- Agile is not binary; it is a continuum. You are someplace. Where do you want to be tomorrow?
- Change should not be inflicted upon people. You should figure out what you can do and start to make that change.
- As a developer, start doing TDD.
- As a team, start doing stand up.
- Agile provides many benefits. Figure out which benefit you are trying to achieve most and start with the following:
- Focus on Feedback - Fix length iterations with retrospective
- If you need Flexibility - TDD is a good practise
- Communication Issues are addressed Daily stand ups
This was a very interesting team. Most of the people in the session had experienced resistance to implementing agile. The people from Yahoo, however, had not - for their two teams they just did a team meeting, introduced the agile practises and since the teams liked it they decided to do it. Unlike most of the other people in the session they were completely self-organising and met no resistance to the change from their team, the management or the rest of the organisation.
The group presented some suggestions for going agile
- Get trained together to improve buy in
- Be where the developers are; wait for them to ask questions
- Us v. them – start doing things together as a team, may want to get an outsider to help build trust
- Define product backlog & prioritize
Doing Agile with Outsourcing
- Use Scrum of scrums to synch the teams and beware of time-zone issues.
- Have people go to other locations for a while to build trust and improve collaboration.
- Find a balance of documentation – increase to improve communication.
Partial change - do it gradually (actually, other cases like the Salesforce.com experience report we mentioned the other day advocates going all-in).
Survey people on what they need and fix it - it is often small things that make a big difference
- If the rooms feel to sterile let people hang personal items from ceiling (eg pictures)
- Add plants
Empowerment based on company directives
- Switch to work in conference rooms and use offices for personal time (eg. phone calls).