23
Agile Adoption: Patterns and Anti Patterns Greg Hutchings CTO Valtech France

Agile Adoption Patterns And Antipatterns

Embed Size (px)

DESCRIPTION

Greg Hutchings' presentation on Agile Adoption for Agile Bangalore User Group.

Citation preview

Page 1: Agile Adoption Patterns And Antipatterns

Agile Adoption:

Patterns

and

Anti Patterns

Greg HutchingsCTOValtech France

Page 2: Agile Adoption Patterns And Antipatterns

2© Valtech 2007

Agile Adoption: Patterns and Anti-Patterns

In this seminar I will discuss alternative approaches to

beginning the agile journey that have been shown to work

for our clients, including agile training, pilot projects and

co-sourced immersion with experienced agilists.

In addition to the key specific patterns and practices you

should consider for success, we will also discuss agile

adoption anti-patterns - practices that should be avoided

in order to succeed with Agile development in your

software development organisation.

Page 3: Agile Adoption Patterns And Antipatterns

3© Valtech 2007

Introduction

� Greg Hutchings

– Valtech Global Sourcing Project Director and consulting Agile Coach

– 20+ years SW development experience – developer to CTO

� Intended audience: Software development CIOs, VPs and PMs, using or considering Agile methods

� This is about how to help you succeed in introducing Agile methodsin your organisation

� Sharing real world experience gained from helping teams adopt Agile methods in their organisations

� First, for those who don’t know, a very brief background on Agile and Lean Thinking: the Agile Manifesto, the 12 principles of Agile and the 7 principles of Lean Software development …

Page 4: Agile Adoption Patterns And Antipatterns

4© Valtech 2007

Manifesto for Agile Software Development

We are uncovering better ways of developingsoftware by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on

the right, we value the items on the left more.

© 2001 http://agilemanifesto.org

Page 5: Agile Adoption Patterns And Antipatterns

5© Valtech 2007

Principles behind the Agile Manifesto

We follow these principles:

Our highest priority is to satisfy the customerthrough early and continuous delivery

of valuable software.

Welcome changing requirements, even late in development. Agile processes harness change for

the customer's competitive advantage.

Deliver working software frequently, from a couple of weeks to a couple of months, with a

preference to the shorter timescale.

Business people and developers must worktogether daily throughout the project.

Build projects around motivated individuals. Give them the environment and support they need,

and trust them to get the job done.

The most efficient and effective method of conveying information to and within a

development team is face-to-face conversation.

Working software is the primary measure of progress.

Agile processes promote sustainable development. The sponsors, developers, and users should beable to maintain a constant pace indefinitely.

Continuous attention to technical excellence and good design enhances agility.

Simplicity--the art of maximizing the amount of

work not done--is essential.

The best architectures, requirements, and designs emerge from self-organizing teams.

At regular intervals, the team reflects on how to become more effective, then tunes and

adjusts its behavior accordingly.

Page 6: Agile Adoption Patterns And Antipatterns

6© Valtech 2007

7 Principles of Lean Software Development

– Eliminate Waste

– Amplify Learning

– Delay Commitment

– Deliver Fast

– Empower the Team

– Build Integrity In

– See the whole

http://www.poppendieck.com/pdfs/Lean_Software_Development.pdf

Page 7: Agile Adoption Patterns And Antipatterns

7© Valtech 2007

What does a team need to learn to become agile?

� New roles:

– Product Owner

– Scrum Master

– Team

� New artifacts:

– Backlogs

– Burndowns

– Stories

– Automated tests

� New processes:

– Daily standup

– Iteration planning meeting

– Requirements workshops

– Retrospectives

� New practices:

– Functional test automation

– Collaborative requirements

– Test driven development

– Pair programming

� New tools:

– Continuous integration

– Automated test frameworks

– Information radiators

– Agile environment: VCP, Rally

� New thinking:

– Complete transparency

– No heroics; Unified team

– Embrace change

Page 8: Agile Adoption Patterns And Antipatterns

8© Valtech 2007

Agile – how to get started?

� Send our people to Agile training?

� Bring in an Agile coach?

� Begin a pilot project using Agile methods?

� Transform an entire organisation all at once?

� Recruit or engage an experienced Agile team?

� Outsource one or more Agile projects?

The right approach depends upon your situation and goals, and may include some or all of the above

Page 9: Agile Adoption Patterns And Antipatterns

9© Valtech 2007

Alternative adoption strategies

� Do-it-yourself

– Pick up a book on Agile, browse websites, attend seminars

� Get training

– Certified Scrum Master, XP Game

– New in 2007: Valtech Agile certification and training

� Agile pilot project

– Skills transfer is the priority for the coaches, and delivery will also occur.

