Technology-Driven Development: Using Automation and Development Techniques to Grow an Agile Culture

  • View
    1.700

  • Download
    2

Embed Size (px)

DESCRIPTION

This is the report presented at Agile2014 on "Experience Report" track. 「Agile2014」の「Experience Report」トラックで発表したスライドです。 Agile2014 http://agile2014.agilealliance.org/ Track information http://agile2014.sched.org/event/356d50c44035cafe4c27c33da03c2b80# Automation and development techniques such as Continuous Integration/Continuous Delivery, TDD (Test-Driven Development) and BDD (Behavior-Driven Development) are useful for not only efficiency but also learning and collaboration. I explained these practices as "Technology-Driven Development". CI/CD・TDD・BDD といった自動化技術・技術プラクティスは、業務効率化だけではなく、メンバーの成長およびコラボレーションの促進にも効果があります。 これらのプラクティスを "Technology-Driven Development" と命名・整理した資料になります。

Text of Technology-Driven Development: Using Automation and Development Techniques to Grow an Agile Culture

  • 1. Technology-Driven Development: Using Automation and Development Techniques to Grow an Agile Culture Jul/29/2014 Hiroyuki Ito Development Process Optimization Department, Rakuten, Inc. http://www.rakuten.co.jp/

2. 2 Hiroyuki Ito About me Test-Driven Development Group @hageyahhoo (The Hiro) 3. 3 http://global.rakuten.com/corp/about/strength/business_ model.html 4. 4 Its my 3rd time to be here! Agile2014 : as a Speaker 5. 5 This sessions theme Technology- Driven Development 6. 6 Additional possibilities of automation 7. 7 TDD stands for three purposes Efficiency Learning Collaboration 8. 8 By three approaches CI/CD TDD BDD 9. 9 Three approaches by CI/CD TDD BDD 10. 10 Agenda 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions 11. 11 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions 12. 12 At the end of April 2013 Business Analyst UI/UX Designers Developers 13. 13 At the end of April 2013 Business Analyst Agile Coach (The Hiro) UI/UX Designers Developers HELP! 14. 14 Our target application is 15. 15 Conditions and Challenges 16. 16 Conditions and Challenges None of the team members had any experience with agile 17. 17 Conditions and Challenges None of the team members had any experience with agile There had been many manual operations 18. 18 Conditions and Challenges None of the team members had any experience with agile There had been many manual operations Most of the team members were young and immature 19. 19 What do you think? 20. 20 I was so much excited! 21. 21 I can achieve anything through such a challenging project! WHY? 22. 22 Three approaches CI/CD TDD BDD 23. 23 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions 24. 24 Challenges Low performance So many manual tasks Going in circles No clear vision and no requirements No timely progress information 25. 25 Before CI/CD Install applications : 0.5 hour/change 5-minite work for 6 persons Regression testing : 4 hours/change Need to retry if we find bugs Change requests : 3 times/week 13.5 hours/week 26. 26 The Implementation of CI/CD in our project 27. 27 The Implementation of CI/CD in our project My PC 28. 28 The Implementation of CI/CD in our project Check-in build (hourly) My PC 29. 29 The Implementation of CI/CD in our project Check-in build (hourly) My PC Build applications and run regression tests automatically 30. 30 The Implementation of CI/CD in our project Check-in build (hourly) My PC Deliver to all team members automatically Build applications and run regression tests automatically 31. 31 The Implementation of CI/CD in our project Check-in build (hourly) My PC We demonstrate latest application to the business analyst and managers in every daily scrum Deliver to all team members automatically Build applications and run regression tests automatically 32. 32 Shared understanding by the working software Business Analyst UI/UX Designers Developers Get fast feedback Know about the progress 33. 33 Install applications : 2 minutes/change Regression testing : 3 minutes/change Change requests : 3 times/week 15 minutes/week After CI/CD 34. 34 Install applications : 2 minutes/change Regression testing : 3 minutes/change Change requests : 3 times/week 15 minutes/week After CI/CD 35. 35 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions 36. 36 Challenge Lack of skill and knowledge of Android the architecture of Android how to develop the Android application how to access the database on the device how to implement the UI 37. 37 Before TDD Model Controller DBDao Activity DBDao DBDao Could not test after we implemented all components (Debug Later Programming) It took five days to implement one activity set 38. 38 Too difficult to use Android JUnit 39. 39 Too difficult to use Android JUnit java.lang.RuntimeException: Stub! () 40. 40 Too difficult to use Android JUnit java.lang.RuntimeException: Stub! () Why we need an emulator or a device? :-o 41. 41 Too difficult to use Android JUnit java.lang.RuntimeException: Stub! () Why we need an emulator or a device? :-o Please dont start a heavy lifecycle of Android for each test case :-< 42. 42 Solution to do TDD on Android 43. 43 Solution to do TDD on Android Robolectric : Do all unit testing only on JVM http://robolectric.org/ Without any emulator or device! 44. 44 Solution to do TDD on Android Robolectric : Do all unit testing only on JVM http://robolectric.org/ Without any emulator or device! Mockito : Can use the Test Double http://code.google.com/p/mockito/ 45. 45 @Before public void setUp() { Create database for Test; Insert test data; } @Test public void findXxx() { Assertions; } @After public void tearDown() { Drop Database for Test; } Image of Unit testing for Dao by using Robolectric 5 minutes -> 0.5 seconds to run each test case. 46. 46 After TDD Model Controller DBDao Activity DBDao DBDao Can test each component independently and separately It takes one day to implement one activity set (five times faster than at the start of the project) 47. 47 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions 48. 48 Challenges Avoid feature creep Detect bugs and regressions on use-cases Learn domain knowledge effectively 49. 49 Example of feature creep Business Analyst UI/UX Designers Developers DONE! 50. 50 Example of feature creep Business Analyst UI/UX Designers Developers MORE! MORE! MORE! More features! DONE! 51. 51 Example of feature creep Business Analyst UI/UX Designers Developers MORE! MORE! MORE! More features! DONE! NUUN 52. 52 Example of feature creep Business Analyst UI/UX Designers Developers MORE! MORE! MORE! More features! DONE! NUUN 53. 53 Calabash-android: improve the discipline The wrapper of Cucumber for Android As an executable specification As a communication tool Specifying collaboratively with business analyst, designers and developers By specification with examples 54. 54 Example of BDD test scenario with Calabash-Android Feature: Input Scenario: Input todays data Given I kick drumroll And drumroll show today When press next Then I should see xxx" screen When I press keys and calculator should show like this: | 2 | 2 | | 0 | 20 | | 0 | 200 | | * | 200 | | 3 | 3 | | = | 600 | Then take photo Feature : name of all cases Scenario : name of each case These statements are RUNNABLE! We can write data with table style like this 55. 55 We want to Process of BDD Business Analyst UI/UX Designers Developers We want to 56. 56 Process of BDD Business Analyst UI/UX Designers Developers GIVEN WHEN THEN Is that right? MORE! MORE! MORE! We want to 57. 57 Process of BDD Business Analyst UI/UX Designers Developers MORE! MORE! MORE! OK, go ahead! GIVEN WHEN THEN Is that right? 58. 58 Process of BDD Business Analyst UI/UX Designers Developers Is it OK? GIVEN WHEN THEN 59. 59 Process of BDD Business Analyst UI/UX Designers Developers MORE! MORE! MORE! Sure! GIVEN WHEN THEN Is it OK? 60. 60 After BDD Change requests : -70% Regressions : -60% Bugs : -67% 61. 61 After BDD Change requests : -70% Regressions : -60% Bugs : -67% 62. 62 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions 63. 63 Results 64. 64 Challenges 65. 65 [Example] Changing scope Business Analyst Agile Coach (The Hiro) UI/UX Designers Developers Please change scope!Please change scope!Please change scope! 66. 66 [Example] Changing scope Business Analyst Agile Coach (The Hiro) UI/UX Designers Developers No! Do all we planned at first! Please change scope!Please change scope!Please change scope! 67. 67 Business Analyst Agile Coach (The Hiro) UI/UX Designers Developers Belong to another (subsidiary) company Its impossible to change the scope within our company [Example] Changing scope 68. 68 Asked for one executive YES, YOU CAN! We changed scope! 69. 69 Technical excellence and working software are not the only way to improve projects. Point Anything is OK for improving your situation! (Anything goes/Vale tudo) 70. 70 Possibility and future 71. 71 [Example] Growing a collaborative culture Developers Got some slack time! 72. 72 [Example] Growing a collaborative culture Developers Got some slack time! Too slow emulator 73. 73 [Example] Growing a collaborative culture Developers Got some slack time! Too slow emulator How about Genymotion? 74. 74 [Example] Growing a collaborative culture Developers Over 10 times faster Can run via Calabash-Android Got some slack time! Too slow emulator How about Genymotion? 75. 75 Install applications : 2 minutes/change Regression testing : 3 minutes/change Change requests : 3 times/week Can enhance TDD by numerical measurement [e.g.] 76. 76 Business Analyst Executive Manager Agile Coach (The Hiro)UI/UX Designers Developers Use TDD as a measure for total optimization Over barriers/silos 77. 77 Dont lose the whole picture! 78. 78 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions 79. 79 Three purposes Efficiency Learning Collaboration 80. 80 Three approaches CI/CD TDD BDD 81. 81 Three approaches by CI/CD TDD BDD 82. 82 We found this practice through the project with passionate members with a lot of trial and error 83. 83 Experience from Gemba 84. 84 Find your answer by yourself through your experience 85. 85 Find your treasure!

Search related