Transitioning To Agile Webinar Presentation
-
Upload
thoughtworks -
Category
Technology
-
view
1.277 -
download
0
description
Transcript of Transitioning To Agile Webinar Presentation
Copyright ThoughtWorks, 2009
Agenda
• A brief introduction to Agile
Copyright ThoughtWorks, 2009
Agenda
• A brief introduction to Agile• Before starting off a transition
Copyright ThoughtWorks, 2009
Agenda
• A brief introduction to Agile• Before starting off a transition• Getting started with a transition
Copyright ThoughtWorks, 2009
Agenda
• A brief introduction to Agile• Before starting off a transition• Getting started with a transition• What transitioning to agile means for
teams
Copyright ThoughtWorks, 2009
Agenda
• A brief introduction to Agile• Before starting off a transition• Getting started with a transition• What transitioning to agile means for
teams• Myths and Antipatterns
Copyright ThoughtWorks, 2009
What is Agile?
Copyright ThoughtWorks, 2009
Agile is a way of developingsoftware that's all about
acknowledging(and embracing) change
Copyright ThoughtWorks, 2009
Incremental
Copyright ThoughtWorks, 2009
Iterative
Copyright ThoughtWorks, 2009
Adaptive
Copyright ThoughtWorks, 2009
What is Agile?
• Incremental–Build a system gradually–Demonstrate progress
Copyright ThoughtWorks, 2009
What is Agile?
• Incremental–Build a system gradually–Demonstrate progress
• Iterative–Multiple releases (every month or so)–Iterations (usually one or two weeks)
Copyright ThoughtWorks, 2009
What is Agile?
• Incremental–Build a system gradually–Demonstrate progress
• Iterative–Multiple releases (every month or so)–Iterations (usually one or two weeks)
• Adaptive–Accommodate changes to goals–Incorporate feedback, lessons learned
Copyright ThoughtWorks, 2009
The pillars of Agile
• Collaboration• Testing• Automation• Feedback
Copyright ThoughtWorks, 2009
Agile teams
Copyright ThoughtWorks, 2009
Working on a Agile team
• Representation across all roles–Developers, Analysts, Testers, Iteration /
Project Managers• Whole team part of iteration planning• Unit of work is the 'User Story'
– Includes acceptance criteria
Copyright ThoughtWorks, 2009
Example
• As a customer, I'd like to pay for books with a credit card
• Acceptance tests–Check payments with Visa–Check payments with Discovery–Should not allow payments with invalid
card–Should inform about declined payments
Copyright ThoughtWorks, 2009
Release planning
• Involves all stakeholders• Helps set goals for development• Typically 1-3 months horizon• Prototypes, R & D• Final output:
–Release plan (features, stories)–Estimates
Copyright ThoughtWorks, 2009
What do iterations look like?
Analysis - 2 Analysis - 3
Development - 1 Development - 2
Testing - 1
Analysis - 4
Development - 3
Testing - 2
Time
Iteration 1 Iteration 2 Iteration 3
Copyright ThoughtWorks, 2009
What do iterations look like?
Copyright ThoughtWorks, 2009
Flavours of Agile
• Xtreme Programming (XP)• Scrum• Feature Driven Development• DSDM
Copyright ThoughtWorks, 2009
XP practices
Copyright ThoughtWorks, 2009
Starting off a transition
Copyright ThoughtWorks, 2009
Food for thought
• Transitioning to Agile has consequences• Not a silver bullet• Not easy• Take the time to think through practices• And why they exist• Executive commitment is critical
Copyright ThoughtWorks, 2009
Picking a project:
• Choose a significant project• Greenfield vs existing project
Copyright ThoughtWorks, 2009
Picking a team:
• Full representation of all roles• Start small, grow incrementally
–Even for experienced agile teams• Critical to identify a customer• Colocated, if possible• Team needs to be involved in release
planning, introductory sessions
Copyright ThoughtWorks, 2009
What transitioning to Agilemeans for teams
Copyright ThoughtWorks, 2009
Agile for developers:
• Test Driven Development• Incremental design and Architecture• Refactoring• Continuous Integration• Craftsmanship• Discipline
Copyright ThoughtWorks, 2009
Agile for architects:
• Everything we just talked about• No Big Design Up Front
Copyright ThoughtWorks, 2009
Agile for testers:
• Early (and incremental) testing• Collaboration with development• Collaboration with analysts• Automate, automate, automate!
Copyright ThoughtWorks, 2009
Agile for analysts:
• Getting user stories right• Story independence• Incrementally building features
Copyright ThoughtWorks, 2009
Agile for managers:
• Facilitating vs. Controlling• Getting the team what they need• Removing roadblocks• Self organized teams
Copyright ThoughtWorks, 2009
Agile for the team:
• Collaborative software development• Shared workspace• Shared responsibility for quality• Shared responsibility for meeting team
goals
Copyright ThoughtWorks, 2009
Cultural Issues
• Successful agile teams are self-organized• Team members choose tools, what they'll
be working on• Managers as facilitators vs directors• Close collaboration – too close for
comfort?
Copyright ThoughtWorks, 2009
Getting started
Copyright ThoughtWorks, 2009
Getting started
• Starting with a retrospective• Release planning• Picking practices• Retrospectives
Copyright ThoughtWorks, 2009
Starting with a retrospective
• Helps identify issues that need solving• Allows the team to prioritize issues that
need fixing• Can help choose the practices that will
address issues
Copyright ThoughtWorks, 2009
Release Planning
• Involves the whole team• Helps evolve a shared understanding of
what the team is building• Recommend a short release plan
Copyright ThoughtWorks, 2009
Picking practices
• Management and technical practices go hand in hand
• Cherry picking practices requires experience
• Practices are interdependent• Choose an iteration length• An experienced Agile coach can help
Copyright ThoughtWorks, 2009
Picking practices
Copyright ThoughtWorks, 2009
Workspaces
• The design of your workspace matters• Large tables more effective than cubicles• Informal communication requires close
proximity• Large monitors, two keyboards per
workstation can help Pair Programming
Copyright ThoughtWorks, 2009
Quality and Testing
• Testing an integral part of development–Acceptance tests–Unit and Integration tests–Functional –Optional: Performance Tests
• Test early, Test often• Continuous Integration
–Fix the test vs. Raising a bug
Copyright ThoughtWorks, 2009
The Cost of Change
Copyright ThoughtWorks, 2009
The Cost of Change
Defect found during TDD
Copyright ThoughtWorks, 2009
The Cost of Change
Defect found during continuous integration
Defect found during TDD
Copyright ThoughtWorks, 2009
The Cost of Change
Defect found during continuous integration
Defect found during TDD
Defect found dueTo active stakeholder
participation
Copyright ThoughtWorks, 2009
Visibility for stakeholders
• Release plan• Story wall• Agile Project Management tools can help
Copyright ThoughtWorks, 2009
Retrospectives
• Helps bring out issues• Improvement, not assigning blame• Important to fix the top few major issues• Repeated at regular intervals• Can help improve processes, team
structure, productivity, etc• Recommend external facilitators
Copyright ThoughtWorks, 2009
Tools for agility:
• Wikis can help enhance collaboration• Several agile project management tools
now available• Xunit tools• IDEs that support refactoring• Continuous Integration tools (like
CruiseControl)
Copyright ThoughtWorks, 2009
Myths and Antipatterns
Copyright ThoughtWorks, 2009
Myths
• Scrum equals Agile• No documentation• Cowboy coding• Don’t know what’s round the corner
Copyright ThoughtWorks, 2009
Antipatterns
• Trying to force-fit Agile into CMM• Separate testing team• Too much scale• Using the wrong tools
Copyright ThoughtWorks, 2009
Summary
• Transitioning to agile needs (a lot of) homework
• Need to know where you are...• ... and what you'd like to get to• Don't underestimate the cultural impact• Several new skills for everyone to learn• Start small, scale can wait• Iterate, tweak, improve