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

7,131 views
7,804 views

Published on

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" と命名・整理した資料になります。

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,131
On SlideShare
0
From Embeds
0
Number of Embeds
5,032
Actions
Shares
0
Downloads
8
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide
  • Hello everyone.
    In this session, I’d like to talk about “Technology-Driven Development”.
  • My name is Hiroyuki Ito.
    Please call me “The Hiro”.
    I’m from Japan.
    I belong to “Test-Driven Development Group” in Rakuten.
    I have 2 certifications of Scrum.
    Now I’m working as an Agile Coach.
  • About Rakuten.
    Rakuten is an e-commerce company from Japan.
    We provide so many services like this.
  • Today, I’m here as a speaker.
  • Again, this session’s theme is “Technology-Driven Development”.
    Of course, this name is derived from “Test-Driven Development”.

    Anyway, what is “Technology-Driven Development”?
  • It means the new possibilities of Automation.
  • “Technology-Driven Development” stands for 3 purposes.
  • I used these approaches to achieve those purposes.
  • From the tool’s aspect.
    I’ll talk the details later.
  • Here is this session’s agenda.
    At first, I will talk about the conditions and the challenges of my project.
    Next, I will explain the concrete approaches, CI/CD, TDD, and BDD.
    After that, I will talk about the results, problems, possibilities, and the future of Technology-Driven Development.
    At last I will conclude this report.
  • At first, conditions and the challenges of my project.
  • Our product was Android!
  • These are top 3 challenges.
  • These are top 3 challenges.
  • These are top 3 challenges.
  • These are top 3 challenges.
  • If you are in the same position.
  • In Japanese, YeaOh!
  • Therefore, I was highly-motivated!
  • So, I tried to improve the project with these three approaches.
  • Next, about CI/CD.
  • At first, we tried to get over these challenges.
  • We tried to measure the current status like this.
  • Next, TDD.
  • Our challenge is very simple : we did not have enough skill and knowledge of Android at that time.
  • Finally, we adopted the new test harness for Android.
  • Finally, we adopted the new test harness for Android.
  • Finally, we adopted the new test harness for Android.
  • So, I tried to improve the project with these three approaches.
  • Here is the example of BDD test scenarios.
  • Next, I’d like to evaluate “Technology-Driven Development”.
  • Of course, we achieved the target!
  • I’d like to share the example of the collaborative culture by Technology-Driven Development in our team.
    Automation nurtures the team members.
  • I’d like to share the example of the collaborative culture by Technology-Driven Development in our team.
    Automation nurtures the team members.
  • I’d like to share the example of the collaborative culture by Technology-Driven Development in our team.
    Automation nurtures the team members.
  • I’d like to share the example of the collaborative culture by Technology-Driven Development in our team.
    Automation nurtures the team members.
  • At last, conclude this session.
  • “Technology-Driven Development” has 3 purposes.
  • I used these approaches to achieve those purposes.
  • From the tool’s aspect.
  • This “Gemba-shugi” is my Agile.
  • Technology-Driven Development: Using Automation and Development Techniques to Grow an Agile Culture

    1. 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. 2 Hiroyuki Ito About me Test-Driven Development Group @hageyahhoo (The Hiro)
    3. 3. 3 http://global.rakuten.com/corp/about/strength/business_ model.html
    4. 4. 4 It’s my 3rd time to be here! Agile2014 : as a Speaker
    5. 5. 5 This session’s theme Technology- Driven Development
    6. 6. 6 Additional possibilities of automation
    7. 7. 7 “TDD” stands for three purposes Efficiency Learning Collaboration
    8. 8. 8 By three approaches CI/CD TDD BDD
    9. 9. 9 Three approaches by CI/CD TDD BDD
    10. 10. 10 Agenda 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions
    11. 11. 11 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions
    12. 12. 12 At the end of April 2013 Business Analyst UI/UX Designers Developers
    13. 13. 13 At the end of April 2013 Business Analyst Agile Coach (The Hiro) UI/UX Designers Developers HELP!
    14. 14. 14 Our target application is
    15. 15. 15 Conditions and Challenges
    16. 16. 16 Conditions and Challenges None of the team members had any experience with agile
    17. 17. 17 Conditions and Challenges None of the team members had any experience with agile There had been many manual operations
    18. 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. 19 What do you think?
    20. 20. 20 I was so much excited!
    21. 21. 21 I can achieve anything through such a challenging project! WHY?
    22. 22. 22 Three approaches CI/CD TDD BDD
    23. 23. 23 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions
    24. 24. 24 Challenges Low performance • So many manual tasks Going in circles • No clear vision and no requirements • No timely progress information
    25. 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. 26 The Implementation of CI/CD in our project
    27. 27. 27 The Implementation of CI/CD in our project My PC
    28. 28. 28 The Implementation of CI/CD in our project Check-in build (hourly) My PC
    29. 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. 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. 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. 32 Shared understanding by the working software Business Analyst UI/UX Designers Developers Get fast feedback Know about the progress
    33. 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. 34 • Install applications : 2 minutes/change • Regression testing : 3 minutes/change • Change requests : 3 times/week 15 minutes/week After CI/CD
    35. 35. 35 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions
    36. 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. 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. 38 Too difficult to use Android JUnit 
    39. 39. 39 Too difficult to use Android JUnit  java.lang.RuntimeException: Stub! (゚Д゚)
    40. 40. 40 Too difficult to use Android JUnit  java.lang.RuntimeException: Stub! (゚Д゚) Why we need an emulator or a device? :-o
    41. 41. 41 Too difficult to use Android JUnit  java.lang.RuntimeException: Stub! (゚Д゚) Why we need an emulator or a device? :-o Please don’t start a heavy lifecycle of Android for each test case :-<
    42. 42. 42 Solution to do TDD on Android
    43. 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. 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. 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. 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. 47 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions
    48. 48. 48 Challenges Avoid feature creep Detect bugs and regressions on use-cases Learn domain knowledge effectively
    49. 49. 49 Example of feature creep Business Analyst UI/UX Designers Developers DONE!
    50. 50. 50 Example of feature creep Business Analyst UI/UX Designers Developers MORE! MORE! MORE! More features! DONE!
    51. 51. 51 Example of feature creep Business Analyst UI/UX Designers Developers MORE! MORE! MORE! More features! DONE! NUUN 
    52. 52. 52 Example of feature creep Business Analyst UI/UX Designers Developers MORE! MORE! MORE! More features! DONE! NUUN 
    53. 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. 54 Example of BDD test scenario with Calabash-Android Feature: Input Scenario: Input today’s 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. 55 We want to… Process of BDD Business Analyst UI/UX Designers Developers We want to…
    56. 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. 57 Process of BDD Business Analyst UI/UX Designers Developers MORE! MORE! MORE! OK, go ahead! GIVEN … WHEN … THEN … Is that right?
    58. 58. 58 Process of BDD Business Analyst UI/UX Designers Developers Is it OK? GIVEN … WHEN … THEN …
    59. 59. 59 Process of BDD Business Analyst UI/UX Designers Developers MORE! MORE! MORE! Sure! GIVEN … WHEN … THEN … Is it OK?
    60. 60. 60 After BDD • Change requests : -70% • Regressions : -60% • Bugs : -67%
    61. 61. 61 After BDD • Change requests : -70% • Regressions : -60% • Bugs : -67%
    62. 62. 62 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions
    63. 63. 63 Results
    64. 64. 64 Challenges
    65. 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. 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. 67 Business Analyst Agile Coach (The Hiro) UI/UX Designers Developers Belong to another (subsidiary) company It’s impossible to change the scope within our company… [Example] Changing scope
    68. 68. 68 Asked for one executive YES, YOU CAN! We changed scope!
    69. 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. 70 Possibility and future
    71. 71. 71 [Example] Growing a collaborative culture Developers Got some slack time!
    72. 72. 72 [Example] Growing a collaborative culture Developers Got some slack time! Too slow emulator…
    73. 73. 73 [Example] Growing a collaborative culture Developers Got some slack time! Too slow emulator… How about Genymotion?
    74. 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. 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. 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. 77 Don’t lose the whole picture!
    78. 78. 78 1. Conditions and Challenges 3. TDD 2. CI/CD 4. BDD 5. Results, Problems, Possibility and Future 6. Conclusions
    79. 79. 79 Three purposes Efficiency Learning Collaboration
    80. 80. 80 Three approaches CI/CD TDD BDD
    81. 81. 81 Three approaches by CI/CD TDD BDD
    82. 82. 82 We found this practice • through the project • with passionate members • with a lot of trial and error
    83. 83. 83 Experience from Gemba 現場主義
    84. 84. 84 Find your answer by yourself through your experience
    85. 85. 85 Find your treasure!

    ×