Transitioning to Agile Vivek Prahlad, ThoughtWorks [email_address]
Agenda <ul><li>A brief introduction to Agile </li></ul>
Agenda <ul><li>A brief introduction to Agile </li></ul><ul><li>Before starting off a transition </li></ul>
Agenda <ul><li>A brief introduction to Agile </li></ul><ul><li>Before starting off a transition </li></ul><ul><li>Getting ...
Agenda <ul><li>A brief introduction to Agile </li></ul><ul><li>Before starting off a transition </li></ul><ul><li>Getting ...
Agenda <ul><li>A brief introduction to Agile </li></ul><ul><li>Before starting off a transition </li></ul><ul><li>Getting ...
What is Agile?
Agile is a way of developing software that's all about acknowledging (and embracing) change
Incremental
Iterative
Adaptive
What is Agile? <ul><li>Incremental </li></ul><ul><ul><li>Build a system gradually </li></ul></ul><ul><ul><li>Demonstrate p...
What is Agile? <ul><li>Incremental </li></ul><ul><ul><li>Build a system gradually </li></ul></ul><ul><ul><li>Demonstrate p...
What is Agile? <ul><li>Incremental </li></ul><ul><ul><li>Build a system gradually </li></ul></ul><ul><ul><li>Demonstrate p...
The pillars of Agile <ul><li>Collaboration </li></ul><ul><li>Testing </li></ul><ul><li>Automation </li></ul><ul><li>Feedba...
Agile teams
Working on a Agile team <ul><li>Representation across all roles </li></ul><ul><ul><li>Developers, Analysts, Testers, Itera...
Example <ul><li>As a customer, I'd like to pay for books with a credit card </li></ul><ul><li>Acceptance tests </li></ul><...
Release planning <ul><li>Involves all stakeholders </li></ul><ul><li>Helps set goals for development </li></ul><ul><li>Typ...
What do iterations look like? Analysis - 2 Analysis - 3 Development - 1 Development - 2 Testing - 1 Analysis - 4 Developme...
What do iterations look like?
Flavours of Agile <ul><li>Xtreme Programming (XP) </li></ul><ul><li>Scrum </li></ul><ul><li>Feature Driven Development </l...
XP practices
Starting off a transition
Food for thought <ul><li>Transitioning to Agile has consequences </li></ul><ul><li>Not a silver bullet </li></ul><ul><li>N...
Picking a project: <ul><li>Choose a significant project </li></ul><ul><li>Greenfield vs existing project </li></ul>
Picking a team: <ul><li>Full representation of all roles </li></ul><ul><li>Start small, grow incrementally </li></ul><ul><...
What transitioning to Agile means for teams
Agile for developers: <ul><li>Test Driven Development </li></ul><ul><li>Incremental design and Architecture </li></ul><ul>...
Agile for architects: <ul><li>Everything we just talked about </li></ul><ul><li>No Big Design Up Front </li></ul>
Agile for testers: <ul><li>Early (and incremental) testing </li></ul><ul><li>Collaboration with development </li></ul><ul>...
Agile for analysts: <ul><li>Getting user stories right </li></ul><ul><li>Story independence </li></ul><ul><li>Incrementall...
Agile for managers: <ul><li>Facilitating vs. Controlling </li></ul><ul><li>Getting the team what they need </li></ul><ul><...
Agile for the team: <ul><li>Collaborative software development </li></ul><ul><li>Shared workspace </li></ul><ul><li>Shared...
Cultural Issues <ul><li>Successful agile teams are self-organized </li></ul><ul><li>Team members choose tools, what they'l...
Getting started
Getting started <ul><li>Starting with a retrospective </li></ul><ul><li>Release planning </li></ul><ul><li>Picking practic...
Starting with a retrospective <ul><li>Helps identify issues that need solving </li></ul><ul><li>Allows the team to priorit...
Release Planning <ul><li>Involves the whole team </li></ul><ul><li>Helps evolve a shared understanding of what the team is...
Picking practices <ul><li>Management and technical practices go hand in hand </li></ul><ul><li>Cherry picking practices re...
Picking practices
Workspaces <ul><li>The design of your workspace matters </li></ul><ul><li>Large tables more effective than cubicles </li><...
Quality and Testing <ul><li>Testing an integral part of development </li></ul><ul><ul><li>Acceptance tests </li></ul></ul>...
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 stakeho...
Visibility for stakeholders <ul><li>Release plan </li></ul><ul><li>Story wall </li></ul><ul><li>Agile Project Management t...
Retrospectives <ul><li>Helps bring out issues </li></ul><ul><li>Improvement, not assigning blame </li></ul><ul><li>Importa...
Tools for agility: <ul><li>Wikis can help enhance collaboration </li></ul><ul><li>Several agile project management tools n...
Myths and Antipatterns
Myths <ul><li>Scrum equals Agile </li></ul><ul><li>No documentation </li></ul><ul><li>Cowboy coding </li></ul><ul><li>Don’...
Antipatterns <ul><li>Trying to force-fit Agile into CMM </li></ul><ul><li>Separate testing team </li></ul><ul><li>Too much...
Summary <ul><li>Transitioning to agile needs (a lot of) homework </li></ul><ul><li>Need to know where you are... </li></ul...
Questions? [email_address]
Upcoming SlideShare
Loading in...5
×

Transitioning To Agile Webinar Presentation

1,290

Published on

Transitioning to Agile: In this webinar, attendees will learn how projects can transition to Agile from non Agile environments. This session will throw light on the unique set of challenges and trade-offs that involve cultural, technical and process issues while transitioning to Agile Development.

Speaker profile: Vivek Prahlad is a Delivery Manager at ThoughtWorks Studios, where he helps build Twist, a next generation Functional Testing tool. During his career, Vivek has worked as a Technical Lead, Agile Coach and Project Manager. Vivek is also the author of Frankenstein an open source testing tool for Swing applications.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,290
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
72
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transitioning To Agile Webinar Presentation

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

    Clipping is a handy way to collect important slides you want to go back to later.

×