New to Agile? Having challenges implementing an agile process in your organization? Have you been using Scrum, but need to bend the rules to make it work in your organization? Can’t get the business to “buy-in”? Come and learn about implementing an agile process in your organization. You'll look at the “buffet table” of agile processes and procedures and learn how to properly decide “what to eat.” We’ll start by defining XP, Scrum, Kanban and some other popular methodologies and then learn how to mix and match each process for various scenarios, including the enterprise, ISVs, consulting, and remote teams. Then take a look at agile tools and how they will aid in implementing your development process. You’ll see how Microsoft Team Foundation Server 2010 provides process templates for Agile that facilitate better planning and metrics. Learn how Microsoft’s application lifecycle management (ALM) tools can support your development process. Lastly, we will talk about how to “sell” agile to your business partners and customers. The speakers have a very interactive style so participation is encouraged and there will be plenty of time for Q&A.
2. About Joel and Steve Steve Forte @worksonmypc Joel Semeniuk @joel_semeniuk Microsoft Regional Director Certified Scrum Master PMP Microsoft MVP, ALM Telerik Executive VP Team Productivity Division Microsoft Regional Director Certified Scrum Master Microsoft MVP, SQL Azure TelerikCSO
4. Telerik in Austrilia We are looking for partners in Australia Team Productivity Tools Division Content Management System Division (Sitefinity) Developer Productivity Tools Division Testing Tools Division A copy of Telerik JustCodeis in your folder And a trial of Telerik Ultimate collection
5. Is It Ok …? Is It Ok To Change Scrum? Can you combine practices and still be Agile? Can you be Agile if you don’t to TDD?
6. Agenda Back to the basics: Agile Manifesto Influential Agile Methodologies Agile Scenarios –Eating from the Buffet Table
7. Process and tools Individuals and interactions Following a plan Responding to change Comprehensive documentation Working software Contract negotiation Customer collaboration over over over over The Agile Manifesto–a statement of values Source: www.agilemanifesto.org
8. Back to the Basics “Agile” is about “values” not “rules” and rigid adherence to a process Agile is about embracing change
9. 12 Principles of Agile Early and continuous delivery of software Welcome changing requirements Deliver working software frequently Business people and developers must work together daily Build projects around motivated individuals Most effective method of communication is face-to-face Working software is the primary measure of progress Agile processes promote sustainable development Continuous attention to technical excellence Simplicity — is essential Self-organizing teams Reflect on how to become more effective
13. Extreme Programming (aka XP) Team of 5-10 programmers Single location On Site Customer Iterative delivery of releasable software “Requirements” are specified as user stories Pair Programming Strict Code Standards Unit Testing Emergent Requirements, architecture, and design
14. Core Practices of XP Sit together Whole team Informative workspace Energized work Pair Programming Stories Weekly cycles Quarterly Cycles Slack Ten-Minute Build Continuous Integration Test-First Programming Incremental Design
15. Scrum An Agile methodology that stresses communication Time boxed (sprints) development cycles By design is a revolutionary process Rigid by nature Most popular methodology today
17. Core Practices of Scrum Cross functional and collocated teams of 8 or less Develop in sprints of fixed duration Each sprint delivers incremental, tested functionality to the user Work within the sprint is fixed The scrum master mentors and manages the self-organizing and self-managing teams All work to be done is carried from the Product Backlog The product owner manages the product backlog A daily 15 min stand-up meeting (Daily scrum) is primary communication method Requirements, architecture, and design emerge over time Empirical Process Control
18. Kanban Japanese for “signal card” From the Toyoda production system (Lean) Define a work flow and visualize it Organize a queue Limit work in progress (WIP) for each queue Allows you to constantly evaluate process improvements Allow work to flow through the system in a controlled way (not iterative) No sprints! Evolutionary by design Change is built into the model Communication is about progress (not merely results) Eliminate Daily Scrum
20. Core Practices of Kanban Define and visualize the workflow Limit Work-in-progress Measure and Manage Flow Make Process Policies Explicit Use Models to Suggest Improvement For more info: http://finance.groups.yahoo.com/group/kanbandev/message/9261
21. Agenda Back to the basics: Agile Manifesto Influential Agile Methodologies Agile Scenarios –Eating from the Buffet Table
23. Mixed Methods are the Norm Source: Forrester/Dr. Dobb’s Global Developer Technographics Survey, Q3 2009
24. Agile is like a buffet table It is ok to mix and match from different agile methodologies Just make sure your features are compatible Just make sure you eat healthy ;) http://www.agileproductdesign.com/blog/2009/kanban_over_simplified.html
26. Scenario 1 – New Distributed Project Characteristics Remote team in different time zone Greenfield project Contractors
27. Core Practices for Scenario 1 From XP User Stories Pair Programming Continuous Integration From Scrum Use Sprints of fixed duration Daily (virtual) Scrum meeting From Kanban Make Process Policies Explicit Use Models to Suggest Improvement Limit work in progress
28. Scenario 2 - Maintenance Characteristics Reactive Continual evaluation Continual delivery Mix of New Requirements and Bugs
29. Core Practices for Scenario 2 From XP Extensive use of Unit Testing Refactoring and Emergent Design Continuous Integration Sit together Whole team Informative workspace Energized work From Scrum Daily Standup Sprints for Improvement Cadences and Reviews From Kanban Limit work in progress Continuous Delivery Explicit Gates
31. Core Practices for Scenario 3 From XP Extensive use of Unit Testing Refactoring and Emergent Design Continuous Integration Incremental Design Sit together Whole team Informative workspace From Scrum Daily Standup Sprint Planning Sprints and Sprint Reviews Customer is Product Owner Product Owner Reprioritizes against value From Kanban Explicit Gates
32. What about the others? Can you use TDD and use Scrum? Can you use BDD and use Kanban?
33. Certain Practices Apply Often Unit Testing Automated Builds Incremental and Continual Releases Emergent Requirements, architecture, and design Daily rhythm and standups Engaged Product Owners Backlogs Managed by Product Owners
36. Recommended Resources Tom DeMarco Peopleware Slack Fred Brooks The Mythical Man Month Parkinson's Law
Notas do Editor
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.