Westrum Organizational Culture dan CI/CD
Rendra Toro
(Group CTO - perintistn.com)
Group CTO - PT. Perintis
Teknologi Nusantara
● Jatuh cinta pada dunia programming
sejak 1989
● Pengalaman di dunia e-commerce
sejak 2009 (Berniaga.com,
tokobagus.com, olx.co.id dan wowbid.live)
● Intel Innovators untuk AI dan Machine
learning sejak tahun 2016
● GDG Bogor manager dari tahun 2012
Apa sih yang dimaksud
dengan kultur organisasi ?
● Menurut Cambridge Dictionary : “the types of attitudes and
agreed ways of working shared by the employees of a
company or organization”
● Menurut Business Dictionary : “the values and behaviors that
contribute to the unique social and psychological environment
of an organization.”
Nilai nilai kultur yang berbeda dengan
kenyataan nya :)
● Konon Work and life Balance
● Konon ada Kultur untuk terus berkembang
● Konon katanya harus team work
● Konon ada kebebasan berinovasi
● Konon kualitas adalah segalanya
DevOps sang Duta Kultur
"DevOps is those sets of cultural norms and technology practices that
enable the fast flow of planned work from development, through tests,
into operations, while preserving world-class reliability, operation, and
security."
DevOps
● Dev dan Ops
Sebelumnya Developer dan team Ops (Operations) punya goal yang berbeda, Dev lebih
mementingkan kecepatan untuk deliver feature atau code nya, sedangkan team Ops fokus
pada stability platform nya.
● DevOps
Dengan bersatunya team Developer dan team Operations, kedua team
share goal yang sama yaitu bagaimana mencapai kecepatan delivery
code atau software yang bagus serta tetap menjaga stabilitas code di
area production.
Proyek Aristoteles di Google
Apa yang membuat team menjadi efektif ?
“Who is on the team matters less than how the team members
interact, structure of their work, and view their contributions.”
Dinamika team dan bagaimana kultur organisasi
berpengaruh pada dinamika di dalam team
● Psychological safety
● Budaya berkolaborasi dan berinovasi dengan peluang
bereksperimen
Kultur DevOps
Kultur DevOps
Typology Westrum Organizational
Culture
Prediksi Westrum Organizational
Culture
Westrum
Organizational
Culture
Performa Software
Delivery
Performa
Organisasi
● Dalam team saya informasi berjalan dengan aktif dan terbuka
● Dalam team saya kesalahan adalah kesempatan untuk belajar, dan tidak ada yang
dikambing hitamkan dalam kesalahan tersebut
● Dalam team saya semua memiliki tanggung jawab yang sama
● Dalam team saya berkolaborasi dan bekerja sama dengan team lain atau dari divisi
lain sangat dihargai dan disarankan untuk melakukannya
● Dalam team saya sangat terbuka dengan ide - ide baru
Sangat
setuju
Setuju Netral
Sedikit tidak
setuju
Tidak setuju
Sedikit
setuju
Sangat
tidak setuju
Cara validasi organisasi dengan Westrum
Organizational Culture
● High Cooperation
● Messenger trained
● Risk are shared
● Bridging is encouraged
● Failure lead to inquiry
● Novelty implemented
Cara membentuk Generative Culture
● Build trust and make psychological safety a Priority
● Support culture of Learning and Sharing
● Experiment often
● Make Monitoring and Recovery a Priority
● Brake down Silos
5 Cara membentuk Kultur DevOps dengan
performa tinggi
AHR - DevOps Assessment
Continuous Improvement and CI/CD
Continuous Improvement is better than
delayed perfection.
- Mark Twain
Culture Change and the Behaviors
that drive it
Westrum
Organizational
Culture
Continuous Delivery
Lean Management
Referensi
● https://cloud.google.com/architecture/devops/devops-culture-westrum-organizatio
nal-culture
● https://learn.agilityhealthradar.com/courses/self-led-devops/
● https://itrevolution.com/westrums-organizational-model-in-tech-orgs/
Terima kasih
@rendra_toro
Keep Smile and Happy
coding guys …… 👍
rendra toro
CI/CD Implementation to Improve Productivity
with GitLab
Steven Lewi
(Principal Engineer, Home Credit Indonesia)
OLX Indonesia
Mobile Developer
Blanja.com
Lead Android Developer
Home Credit Indonesia
Principal Engineer
linkedin.com/in/stevenlewi
github.com/fenli
Profile
Introduction
Development
phase
Testing phase
Deployment
phase
The Day
Before
CI/CD Pipeline
Design
CI/CD
Implementation
with GitLab
The Journey
What have we
improved?
Benefits of
CI/CD
The Day After
The Day Before
CI/CD Implementation
Code in “long isolated” branch
Multiple integration branch each environment
No verifications
Image by Freepik.com
Merge conflicts, big testing
scenario
Hard to maintain multiple branch, often
cause confusions
Potential issue, code is hard to read and
maintain
The Day Before CI/CD
Development phase
The Day Before CI/CD
Testing phase
Manual testing Testing at last-minutes
Image by Freepik.com
Multiple effort when code changed
frequently
Less time for fixing if issue found at
testing
The Day Before CI/CD
Deployment phase
Image by Freepik.com
Manual deployment
More effort, often leads to
down-time
Deploy at late night
Team already
exhausted
The Journey of Home Credit Indonesia
CI/CD implementation and challenges
Practice
Agile/Scrum
Use Version
Control with
GUI
Practice
Trunk-based
Development
Write some
test
Implement
CI/CD
pipeline
CICD Pipeline Design
Merge / Pull Request Pipeline
setup unit test
integration test
sonar analysis
lint
…
junit report
Triggered
on
Merge
Request
Merge to
Main
branch
Code
Review
CICD Pipeline Design
Integration & Deployment Pipeline
setup
build
artifact
Triggered on
merged /
push
to Main
publish and version
tag
deploy dev deploy staging
deploy
production
automated
regress testing
post release
Need manual action
(eg: click)
full code
analysis
CI/CD Pipeline Implementation
Large number of services / repository
What are the challenges ?
Different kind of application tech stack
> 100 service Java
React (Javascript / Typescript)
Flutter
Android
iOS
CI/CD Pipeline with GitLab CI
Centralized pipeline repository
Backend service (Java)
Backend service (Java)
Backend service (Java)
Backend service (Java)
Frontend (Javascript/React)
Frontend (Javascript/React)
Project Repository
Mobile apps
Library, etc
include:
- project: ‘devops/cicd-template’
file: ‘java-project.yml’
include:
- project: ‘devops/cicd-template’
file: ‘javascript-project.yml’
include:
- project: ‘devops/cicd-template’
file: ‘android-project.yml’
.gitlab-ci.yml
.gitlab-ci.yml
.gitlab-ci.yml
GitLab CI
Pipeline Repository
include
CI/CD Pipeline with GitLab CI
Centralized pipeline repository
java-project.yml
...
unit-test:
image: maven:3.6
stage: test
script:
- mvn clean test
- mvn sonar:sonar
GitLab CI Pipeline Repository
java-library.yml
Modular approach
javascript-project.yml
android-project.yml
maven.yml
gradle.yml
npm.yml
kubectl.yml
scp.yml
azure-cli.yml
...
deploy-staging:
image: bitnami/kubectl:latest
environment: staging
script:
- kubectl apply -f deploy.yml
- kubectl apply -f service.yml
maven.yml
kubectl.yml
The Day After
CI/CD Implementation
The Day After CI/CD
What have we improved on?
Automated testing with Katalon
Small and frequent deployment
Reducing the amount of regress
testing time and effort
for each code changes
~20 deployment each day
(including dev)
Deploy earlier (evening) or
sometimes business hour
Development team are more
happy and less exhausted
High quality code
Average 90% coverage, Sonar
gate with A grade
The Benefits of CI/CD
Before CI/CD After CI/CD
Long feature branch Short-lived feature branch
Multiple integration branch Trunk (master) as main integration branch
No verification before integration Multiple verification before integration
Manual testing Automated testing
Last minutes testing Shift-left testing a soon as possible for faster
feedback
Manual deployment Automated deployment
Big and less frequent deployment Small and frequent deployment
Summary
Terima Kasih
Thank you
Terima Kasih
Thank you

TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD

  • 1.
    Westrum Organizational Culturedan CI/CD Rendra Toro (Group CTO - perintistn.com)
  • 2.
    Group CTO -PT. Perintis Teknologi Nusantara ● Jatuh cinta pada dunia programming sejak 1989 ● Pengalaman di dunia e-commerce sejak 2009 (Berniaga.com, tokobagus.com, olx.co.id dan wowbid.live) ● Intel Innovators untuk AI dan Machine learning sejak tahun 2016 ● GDG Bogor manager dari tahun 2012
  • 3.
    Apa sih yangdimaksud dengan kultur organisasi ? ● Menurut Cambridge Dictionary : “the types of attitudes and agreed ways of working shared by the employees of a company or organization” ● Menurut Business Dictionary : “the values and behaviors that contribute to the unique social and psychological environment of an organization.”
  • 4.
    Nilai nilai kulturyang berbeda dengan kenyataan nya :) ● Konon Work and life Balance ● Konon ada Kultur untuk terus berkembang ● Konon katanya harus team work ● Konon ada kebebasan berinovasi ● Konon kualitas adalah segalanya
  • 5.
    DevOps sang DutaKultur "DevOps is those sets of cultural norms and technology practices that enable the fast flow of planned work from development, through tests, into operations, while preserving world-class reliability, operation, and security."
  • 7.
    DevOps ● Dev danOps Sebelumnya Developer dan team Ops (Operations) punya goal yang berbeda, Dev lebih mementingkan kecepatan untuk deliver feature atau code nya, sedangkan team Ops fokus pada stability platform nya. ● DevOps Dengan bersatunya team Developer dan team Operations, kedua team share goal yang sama yaitu bagaimana mencapai kecepatan delivery code atau software yang bagus serta tetap menjaga stabilitas code di area production.
  • 8.
    Proyek Aristoteles diGoogle Apa yang membuat team menjadi efektif ? “Who is on the team matters less than how the team members interact, structure of their work, and view their contributions.” Dinamika team dan bagaimana kultur organisasi berpengaruh pada dinamika di dalam team ● Psychological safety ● Budaya berkolaborasi dan berinovasi dengan peluang bereksperimen
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
    ● Dalam teamsaya informasi berjalan dengan aktif dan terbuka ● Dalam team saya kesalahan adalah kesempatan untuk belajar, dan tidak ada yang dikambing hitamkan dalam kesalahan tersebut ● Dalam team saya semua memiliki tanggung jawab yang sama ● Dalam team saya berkolaborasi dan bekerja sama dengan team lain atau dari divisi lain sangat dihargai dan disarankan untuk melakukannya ● Dalam team saya sangat terbuka dengan ide - ide baru Sangat setuju Setuju Netral Sedikit tidak setuju Tidak setuju Sedikit setuju Sangat tidak setuju Cara validasi organisasi dengan Westrum Organizational Culture
  • 14.
    ● High Cooperation ●Messenger trained ● Risk are shared ● Bridging is encouraged ● Failure lead to inquiry ● Novelty implemented Cara membentuk Generative Culture
  • 15.
    ● Build trustand make psychological safety a Priority ● Support culture of Learning and Sharing ● Experiment often ● Make Monitoring and Recovery a Priority ● Brake down Silos 5 Cara membentuk Kultur DevOps dengan performa tinggi
  • 16.
    AHR - DevOpsAssessment
  • 17.
    Continuous Improvement andCI/CD Continuous Improvement is better than delayed perfection. - Mark Twain
  • 18.
    Culture Change andthe Behaviors that drive it Westrum Organizational Culture Continuous Delivery Lean Management
  • 19.
  • 20.
    Terima kasih @rendra_toro Keep Smileand Happy coding guys …… 👍 rendra toro
  • 22.
    CI/CD Implementation toImprove Productivity with GitLab Steven Lewi (Principal Engineer, Home Credit Indonesia)
  • 23.
    OLX Indonesia Mobile Developer Blanja.com LeadAndroid Developer Home Credit Indonesia Principal Engineer linkedin.com/in/stevenlewi github.com/fenli
  • 24.
    Profile Introduction Development phase Testing phase Deployment phase The Day Before CI/CDPipeline Design CI/CD Implementation with GitLab The Journey What have we improved? Benefits of CI/CD The Day After
  • 25.
    The Day Before CI/CDImplementation
  • 26.
    Code in “longisolated” branch Multiple integration branch each environment No verifications Image by Freepik.com Merge conflicts, big testing scenario Hard to maintain multiple branch, often cause confusions Potential issue, code is hard to read and maintain The Day Before CI/CD Development phase
  • 27.
    The Day BeforeCI/CD Testing phase Manual testing Testing at last-minutes Image by Freepik.com Multiple effort when code changed frequently Less time for fixing if issue found at testing
  • 28.
    The Day BeforeCI/CD Deployment phase Image by Freepik.com Manual deployment More effort, often leads to down-time Deploy at late night Team already exhausted
  • 29.
    The Journey ofHome Credit Indonesia CI/CD implementation and challenges
  • 30.
  • 31.
    CICD Pipeline Design Merge/ Pull Request Pipeline setup unit test integration test sonar analysis lint … junit report Triggered on Merge Request Merge to Main branch Code Review
  • 32.
    CICD Pipeline Design Integration& Deployment Pipeline setup build artifact Triggered on merged / push to Main publish and version tag deploy dev deploy staging deploy production automated regress testing post release Need manual action (eg: click) full code analysis
  • 33.
    CI/CD Pipeline Implementation Largenumber of services / repository What are the challenges ? Different kind of application tech stack > 100 service Java React (Javascript / Typescript) Flutter Android iOS
  • 34.
    CI/CD Pipeline withGitLab CI Centralized pipeline repository Backend service (Java) Backend service (Java) Backend service (Java) Backend service (Java) Frontend (Javascript/React) Frontend (Javascript/React) Project Repository Mobile apps Library, etc include: - project: ‘devops/cicd-template’ file: ‘java-project.yml’ include: - project: ‘devops/cicd-template’ file: ‘javascript-project.yml’ include: - project: ‘devops/cicd-template’ file: ‘android-project.yml’ .gitlab-ci.yml .gitlab-ci.yml .gitlab-ci.yml GitLab CI Pipeline Repository include
  • 35.
    CI/CD Pipeline withGitLab CI Centralized pipeline repository java-project.yml ... unit-test: image: maven:3.6 stage: test script: - mvn clean test - mvn sonar:sonar GitLab CI Pipeline Repository java-library.yml Modular approach javascript-project.yml android-project.yml maven.yml gradle.yml npm.yml kubectl.yml scp.yml azure-cli.yml ... deploy-staging: image: bitnami/kubectl:latest environment: staging script: - kubectl apply -f deploy.yml - kubectl apply -f service.yml maven.yml kubectl.yml
  • 36.
    The Day After CI/CDImplementation
  • 37.
    The Day AfterCI/CD What have we improved on? Automated testing with Katalon Small and frequent deployment Reducing the amount of regress testing time and effort for each code changes ~20 deployment each day (including dev) Deploy earlier (evening) or sometimes business hour Development team are more happy and less exhausted High quality code Average 90% coverage, Sonar gate with A grade
  • 38.
    The Benefits ofCI/CD Before CI/CD After CI/CD Long feature branch Short-lived feature branch Multiple integration branch Trunk (master) as main integration branch No verification before integration Multiple verification before integration Manual testing Automated testing Last minutes testing Shift-left testing a soon as possible for faster feedback Manual deployment Automated deployment Big and less frequent deployment Small and frequent deployment Summary
  • 39.
  • 40.