� Enterprise Agile transformation

– Requires ready organisation, substantial coaching and executive sponsorship

� Co-source with an Agile professional services firm

– Delivery is the priority for the coaches, and skills transfer occurs, as well

� Outsource your Agile projects to an Agile development center

– proximity and offshore alternatives

Page 10: Agile Adoption Patterns And Antipatterns

10© Valtech 2007

Case Study: Do-it-Yourself at Large Company

Patterns and Anti-patterns

� A group of developers who have heard about Agile and read books by Kent Beck, Martin Fowler, Craig Larman et al decide to try it out

� In defiance of the PMO and unsure of themselves, they decide to try one or two of the best practices secretly, to see if they will work

� They begin holding daily standup meetings, using a Wiki and implementing cruise control for continuous integration. They tracktheir work in an iteration backlog and create a burn-down.

� The team has no certified Scrum Master (CSM), and there is no Product Owner.

� The adoption of Agile is not sponsored and the team is not cross-functional – missing product owner, analysts and test

� Although the team of developers are enjoying their new tools and methods, when they announce to management that they will no longer predict project end dates and have « de-scoped » the Release, a strong lash-back occurs and Agile is dropped

Page 11: Agile Adoption Patterns And Antipatterns

11© Valtech 2007

Case Study: Stand alone training at Large Bank

Patterns and Anti-patterns

� Visionary Sr. IT Manager, experienced with XP, wished to transform his entire IT group of 150 people to Agile methods

� A half day workshop was arranged to include the XP Game attheir annual retreat in the wine country

� The CIO and business leaders were unaware and not sponsors

� Participants learned agile estimation, acceptance testing, and velocity while having fun with the XP Game

� Senior management did not understand why they were spendinggood money to play games

� Avoiding resistance, Visionary wisely decided on two pilot projectswith high business value, using small teams and expert coaching

� Six months later, after successful pilots and adaptation of agile to the bank’s environment, enterprise agile transformation began

Page 12: Agile Adoption Patterns And Antipatterns

12© Valtech 2007

Case Study: Agile pilot projects at SPC

Patterns and Anti-patterns (1 of 2)

SPC (Software Product Company) is an online division of a successfultraditional media company. Large investments in online technology hadyet to produce the anticipated revenues. Development had been outsourced to large consulting companies using waterfall methodologiesand RUP; after 2 failed attempts and more than $50 million, nothing hadbeen delivered.

A new CIO (DSI) and partner were brought in to better align with the business and deliver product within 1 year. The following approach wastaken:

� Confirm key business priorities and select critical projects

� Agree to Agile approach and gain support from sponsors

� Engage experienced partner Agile coaches and team members to initially work on site with staff. Delivery was priority.

� Deliver incrementally, inspect and adapt

Page 13: Agile Adoption Patterns And Antipatterns

13© Valtech 2007

Case Study: Agile pilot projects at SPC

Patterns and Anti-patterns (2 of 2)

� Up front Agile orientation for everyone

� Good sponsor support and no disruption

� Clear roles for Product Owner, ScrumMaster and Team

� Strict time-boxing:

– 3 month releases, budget tracking

– 2 week iterations, working software at end of each iteration

– Daily Scrum meetings, clear communication within team

� Efficient agile requirements workshops, clear acceptance tests

� Multiple co-located, cross functional feature teams

� Continuous integration with automated unit & functional tests

� Pair programming

� Internal QA department joined team late, resisted agile

� Team worked weekends to compensate

� Product shipped on time in a first and second release

Page 14: Agile Adoption Patterns And Antipatterns

14© Valtech 2007

Case Study: Agile transformation and Outsourcing

Patterns and Anti-patterns

� A software products company (SPC2) with an aging but successfullegacy application decided to build a new n-Tier Java platformusing an outsourced partner

� SPC2’s CIO realized they would need to keep some developmenton site and would need a common methodology: Agile.

� Valtech helped define, coach and implement Agile methodologyand built a dedicated Agile offshore development center

� Expert onsite agile coaching was provided over 4 months

� There was an internal Agile champion in senior management

� SPC2 had hired an excellent team open to new ways of working

� Sufficient tools and process infrastructure were provided

� The Agile offshore center followed consistent process and practice methodology, using a common source code repository, buildprocess, change control process and requirements management

� After 16 months, 130+ staff on 12 projects were deliveringproduction software on the Java platform using Agile methods

Page 15: Agile Adoption Patterns And Antipatterns

15© Valtech 2007

Case Study: Your first Agile pilot project?

� Begin with a common understanding of Agile core principles

– ½ - 2 day workshop planned for sponsors, IT management, teams

� Measure your organisation’s readiness to adopt Agile

