Transitioning to Agile Vivek Prahlad, ThoughtWorks [email_address]
Agenda A brief introduction to Agile
Agenda A brief introduction to Agile Before starting off a transition
Agenda A brief introduction to Agile Before starting off a transition Getting started with a transition
Agenda A brief introduction to Agile Before starting off a transition Getting started with a transition What transitioning to agile means for teams
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
What is Agile?
Agile is a way of developing software that's all about acknowledging (and embracing) change
Incremental
Iterative
Adaptive
What is Agile? Incremental Build a system gradually Demonstrate progress
What is Agile? Incremental Build a system gradually Demonstrate progress Iterative Multiple releases (every month or so) Iterations (usually one or two weeks)
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
The pillars of Agile Collaboration Testing Automation Feedback
Agile teams
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
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
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
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
What do iterations look like?
Flavours of Agile Xtreme Programming (XP) Scrum Feature Driven Development DSDM
XP practices
Starting off a transition
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
Picking a project: Choose a significant project Greenfield vs existing project
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
What transitioning to Agile means for teams
Agile for developers: Test Driven Development Incremental design and Architecture Refactoring Continuous Integration Craftsmanship Discipline
Agile for architects: Everything we just talked about No Big Design Up Front
Agile for testers: Early (and incremental) testing Collaboration with development Collaboration with analysts Automate, automate, automate!
Agile for analysts: Getting user stories right Story independence Incrementally building features
Agile for managers: Facilitating vs. Controlling Getting the team what they need Removing roadblocks Self organized teams
Agile for the team: Collaborative software development Shared workspace Shared responsibility for quality Shared responsibility for meeting team goals
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?
Getting started
Getting started Starting with a retrospective Release planning Picking practices Retrospectives
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
Release Planning Involves the whole team Helps evolve a shared understanding of what the team is building Recommend a short release plan
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
Picking practices
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
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
The Cost of Change
The Cost of Change Defect found during  TDD
The Cost of Change Defect found during  continuous integration Defect found during  TDD
The Cost of Change Defect found during  continuous integration Defect found during  TDD Defect found due To active stakeholder participation
Visibility for stakeholders Release plan Story wall Agile Project Management tools can help
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
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)
Myths and Antipatterns
Myths Scrum equals Agile No documentation Cowboy coding Don’t know what’s round the corner
Antipatterns Trying to force-fit Agile into CMM Separate testing team Too much scale Using the wrong tools
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
Questions? [email_address]
All responses to questions will be posted at    http://thoughtworker.com/masterclass To know more about our events  and  up coming webinars please visit  www.thoughtworker.com/events To get in touch with us, please email us at  [email_address]

Transitioning To Agile

  • 1.
  • 2.
    Transitioning to AgileVivek Prahlad, ThoughtWorks [email_address]
  • 3.
    Agenda A briefintroduction to Agile
  • 4.
    Agenda A briefintroduction to Agile Before starting off a transition
  • 5.
    Agenda A briefintroduction to Agile Before starting off a transition Getting started with a transition
  • 6.
    Agenda A briefintroduction to Agile Before starting off a transition Getting started with a transition What transitioning to agile means for teams
  • 7.
    Agenda A briefintroduction to Agile Before starting off a transition Getting started with a transition What transitioning to agile means for teams Myths and Antipatterns
  • 8.
  • 9.
    Agile is away of developing software that's all about acknowledging (and embracing) change
  • 10.
  • 11.
  • 12.
  • 13.
    What is Agile?Incremental Build a system gradually Demonstrate progress
  • 14.
    What is Agile?Incremental Build a system gradually Demonstrate progress Iterative Multiple releases (every month or so) Iterations (usually one or two weeks)
  • 15.
    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
  • 16.
    The pillars ofAgile Collaboration Testing Automation Feedback
  • 17.
  • 18.
    Working on aAgile 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
  • 19.
    Example As acustomer, 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
  • 20.
    Release planning Involvesall stakeholders Helps set goals for development Typically 1-3 months horizon Prototypes, R & D Final output: Release plan (features, stories) Estimates
  • 21.
    What do iterationslook like? Analysis - 2 Analysis - 3 Development - 1 Development - 2 Testing - 1 Analysis - 4 Development - 3 Testing - 2 Time Iteration 1 Iteration 2 Iteration 3
  • 22.
  • 23.
    Flavours of AgileXtreme Programming (XP) Scrum Feature Driven Development DSDM
  • 24.
  • 25.
    Starting off atransition
  • 26.
    Food for thoughtTransitioning 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
  • 27.
    Picking a project:Choose a significant project Greenfield vs existing project
  • 28.
    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
  • 29.
    What transitioning toAgile means for teams
  • 30.
    Agile for developers:Test Driven Development Incremental design and Architecture Refactoring Continuous Integration Craftsmanship Discipline
  • 31.
    Agile for architects:Everything we just talked about No Big Design Up Front
  • 32.
    Agile for testers:Early (and incremental) testing Collaboration with development Collaboration with analysts Automate, automate, automate!
  • 33.
    Agile for analysts:Getting user stories right Story independence Incrementally building features
  • 34.
    Agile for managers:Facilitating vs. Controlling Getting the team what they need Removing roadblocks Self organized teams
  • 35.
    Agile for theteam: Collaborative software development Shared workspace Shared responsibility for quality Shared responsibility for meeting team goals
  • 36.
    Cultural Issues Successfulagile 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?
  • 37.
  • 38.
    Getting started Startingwith a retrospective Release planning Picking practices Retrospectives
  • 39.
    Starting with aretrospective Helps identify issues that need solving Allows the team to prioritize issues that need fixing Can help choose the practices that will address issues
  • 40.
    Release Planning Involvesthe whole team Helps evolve a shared understanding of what the team is building Recommend a short release plan
  • 41.
    Picking practices Managementand technical practices go hand in hand Cherry picking practices requires experience Practices are interdependent Choose an iteration length An experienced Agile coach can help
  • 42.
  • 43.
    Workspaces The designof your workspace matters Large tables more effective than cubicles Informal communication requires close proximity Large monitors, two keyboards per workstation can help Pair Programming
  • 44.
    Quality and TestingTesting 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
  • 45.
  • 46.
    The Cost ofChange Defect found during TDD
  • 47.
    The Cost ofChange Defect found during continuous integration Defect found during TDD
  • 48.
    The Cost ofChange Defect found during continuous integration Defect found during TDD Defect found due To active stakeholder participation
  • 49.
    Visibility for stakeholdersRelease plan Story wall Agile Project Management tools can help
  • 50.
    Retrospectives Helps bringout 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
  • 51.
    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)
  • 52.
  • 53.
    Myths Scrum equalsAgile No documentation Cowboy coding Don’t know what’s round the corner
  • 54.
    Antipatterns Trying toforce-fit Agile into CMM Separate testing team Too much scale Using the wrong tools
  • 55.
    Summary Transitioning toagile 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
  • 56.
  • 57.
    All responses toquestions will be posted at http://thoughtworker.com/masterclass To know more about our events and up coming webinars please visit www.thoughtworker.com/events To get in touch with us, please email us at [email_address]