Transitioning To Agile Webinar Presentation

55
Copyright ThoughtWorks, 2009 Transitioning to Agile Vivek Prahlad, ThoughtWorks [email protected]

description

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.

Transcript of Transitioning To Agile Webinar Presentation

Page 1: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Transitioning to Agile

Vivek Prahlad, [email protected]

Page 2: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agenda

• A brief introduction to Agile

Page 3: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agenda

• A brief introduction to Agile• Before starting off a transition

Page 4: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agenda

• A brief introduction to Agile• Before starting off a transition• Getting started with a transition

Page 5: Transitioning To Agile Webinar Presentation

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

Page 6: Transitioning To Agile Webinar Presentation

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

Page 7: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

What is Agile?

Page 8: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agile is a way of developingsoftware that's all about

acknowledging(and embracing) change

Page 9: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Incremental

Page 10: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Iterative

Page 11: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Adaptive

Page 12: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

What is Agile?

• Incremental–Build a system gradually–Demonstrate progress

Page 13: Transitioning To Agile Webinar Presentation

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)

Page 14: Transitioning To Agile Webinar Presentation

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

Page 15: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

The pillars of Agile

• Collaboration• Testing• Automation• Feedback

Page 16: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agile teams

Page 17: Transitioning To Agile Webinar Presentation

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

Page 18: Transitioning To Agile Webinar Presentation

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

Page 19: Transitioning To Agile Webinar Presentation

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

Page 20: Transitioning To Agile Webinar Presentation

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

Page 21: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

What do iterations look like?

Page 22: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Flavours of Agile

• Xtreme Programming (XP)• Scrum• Feature Driven Development• DSDM

Page 23: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

XP practices

Page 24: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Starting off a transition

Page 25: Transitioning To Agile Webinar Presentation

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

Page 26: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Picking a project:

• Choose a significant project• Greenfield vs existing project

Page 27: Transitioning To Agile Webinar Presentation

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

Page 28: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

What transitioning to Agilemeans for teams

Page 29: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agile for developers:

• Test Driven Development• Incremental design and Architecture• Refactoring• Continuous Integration• Craftsmanship• Discipline

Page 30: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agile for architects:

• Everything we just talked about• No Big Design Up Front

Page 31: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agile for testers:

• Early (and incremental) testing• Collaboration with development• Collaboration with analysts• Automate, automate, automate!

Page 32: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agile for analysts:

• Getting user stories right• Story independence• Incrementally building features

Page 33: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agile for managers:

• Facilitating vs. Controlling• Getting the team what they need• Removing roadblocks• Self organized teams

Page 34: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Agile for the team:

• Collaborative software development• Shared workspace• Shared responsibility for quality• Shared responsibility for meeting team

goals

Page 35: Transitioning To Agile Webinar Presentation

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?

Page 36: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Getting started

Page 37: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Getting started

• Starting with a retrospective• Release planning• Picking practices• Retrospectives

Page 38: Transitioning To Agile Webinar Presentation

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

Page 39: Transitioning To Agile Webinar Presentation

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

Page 40: Transitioning To Agile Webinar Presentation

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

Page 41: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Picking practices

Page 42: Transitioning To Agile Webinar Presentation

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

Page 43: Transitioning To Agile Webinar Presentation

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

Page 44: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

The Cost of Change

Page 45: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

The Cost of Change

Defect found during TDD

Page 46: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

The Cost of Change

Defect found during continuous integration

Defect found during TDD

Page 47: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

The Cost of Change

Defect found during continuous integration

Defect found during TDD

Defect found dueTo active stakeholder

participation

Page 48: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Visibility for stakeholders

• Release plan• Story wall• Agile Project Management tools can help

Page 49: Transitioning To Agile Webinar Presentation

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

Page 50: Transitioning To Agile Webinar Presentation

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)

Page 51: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Myths and Antipatterns

Page 52: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Myths

• Scrum equals Agile• No documentation• Cowboy coding• Don’t know what’s round the corner

Page 53: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Antipatterns

• Trying to force-fit Agile into CMM• Separate testing team• Too much scale• Using the wrong tools

Page 54: Transitioning To Agile Webinar Presentation

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

Page 55: Transitioning To Agile Webinar Presentation

Copyright ThoughtWorks, 2009

Questions?

[email protected]