reducing rakuten ichiba's development lead time - a pattern language-
TRANSCRIPT
![Page 1: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/1.jpg)
Reducing Rakuten Ichiba’ s
development lead time
- A Pattern Language -
Mar/10/2015 Takahiro YamakiRakuten Ichiba Development Department, Rakuten Inc.http://www.rakuten.co.jp/
![Page 2: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/2.jpg)
2
Summary!
• Motivation– Faster & Better service delivery
• Strategies1. Automation
2. Quick feedback to coders
1. Build result
2. Static code analysis result
3. Continuous system test (CST) result
4. Security check result
Reducing development lead time
![Page 3: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/3.jpg)
3
Agenda
1. Introduction
1. My area of responsibility
2. Thoughts to take home
3. Our pattern language
2. Show cases
3. Goal plan
4. Summary
![Page 4: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/4.jpg)
4
My area of responsibility in B2B2C
Rakuten Ichiba
Warehouse
(RMS)
ShoppersMerchants
Selling area
(MALL)
(1) Reduce development lead time
(2) Reduce operational cost
![Page 5: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/5.jpg)
5
Thoughts to take home
• I’d like to introduce our results and future
plan. Furthermore I want to show our
pattern language for this theme.
• I am happy if you are interested in some
of our patterns and apply it to your own
situation and problem.
おみやげ
![Page 6: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/6.jpg)
6
Pattern language for staffs
Involve Everyone
Evangelist
『Fearless Change: Patterns for Introducing New Ideas』Mary Lynn Manns, Linda Rising (2014)
Dedicated Champion
Innovator Early Adopter
Study
Group
Just Do It
Plant the Seeds
Personal Touch
Hometown Story
![Page 7: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/7.jpg)
7
Pattern language for development process
Git-nizationStep by Step
Small Successes
Automation
Repository connection
Abolish Excel
External Validation
Just Enough
![Page 8: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/8.jpg)
8
Git-nizationStep by Step
Small Successes
Automation
Repository connection
Abolish Excel
External Validation
Just Enough
Patterns & Keywords
pull-request
CI
Test case management
Branch management
git-flow
Ticket
Code
Build, Deploy
Test
![Page 9: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/9.jpg)
9
Git-nizationStep by Step
Small Successes
Automation
Repository connection
Abolish Excel
External Validation
Just Enough
Today’s show cases
CI
Ticket
Code
Build, Deploy
Test
(2)
(1)
![Page 10: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/10.jpg)
10
Agenda
1. Introduction
2. Show cases1. Repository connection
2. Automation
3. Goal plan
4. Summary
![Page 11: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/11.jpg)
11
Show case(1)
Repository connection
![Page 12: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/12.jpg)
12
Pattern: Repository connection
• Context
– Many lists, memos to relate things.• Have the pull-requests of this issue been finished?
• Which environment have you deployed for this
issue?
• Problem
– Difficult traceability
– Non-productive costs
![Page 13: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/13.jpg)
13
Pattern: Repository connection
• Restrictions
– Some development tools are in service.• BTS(ticket management), SCM(source code
management), Document management
• Solution
– Select a development system which is
close to them.
![Page 14: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/14.jpg)
14
Test case
Test results
Repository connection result
Tickets
Codes
Artifacts
Documents
Code Quality
RMS
Build result
Deploy result
Security reports
Info. Storage
Restrictions
![Page 15: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/15.jpg)
15
Tips for tickets and commit relations
Precondition
1. Using git-flow. Branch name is feature/xxxx
2. Using ticket ID for the feature name
cd .git/hooks
mv prepare-commit-msg.sample prepare-commit-msg
vi prepare-commit-msg
#!/bin/sh
#
mv $1 $1.tmp
echo -n "[`git branch | grep "*" | awk '{print $2}' | sed -e "s/feature\///g" `] " > $1
cat $1.tmp >> $1
Sample code
by T. Sugihara
![Page 16: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/16.jpg)
16
View from a build result
Deploy results
Tickets
Codes
Change log (who? what?)
![Page 17: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/17.jpg)
17
View from a test result
Tickets
Test failure result New ticket
Test results
Ticket
![Page 18: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/18.jpg)
18
MOVIE
Test failure report
New ticket
![Page 19: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/19.jpg)
19
Show case(2)
Automation
![Page 20: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/20.jpg)
20
Pattern: Automation
• Context
– Too many manual tasks
• Problem
– Much operational cost. Sometimes mistakes.
• Restrictions
– Some development tools are in service.
• Solutions
– Select a CI server which is close to them.
– Automation! Automation! Automation!
![Page 21: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/21.jpg)
21
Automation reference (1)
『Continuous Delivery: Reliable Software
Releases through Build, Test, and
Deployment Automation 』
Jez Humble, David Farley
![Page 22: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/22.jpg)
22
Automation reference (2)
『 Automation for the people:
Deployment-automation patterns』
Paul Duvallhttp://www.ibm.com/developerworks/java/library/j-ap01139/
– One-click
– Externalized Configuration
– Headless Execution
– Scripted Deployment
– Remote Deployment
![Page 23: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/23.jpg)
23
Automation infrastructure overview
CI System
![Page 24: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/24.jpg)
24
Demo scenario
Application
Management
serverClusters
#1
#2
#3
#4
Manual test
Continuous
System test*
(3)
(2)
(4)
* Kotaro Ogino and Francois Picalausa
“Continuous System Test”. Test Automation.http://kokotatata.hatenablog.com/entry/2014/03/14/075842
(1)
CI server
![Page 25: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/25.jpg)
25
MOVIE
Automated build & deploy
![Page 26: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/26.jpg)
26
Continuous system test overview
Selenium
Hub
Test case management tool
RMS
Selenium Nodes
Script
results
manage
Manual test
results
CI server
Test
data
![Page 27: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/27.jpg)
27
Agenda
1. Introduction
2. Show cases
3. Goal plan
4. Conclusion
![Page 28: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/28.jpg)
28
STG
QA
DEVBuild
Goal plan ・・・ “Deployment pipeline”
IT
Release
Judge
Acceptance
Test
PROD
Blue-
Green
Deploy
Clone
Build
UT
Code
Analysis
Deploy
Conf Test
Conf Test
Deploy
ST
Conf Test
Code
ReviewMetrics
Release
Judge
Security
Test
ST
Security
Test
![Page 29: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/29.jpg)
29
Summary!
• Motivation– Faster & Better service delivery
• Strategies1. Automation
2. Quick feedback to coders
1. Build result
2. Static code analysis result
3. Continuous system test result
4. Security check result
Reducing development lead time
![Page 30: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/30.jpg)
30
QA
![Page 31: Reducing Rakuten Ichiba's development lead time - A Pattern Language-](https://reader033.vdocuments.net/reader033/viewer/2022042817/55a6b87d1a28ab666b8b4652/html5/thumbnails/31.jpg)
31
Wants You!!!
https://progres02.jposting.net/pgrakuten/job.phtml?job_code=1971&lang=en
https://progres02.jposting.net/pgrakuten/job.phtml?job_code=1972&lang=en