– Assess current practices, teams and infrastructure to identify issues and needs

� Carefully select a pilot project that has high business value and risks

– Ideally, few external project dependencies and high customer involvement

� Select a small, dedicated team, with an excellent internal champion

– The team will be learning a lot of new ideas and practices rapidly, and will needenergy and enthusiasm. Supplement team with experienced consultants.

� Engage a practicing, experienced certified Scrum Master as a coach

– The Scrum master is central to the team and can help all roles acquire skills.

� Engage sponsorship at the level of CIO and the head of the business

unit, and keep them informed and engaged

– This is something people sometimes overlook – at their eventual peril

� Implement a full set of agile best practices, as in Scrum – do not pickjust a few of the practices; they work best as a whole

Page 16: Agile Adoption Patterns And Antipatterns

16© Valtech 2007

Agile pilot project patterns

� Engage with experienced agile experts to train and coach yourorganisation

� Select a new pilot project that is critical and challenging

� Project should not be too short or too long; 4 - 6 months is good

� Be sure to have a committed and involved business owner

� Begin with a strong, dedicated team of people with technical, learning and communication skills

� Get agile experience on your team; ideally half already have successful agile project experience. Ideal total size; 7 +/- 2

� Provide adequate infrastructure: common project room, CI buildserver, efficient SCM software, communications, white boards, wiki; consider a best-of-breed Agile tool such as RallyDev

Page 17: Agile Adoption Patterns And Antipatterns

17© Valtech 2007

Some project anti patterns

� Selecting a project that is not important

� Forgetting to engage the sponsors in their role

� Having a technical project manager try to play the role of productowner and scrum master at the same time

� Keeping your project’s successes (and failures) a secret frommanagement

� Failing to have retrospective meetings; it is how the team learns

� Keeping a waterfall QA department that does not collaborate or participate in the Agile team

Page 18: Agile Adoption Patterns And Antipatterns

18© Valtech 2007

Agile pilot project patterns

� Workspace considerations

– Use an open space without physical barriers between people

– Be sure that all of the cross functions are co-located

– Use white boards and walls to radiate information

– Be sure that there is adequate table space, light, seating and insulationfrom noise outside the space

– Have people take cell phone calls in the hall or outside – not in the team area

– Be sure that everyone can see the iteration’s stories (requirements) thatare in progress

– Hold the daily stand up meeting at the same place and time

Page 19: Agile Adoption Patterns And Antipatterns

19© Valtech 2007

Anti patterns in the work space

� Multiple teams working in the same open space without soundbarriers

� Open space teams with physical isolation between functions

� Cross functional teams separated by cubicle walls, unable to see each other

� Offshore or offsite teams that do not have the necessarycommunication tools to collaborate with the onsite team

� People assigned to multiple projects, especially when workingwith the project team in the same location

� Taking mobile phone calls in the team project room

Page 20: Agile Adoption Patterns And Antipatterns

20© Valtech 2007

Common process Anti-patterns

� Building lots of requirements e.g. 6 month’s worth – beforebeginning development. This kills the collaboration betweenbusiness owner, analyst and developer

� Creating a traditional test plan which is not related to agile requirements – and generates « change requests » which are really new features but are not treated as such

� On legacy systems that are being evolved, dividing the teams into maintenance teams and new feature development teams (not everyone agrees on this point)

� Planning all of your iterations in advance

� Not asking the time remaining but percentage complete

� Not creating functional tests that can be automated in advanceof development

Page 21: Agile Adoption Patterns And Antipatterns

21© Valtech 2007

Some final Agile Patterns

� Form good relationships within your team and invest in them

� Pick up the phone or talk to the other person instead of email

� Assume that the other person is always doing the best that they can, given their abilities and circumstances

� Think everyday about the things that you should be doing – and the things that you should stop doing

� Remind yourself and your team often of the principles of Agile

� As a Scrum master your top priority is to help your team succeed in delivering valuable software to the customer early and often

� Celebrate your successes and learn from your failures

� Listen to your customer and your team members

Page 22: Agile Adoption Patterns And Antipatterns

22© Valtech 2007

Do your homework: the books David suggested are a great start

– Craig Larman: Agile and Iterative Development, A Manager’s Guide

– Ken Schwaber: Agile Project Management with Scrum

– Mary and Tom Poppendieck: Lean Software Development, Implementing Lean Software Development

Also recommended:

– Norman Kerth: Project Retrospectives

– David Anderson: Agile Management for Software Engineering

– James Coplien and Neil Harrison: Organisational Patterns of Agile Software Development

Many websites are also available:

www.agilealliance.org is a good place to start

Page 23: Agile Adoption Patterns And Antipatterns

23© Valtech 2007

Thank you!

[email protected]