More Related Content
Similar to Agile adoption patterns and antipatterns
Similar to Agile adoption patterns and antipatterns (20)
Agile adoption patterns and antipatterns
- 2. 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.
- 3. 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 methods
in 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 …
- 4. 4© Valtech 2007
Manifesto for Agile Software Development
We are uncovering better ways of developing
software 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
- 5. 5© Valtech 2007
Principles behind the Agile Manifesto
We follow these principles:
Our highest priority is to satisfy the customer
through 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 work
together 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 be
able 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.
- 6. 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
- 7. 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
- 8. 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
- 9. 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
- 10. 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 track
their 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
- 11. 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 at
their 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 spending
good money to play games
Avoiding resistance, Visionary wisely decided on two pilot projects
with 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
- 12. 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 successful
traditional media company. Large investments in online technology had
yet to produce the anticipated revenues. Development had been
outsourced to large consulting companies using waterfall methodologies
and RUP; after 2 failed attempts and more than $50 million, nothing had
been 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 was
taken:
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
- 13. 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
- 14. 14© Valtech 2007
Case Study: Agile transformation and Outsourcing
Patterns and Anti-patterns
A software products company (SPC2) with an aging but successful
legacy application decided to build a new n-Tier Java platform
using an outsourced partner
SPC2’s CIO realized they would need to keep some development
on site and would need a common methodology: Agile.
Valtech helped define, coach and implement Agile methodology
and 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, build
process, change control process and requirements management
After 16 months, 130+ staff on 12 projects were delivering
production software on the Java platform using Agile methods
- 15. 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 need
energy 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 pick
just a few of the practices; they work best as a whole
- 16. 16© Valtech 2007
Agile pilot project patterns
Engage with experienced agile experts to train and coach your
organisation
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 build
server, efficient SCM software, communications, white boards, wiki;
consider a best-of-breed Agile tool such as RallyDev
- 17. 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 product
owner and scrum master at the same time
Keeping your project’s successes (and failures) a secret from
management
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
- 18. 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 insulation
from 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) that
are in progress
– Hold the daily stand up meeting at the same place and time
- 19. 19© Valtech 2007
Anti patterns in the work space
Multiple teams working in the same open space without sound
barriers
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 necessary
communication tools to collaborate with the onsite team
People assigned to multiple projects, especially when working
with the project team in the same location
Taking mobile phone calls in the team project room
- 20. 20© Valtech 2007
Common process Anti-patterns
Building lots of requirements e.g. 6 month’s worth – before
beginning development. This kills the collaboration between
business 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 advance
of development
- 21. 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
- 22. 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