Ag02 agile practices - dnc14 handouts

237 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Ag02 agile practices - dnc14 handouts

  1. 1. AGILE PRACTICES @andreaprovaglio WHAT I DO I help IT organizations to find and implement better ways of doing business. I coach teams and individuals who want to improve technically and relationally. In 20+ years in IT, I had clients in three continents and a U.S. work visa for “extraordinary abilities in Sciences”. WHAT WE’LLTALK ABOUT • Basic Practices • Delivering by Iterations • Developing Just-in-time • Testing 1 2 3
  2. 2. BASIC PRACTICES Agile Founding Blocks Retrospectives Stand-up Meeting Continuous Integration Test-driven Development Pair Programming Short Iterations Some may be prescribed. All are designed to support each other. Refactoring Cross-functional Teams Iterative Development http://www.photos4travel.com/travel-guides/rome Was this built from a huge pile of specs? High-value Requirements Deployment Short Iterations (can be timeboxed) Analysis & Planning ImplementationTesting Evaluation 4 5 6
  3. 3. Task Boards http://leansoftwareengineering.com/2007/10/27/kanban-bootstrap/ Physical or Virtual? Large Information Radiators Cross-functionalTeams http://leansoftwareengineering.com/2007/10/27/kanban-bootstrap/ Stand-up Meetings http://robertryanpmp.com •Short (15 mins) •Remove Impediments •Align the team •Makes daily activities more effective 7 8 9
  4. 4. Retrospectives A core Agile Practice: team stops and reflects on how to improve Takes experience to get it right. (Tip: have an external facilitator at first) Running Retrospectives Retrospective Open Data Insights Actions Close Iteration Improvements Development Meeting Product Increments Adapted from “Agile Retrospectives” by Derby & Larsen Pair Programming http://www.prospeed-elite.co.ukhttp://www.prospeed-elite.co.uk • “If two developers in front of a computer are half as productive, why don’t you put one developer in front of two computers?” -- Jurgen Appelo • Tip: Google for video by Niclas Nilsson & Hans Brattberg 10 11 12
  5. 5. DELIVERING BY ITERATIONS Scrum Process http://en.wikipedia.org/wiki/File:Scrum_process.svg User Stories http://caernarfonandchepstow.blogspot.com/ As a Student I want to buy a parking pass so that I can drive to school. Priority: Medium Estimate: 4 (adapted example by Scott Ambler) Tests: * the buyer must be a currently enrolled student * the buyer will receive a pass only if payment is sufficient * the student may buy only one pass per month 13 14 15
  6. 6. Scrum Roles Product Owner Scrum Master “The Team” (cross-functional) Scrum Project PO: Represents the business vision and needs SM: Guarantees the process, removes impediments Techs: Implement the product, have all the required expertise Interactions of the Scrum Roles Stuff You Build What How Quick but unsustainable wins Wrong Thing Wrong Way Right Way Right Thing Fast FailureSlow Failure PO and SM work to ensure that we build the Right Thing in the Right Way Market, Users PO SM Team Backlogs (Product and Sprint) Enduring Success What/How diagram adapted from “Agile Product Management with Scrum” by Roman Pichler Scrum Working Agreements • The Team (not the single individuals) commits to deliver the agreed upon, potentially shippable units of code at the end of the Sprint • The Business commits to leaving the Team undisturbed for the length of the Sprint (i.e. Sprints cannot be changed, only aborted) 16 17 18
  7. 7. Scrum Rhythms and Ceremonies Strategy Release Sprint Daily Continuous Integration Adapted from the “Agile Poster” by VersionOne Start: Release Planning Meeting End: Demo and Retrospective Cadence: Months Start: Sprint Planning Meeting End: Demo and Retrospective Cadence: Weeks Stand-up Meeting Cadence: Daily Metrics:Velocity http://elegantcode.com/ A planning tool based on historical data. Represents the Team’s productive capacity (story points per Sprint) Metrics: Burndown Charts http://www.infoq.com/articles/agile-kanban-boards Release BurndownSprint Burndown http://lookforwardconsulting.com/ Both display progress vs. work still to complete. 19 20 21
  8. 8. PUSHVS. PULL Just-inTime Production SW features are like bananas: • They get stale (lose their business value after a while) • Inventory, Overproduction and Waiting should ideally be kept to the minimum A Kanban Pull System Stuff To Do (Backlog) Kanban System Stuff Produced Items are PULLED into the system when there is capacity. <--- Lead Time ---> • System visualizes the actual workflow • Each stage has its WIP limit 22 23 24
  9. 9. Kanban Key Points • Visualize the real workflow • Use a Kanban board with columns for the different stages (swim lanes and sub-colons for more complex flows) • Split work into units and use cards to represent them • Limit the Work-in-Progress (WIP) • Measure the LeadTime • Optimize the workflow for maximum throughput A Digital Kanban Board http://www.targetprocess.com/Product/agile_tour/Kanban.aspx A Digital Kanban Board http://www.targetprocess.com/Product/agile_tour/Kanban.aspx Iterations or JIT? 25 26 27
  10. 10. QA ANDTESTING MainTesting Levels Acceptance Test “Does the system work as users expect?” Integration Test “Does our code work against code that we cannot change?” Unit Test “Do our objects do the right thing? Are they convenient to work with?” Developers “Does our code work against code that we cannot Developers Business http://angeles.sierraclub.org/skimt/trips/grandcyn07/grand-14.htm TheTesting Pyramid Place as many tests as low as you can. Manual End-to-End Integration Unit 28 29 30
  11. 11. Behavior-Driven Development Using examples, scenarios and conversations to illustrate behavior http:// lizkeogh.com !"#"$%& '$()& *(+(,")"-.& /0(-120& 3-$2.& 340%(2"$& *$50& !"#"$%&!"#"$%&!"#"$%& '$()& *(+(,")"-.& /0(-120& 3-$2.& 340%(2"$& *$50&*$50&*$50& !""# "%,%-).%*&# "%-12%*30%#"1&4),%*5#&+1--& /%&0%*& http:// lizkeogh.com "%,%-).%*& "%-12%*30%#"1&4),%*5#&+1--& /%&0%*&/%&0%*& !"#$%&'($)&*+,&-./0*1&+&2"3(.4+#$ 5%)&1*$&2"3(.4+#$&3.,1&6788 5%)&1*$&2"3(.4+#$&4+,&.%&789& )",3./%1 :*$%&4$&($;/%)&1*$&2"3(.4+#$ <*$%&'($)&!"#$%&'-$&($;/%)$)&6=8> Test-Driven Development • A test-first approach • Improves overall quality • Makes changes easier (programmers are more confident) • Simple designs evolve over time • Testing single units of code creates better architectures Continuous Integration An automated, continuous process for quality control. http://www.javaworld.com/javaworld/jw-06-2007/jw-06-awci.html Automatic unit testing, regression testing, integration Lots of CI tools: CruiseControl, TeamCity, Team Foundation Server, etc. 31 32 33
  12. 12. THANKYOU! LinkedIn Twitter Slideshare http://andreaprovaglio.com Also on: QUESTIONS? 34 35

×