Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Technology-Driven Development:
Using Automation and
Development Techniques
to Grow an Agile Culture
Jul/29/2014
Hiroyuki I...
2
Hiroyuki Ito
About me
Test-Driven
Development Group
@hageyahhoo
(The Hiro)
3
http://global.rakuten.com/corp/about/strength/business_
model.html
4
It’s my 3rd time to be here!
Agile2014 : as a Speaker
5
This session’s theme
Technology-
Driven
Development
6
Additional possibilities of automation
7
“TDD” stands for three purposes
Efficiency
Learning
Collaboration
8
By three approaches
CI/CD
TDD
BDD
9
Three approaches by
CI/CD
TDD
BDD
10
Agenda
1. Conditions and Challenges
3. TDD
2. CI/CD
4. BDD
5. Results, Problems, Possibility and Future
6. Conclusions
11
1. Conditions and Challenges
3. TDD
2. CI/CD
4. BDD
5. Results, Problems, Possibility and Future
6. Conclusions
12
At the end of April 2013
Business
Analyst
UI/UX
Designers
Developers
13
At the end of April 2013
Business
Analyst
Agile Coach
(The Hiro)
UI/UX
Designers
Developers
HELP!
14
Our target application is
15
Conditions and Challenges
16
Conditions and Challenges
None of the team members had
any experience with agile
17
Conditions and Challenges
None of the team members had
any experience with agile
There had been
many manual operations
18
Conditions and Challenges
None of the team members had
any experience with agile
There had been
many manual operations
...
19
What do you
think?
20
I was so much excited!
21
I can
achieve anything
through such a
challenging project!
WHY?
22
Three approaches
CI/CD
TDD
BDD
23
1. Conditions and Challenges
3. TDD
2. CI/CD
4. BDD
5. Results, Problems, Possibility and Future
6. Conclusions
24
Challenges
Low performance
• So many manual tasks
Going in circles
• No clear vision and no requirements
• No timely pr...
25
Before CI/CD
• Install applications : 0.5 hour/change
• 5-minite work for 6 persons
• Regression testing : 4 hours/chan...
26
The Implementation of CI/CD in our project
27
The Implementation of CI/CD in our project
My PC
28
The Implementation of CI/CD in our project
Check-in build (hourly) My PC
29
The Implementation of CI/CD in our project
Check-in build (hourly) My PC
Build applications
and run regression tests
au...
30
The Implementation of CI/CD in our project
Check-in build (hourly) My PC
Deliver to
all team members
automatically
Buil...
31
The Implementation of CI/CD in our project
Check-in build (hourly) My PC
We demonstrate latest application
to the busin...
32
Shared understanding by the working software
Business
Analyst
UI/UX
Designers
Developers
Get fast feedback
Know about
t...
33
• Install applications : 2 minutes/change
• Regression testing : 3 minutes/change
• Change requests : 3 times/week
15 m...
34
• Install applications : 2 minutes/change
• Regression testing : 3 minutes/change
• Change requests : 3 times/week
15 m...
35
1. Conditions and Challenges
3. TDD
2. CI/CD
4. BDD
5. Results, Problems, Possibility and Future
6. Conclusions
36
Challenge
Lack of skill and knowledge of Android
• the architecture of Android
• how to develop the Android application...
37
Before TDD
Model
Controller DBDao
Activity
DBDao
DBDao
• Could not test after we implemented all components
(Debug Late...
38
Too difficult to use Android JUnit 
39
Too difficult to use Android JUnit 
java.lang.RuntimeException: Stub! (゚Д゚)
40
Too difficult to use Android JUnit 
java.lang.RuntimeException: Stub! (゚Д゚)
Why we need an emulator or a device? :-o
41
Too difficult to use Android JUnit 
java.lang.RuntimeException: Stub! (゚Д゚)
Why we need an emulator or a device? :-o
P...
42
Solution to do TDD on Android
43
Solution to do TDD on Android
• Robolectric : Do all unit testing only on JVM
• http://robolectric.org/
• Without any e...
44
Solution to do TDD on Android
• Robolectric : Do all unit testing only on JVM
• http://robolectric.org/
• Without any e...
45
@Before
public void setUp() {
Create database for Test;
Insert test data;
}
@Test
public void findXxx() {
Assertions;
}...
46
After TDD
Model
Controller DBDao
Activity
DBDao
DBDao
• Can test each component independently and separately
• It takes...
47
1. Conditions and Challenges
3. TDD
2. CI/CD
4. BDD
5. Results, Problems, Possibility and Future
6. Conclusions
48
Challenges
Avoid feature creep
Detect bugs and regressions
on use-cases
Learn domain knowledge effectively
49
Example of feature creep
Business
Analyst
UI/UX
Designers
Developers
DONE!
50
Example of feature creep
Business
Analyst
UI/UX
Designers
Developers
MORE!
MORE!
MORE!
More features!
DONE!
51
Example of feature creep
Business
Analyst
UI/UX
Designers
Developers
MORE!
MORE!
MORE!
More features!
DONE!
NUUN 
52
Example of feature creep
Business
Analyst
UI/UX
Designers
Developers
MORE!
MORE!
MORE!
More features!
DONE!
NUUN 
53
Calabash-android: improve the discipline
• The wrapper of Cucumber for Android
• As an executable specification
• As a ...
54
Example of BDD test scenario with Calabash-Android
Feature: Input
Scenario: Input today’s data
Given I kick drumroll
An...
55
We want to…
Process of BDD
Business
Analyst
UI/UX
Designers
Developers
We want to…
56
Process of BDD
Business
Analyst
UI/UX
Designers
Developers
GIVEN …
WHEN …
THEN …
Is that right?
MORE!
MORE!
MORE!
We wa...
57
Process of BDD
Business
Analyst
UI/UX
Designers
Developers
MORE!
MORE!
MORE!
OK, go ahead!
GIVEN …
WHEN …
THEN …
Is tha...
58
Process of BDD
Business
Analyst
UI/UX
Designers
Developers
Is it OK?
GIVEN …
WHEN …
THEN …
59
Process of BDD
Business
Analyst
UI/UX
Designers
Developers
MORE!
MORE!
MORE!
Sure!
GIVEN …
WHEN …
THEN …
Is it OK?
60
After BDD
• Change requests : -70%
• Regressions : -60%
• Bugs : -67%
61
After BDD
• Change requests : -70%
• Regressions : -60%
• Bugs : -67%
62
1. Conditions and Challenges
3. TDD
2. CI/CD
4. BDD
5. Results, Problems, Possibility and Future
6. Conclusions
63
Results
64
Challenges
65
[Example] Changing scope
Business
Analyst
Agile Coach
(The Hiro)
UI/UX
Designers
Developers
Please change scope!Please ...
66
[Example] Changing scope
Business
Analyst
Agile Coach
(The Hiro)
UI/UX
Designers
Developers
No!
Do all we planned
at fi...
67
Business
Analyst
Agile Coach
(The Hiro)
UI/UX
Designers
Developers
Belong to
another (subsidiary) company
It’s impossib...
68
Asked for one executive
YES, YOU CAN!
We changed scope!
69
Technical excellence and working software
are not the only way to improve projects.
Point
Anything is OK for improving ...
70
Possibility and future
71
[Example] Growing a collaborative culture
Developers
Got some slack time!
72
[Example] Growing a collaborative culture
Developers
Got some slack time!
Too slow
emulator…
73
[Example] Growing a collaborative culture
Developers
Got some slack time!
Too slow
emulator…
How about
Genymotion?
74
[Example] Growing a collaborative culture
Developers
• Over 10 times faster
• Can run via Calabash-Android
Got some sla...
75
• Install applications : 2 minutes/change
• Regression testing : 3 minutes/change
• Change requests : 3 times/week
Can ...
76
Business
Analyst
Executive
Manager
Agile Coach
(The Hiro)UI/UX
Designers
Developers
Use “TDD” as a measure for total op...
77
Don’t lose the whole picture!
78
1. Conditions and Challenges
3. TDD
2. CI/CD
4. BDD
5. Results, Problems, Possibility and Future
6. Conclusions
79
Three purposes
Efficiency
Learning
Collaboration
80
Three approaches
CI/CD
TDD
BDD
81
Three approaches by
CI/CD
TDD
BDD
82
We found this practice
• through the project
• with passionate members
• with a lot of trial and error
83
Experience from Gemba
現場主義
84
Find your answer
by yourself
through your experience
85
Find your treasure!
Upcoming SlideShare
Loading in …5
×

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

18,445 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
  • DOWNLOAD THE BOOK INTO AVAILABLE FORMAT (New Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THE can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THE is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBOOK .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookBOOK, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, EBOOK, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THE Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THE the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THE Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • My daughter struggled with Maths due to an absence of teachers during year 10. I purchased Jeevan's 'home-tutor' program and she has not looked back. Not only does it explain the basic steps but also how to achieve those top grades. This is not only far better than a private tutor but amazing value for money. I would only have got a few hours of a tutors time for the same money. I am very grateful as this has turned my daughters attitude to Maths around- she now loves it and finds it easy! My other daughter, who is currently 14-years-old, has already begun your program. After going through your book and DVD's, she has moved up to the top set in maths. I have no doubt when she takes her GCSE maths in 2 years, she will achieve an A/A* grade! Many many thanks for your help Jeevan! ♣♣♣ http://t.cn/AirraVnG
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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!

×