SlideShare a Scribd company logo
1 of 37
Download to read offline
Delivering High Quality
Software Through Better
Release Process
Adani Arisy
Mobile Developer Lead
adani@kudo.co.id
Geraldi Kusuma Arnanto
Mobile Developer
geraldi@kudo.co.id
Our Experience
• Missing Deadlines
Release date almost always missed. This has cascade effect causing further
miss on next release
• Tight Testing Time
Testing so close to release date (often hours away) leads to low test
coverage
• Rushed Coding
Developer being rushed to finish coding tends to write dirty code which
prone to errors
• Overtimes
To bring out important hotfix or to compensate for missing milestone,
developers do overtime until late
The way it used to be
Early Days of Kudo
Zaman Jahiliah
Lots of missed deadlines and overtime L
Challenge in Releasing
• Managing Change of Scope
Agile team tends to stuff more requirements into their products, stretching
development time, and delaying release date
• Scaling Team Size
Need a standard process and mechanism that makes it easy for new
members
• Staging While Developing For Next Feature
Can be confusing to manage both at the same time. Context changing is
expensive!
• Maintaining Code Quality and Code Style Standard
Sometimes we forget, sometimes we know how it should be but do not bother
Train Release Model
When the train already leaves,
you wait for the next one
Staged Release
• Take time to test before
your app hits production
• Bug reports are
welcome, but only fix the
critical one
Alpha:	Tested	by	
developers,	products	
team,	and	quality	
assurance
Beta:	Tested	by	all	kudo	
employees
Production:	Public	
release
Branching Strategy
• Use one that provides a
robust model for your release
process
• Gitflow is great because it
• is easy to understand
• isolates development,
staging, & release, and
• can be adjusted for our
release policy
Fix Bugs
Before Writing New Code
Fraud comes first, bugs come
second, feature can wait
Locking Feature & Code
Only emergency commit
beyond this point
Development	phase
Feature	freeze
Testing	phase
Code	Freeze
Alpha	release Beta	release Production	release
Emergency Commit
• An urgent fix that must be
resolved before the app hit
the prod
• Release engineering decides
if a bug is considered an
emergency
• Reviewed by release master
before merged
Code Review
New features and emergency
commit must pass peer review
Before Code
Review
The Reason
Motivations
It’s much cheaper to fix
problems before the code
even make it to testing
Motivations
Both coder and reviewer get
to learn new things
Motivations
Maintains coding conventions
How We Do It At Kudo
• Adani will assign pairs per
feature
• Everyone gets to review
other’s code
How We Do It At Kudo
• Write the code
• Pay attention to code style
guidelines
How We Do It At Kudo
• Create Pull Request When
Done Coding
• Set the reviewer
How We Do It At Kudo
• Review The Code
How We Do It At Kudo
• Fix The Problems
• Pray for the reviewer to merge
it
Best Practices
Review fewer than 400 lines of code at a time
Best Practices
Take your time. Inspection rates should be under
500 LOC per hour
Best Practices
Do NOT review for more than 60 minutes at a time
Best Practices
Set goals and capture metrics!
Things To Note
We can have a negotiation
Things To Note
You are not your code. Don’t take it personally.
You need
Commitment**and cooperation from management
100%
Percentage of on-time release
76%
Percentage of user who experience
crashes/day decreases by
99.6% - 99.7%
crash-free sessions daily
compared to 96.1%-98.1%
previously
Better Release, Better Life
Happy people do great work!
Learn More
• https://smartbear.com/learn/code-review/
• https://www.atlassian.com/agile/code-reviews
• https://blog.codinghorror.com/code-reviews-just-
do-it/
• http://nvie.com/posts/a-successful-git-branching-
model/
We Love Good Discussions
Adani – adani@kudo.co.id
Geraldi – geraldi@kudo.co.id
Join Us! Grow Together!
careers@kudo.co.id

More Related Content

What's hot

Leading the Transformation
Leading the TransformationLeading the Transformation
Leading the TransformationXebiaLabs
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and BuildsBhavin Javia
 
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...Vincent Biret
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
Unstoppable releases with kanban
Unstoppable releases with kanbanUnstoppable releases with kanban
Unstoppable releases with kanbanAndrii Shumada
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationVijaya K
 
Continuous delivery is not finished
Continuous delivery is not finishedContinuous delivery is not finished
Continuous delivery is not finishedMiel Donkers
 
Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps worldMoataz Nabil
 
Integrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) DevelopmentIntegrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) DevelopmentIntland Software GmbH
 
Quality not-speed-for-distrobution
Quality not-speed-for-distrobutionQuality not-speed-for-distrobution
Quality not-speed-for-distrobutionbownyboy
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Moataz Nabil
 
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and DeliveryUsg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and DeliveryStephen Garrett
 
How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Continuous testing webinar 041017 slideshare
Continuous testing webinar 041017 slideshareContinuous testing webinar 041017 slideshare
Continuous testing webinar 041017 slideshareQualiQuali
 
Application Lifecycle Management with TFS
Application Lifecycle Management with TFSApplication Lifecycle Management with TFS
Application Lifecycle Management with TFSMehdi Khalili
 
Testing with Microsoft Technologies - Kick Off Session
Testing with Microsoft Technologies - Kick Off SessionTesting with Microsoft Technologies - Kick Off Session
Testing with Microsoft Technologies - Kick Off SessionMoataz Nabil
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - FunaroCodemotion
 
A guide for automated testing
A guide for automated testingA guide for automated testing
A guide for automated testingMoataz Nabil
 

What's hot (20)

Leading the Transformation
Leading the TransformationLeading the Transformation
Leading the Transformation
 
Continuous integration (eng)
Continuous integration (eng)Continuous integration (eng)
Continuous integration (eng)
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
 
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
Unstoppable releases with kanban
Unstoppable releases with kanbanUnstoppable releases with kanban
Unstoppable releases with kanban
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous delivery is not finished
Continuous delivery is not finishedContinuous delivery is not finished
Continuous delivery is not finished
 
Dev ops
Dev opsDev ops
Dev ops
 
Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps world
 
Integrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) DevelopmentIntegrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) Development
 
Quality not-speed-for-distrobution
Quality not-speed-for-distrobutionQuality not-speed-for-distrobution
Quality not-speed-for-distrobution
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
 
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and DeliveryUsg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
Usg Web Tech Day 2016 - Continuous Integration, Deployment, and Delivery
 
How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Continuous testing webinar 041017 slideshare
Continuous testing webinar 041017 slideshareContinuous testing webinar 041017 slideshare
Continuous testing webinar 041017 slideshare
 
Application Lifecycle Management with TFS
Application Lifecycle Management with TFSApplication Lifecycle Management with TFS
Application Lifecycle Management with TFS
 
Testing with Microsoft Technologies - Kick Off Session
Testing with Microsoft Technologies - Kick Off SessionTesting with Microsoft Technologies - Kick Off Session
Testing with Microsoft Technologies - Kick Off Session
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
A guide for automated testing
A guide for automated testingA guide for automated testing
A guide for automated testing
 

Viewers also liked

Joomla development & release strategy - Andrea Tarr #jd12nl
Joomla development & release strategy - Andrea Tarr #jd12nlJoomla development & release strategy - Andrea Tarr #jd12nl
Joomla development & release strategy - Andrea Tarr #jd12nlJoomla!Days Netherlands
 
Kudo Codefest: Data science ETL & Predictive analytics to make better product
Kudo Codefest: Data science ETL & Predictive analytics to make better productKudo Codefest: Data science ETL & Predictive analytics to make better product
Kudo Codefest: Data science ETL & Predictive analytics to make better productKudo Developers
 
Kudo Codefest: Make your website faster and reliable
Kudo Codefest: Make your website faster and reliableKudo Codefest: Make your website faster and reliable
Kudo Codefest: Make your website faster and reliableKudo Developers
 
Finding Success with Test Process Improvement
Finding Success with Test Process ImprovementFinding Success with Test Process Improvement
Finding Success with Test Process ImprovementJosiah Renaudin
 
Apereo OAE development and release process
Apereo OAE development and release processApereo OAE development and release process
Apereo OAE development and release processBert Pareyn
 
Release Manager Data sheet
Release Manager Data sheetRelease Manager Data sheet
Release Manager Data sheetAnalytiX DS
 
Overview of test process improvement framework
Overview of test process improvement frameworkOverview of test process improvement framework
Overview of test process improvement frameworkQA Club Kiev
 
BDD in Java using Cucumber
BDD in Java using CucumberBDD in Java using Cucumber
BDD in Java using Cucumberslavkurochkin
 
Test process improvement (TPI) By KJ Ross
Test process improvement (TPI) By KJ RossTest process improvement (TPI) By KJ Ross
Test process improvement (TPI) By KJ RossKJR
 
Release process for a project
Release process for a projectRelease process for a project
Release process for a projectMd Jawed
 
Software Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseSoftware Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseXebiaLabs
 
Xen Project Release and Roadmap Process (4.7+)
Xen Project Release and Roadmap Process (4.7+)Xen Project Release and Roadmap Process (4.7+)
Xen Project Release and Roadmap Process (4.7+)The Linux Foundation
 
Release With Maven
Release With MavenRelease With Maven
Release With Maveneugenn
 
'Growing to a Next Level Test Organisation' by Tim Koomen
'Growing to a Next Level Test Organisation' by Tim Koomen'Growing to a Next Level Test Organisation' by Tim Koomen
'Growing to a Next Level Test Organisation' by Tim KoomenTEST Huddle
 
Test Process Improvement
Test Process ImprovementTest Process Improvement
Test Process ImprovementMomentum NI
 
IT Software - Release cycle & Delivery roadmap
IT Software - Release cycle & Delivery roadmapIT Software - Release cycle & Delivery roadmap
IT Software - Release cycle & Delivery roadmapJean-François Nguyen
 
ITIL, Release Management and Automation
ITIL, Release Management and AutomationITIL, Release Management and Automation
ITIL, Release Management and AutomationIBM UrbanCode Products
 

Viewers also liked (20)

Joomla development & release strategy - Andrea Tarr #jd12nl
Joomla development & release strategy - Andrea Tarr #jd12nlJoomla development & release strategy - Andrea Tarr #jd12nl
Joomla development & release strategy - Andrea Tarr #jd12nl
 
Kudo Codefest: Data science ETL & Predictive analytics to make better product
Kudo Codefest: Data science ETL & Predictive analytics to make better productKudo Codefest: Data science ETL & Predictive analytics to make better product
Kudo Codefest: Data science ETL & Predictive analytics to make better product
 
Kudo Codefest: Make your website faster and reliable
Kudo Codefest: Make your website faster and reliableKudo Codefest: Make your website faster and reliable
Kudo Codefest: Make your website faster and reliable
 
Finding Success with Test Process Improvement
Finding Success with Test Process ImprovementFinding Success with Test Process Improvement
Finding Success with Test Process Improvement
 
Apereo OAE development and release process
Apereo OAE development and release processApereo OAE development and release process
Apereo OAE development and release process
 
Release Manager Data sheet
Release Manager Data sheetRelease Manager Data sheet
Release Manager Data sheet
 
Overview of test process improvement framework
Overview of test process improvement frameworkOverview of test process improvement framework
Overview of test process improvement framework
 
BDD in Java using Cucumber
BDD in Java using CucumberBDD in Java using Cucumber
BDD in Java using Cucumber
 
How To Plan a Software Project
How To Plan a Software ProjectHow To Plan a Software Project
How To Plan a Software Project
 
Test process improvement (TPI) By KJ Ross
Test process improvement (TPI) By KJ RossTest process improvement (TPI) By KJ Ross
Test process improvement (TPI) By KJ Ross
 
Release process for a project
Release process for a projectRelease process for a project
Release process for a project
 
Software Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseSoftware Release Orchestration and the Enterprise
Software Release Orchestration and the Enterprise
 
Xen Project Release and Roadmap Process (4.7+)
Xen Project Release and Roadmap Process (4.7+)Xen Project Release and Roadmap Process (4.7+)
Xen Project Release and Roadmap Process (4.7+)
 
Release With Maven
Release With MavenRelease With Maven
Release With Maven
 
'Growing to a Next Level Test Organisation' by Tim Koomen
'Growing to a Next Level Test Organisation' by Tim Koomen'Growing to a Next Level Test Organisation' by Tim Koomen
'Growing to a Next Level Test Organisation' by Tim Koomen
 
Agile Release Planning
Agile Release PlanningAgile Release Planning
Agile Release Planning
 
Test Process Improvement
Test Process ImprovementTest Process Improvement
Test Process Improvement
 
IT Software - Release cycle & Delivery roadmap
IT Software - Release cycle & Delivery roadmapIT Software - Release cycle & Delivery roadmap
IT Software - Release cycle & Delivery roadmap
 
ITIL, Release Management and Automation
ITIL, Release Management and AutomationITIL, Release Management and Automation
ITIL, Release Management and Automation
 
6 sigma LTE release management process improvement
6 sigma LTE release management process improvement6 sigma LTE release management process improvement
6 sigma LTE release management process improvement
 

Similar to Kudo codefest : Delivering High Quality Software Through Better Release Process

Code Review
Code ReviewCode Review
Code ReviewDivante
 
{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptx{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptxAmalEldhose2
 
Mobile Code Optimisation Services
Mobile Code Optimisation ServicesMobile Code Optimisation Services
Mobile Code Optimisation ServicesRaja Nagendra Kumar
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineeringgaoliang641
 
10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware ProgrammingPostSharp Technologies
 
Topic production code
Topic production codeTopic production code
Topic production codeKavi Kumar
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)Peter Kofler
 
Is your Swift iOS project ready to deploy?
Is your Swift iOS project ready to deploy?Is your Swift iOS project ready to deploy?
Is your Swift iOS project ready to deploy?Anuja Arosha
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementChristian Vos
 
Devops Days, 2019 - Charlotte
Devops Days, 2019 - CharlotteDevops Days, 2019 - Charlotte
Devops Days, 2019 - Charlottebotsplash.com
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentShawn Jones
 
Test Driven Development and Automation
Test Driven Development and AutomationTest Driven Development and Automation
Test Driven Development and AutomationMahesh Salaria
 
Automated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps NextAutomated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps NextPerfecto by Perforce
 
Automation in the world of project
Automation  in the world of projectAutomation  in the world of project
Automation in the world of projectZbyszek Mockun
 
Copilot to Cover: Why AI can't replace developers with robots, but can make l...
Copilot to Cover: Why AI can't replace developers with robots, but can make l...Copilot to Cover: Why AI can't replace developers with robots, but can make l...
Copilot to Cover: Why AI can't replace developers with robots, but can make l...Andy Piper
 
Agile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAmpersand
 

Similar to Kudo codefest : Delivering High Quality Software Through Better Release Process (20)

Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
Code Review
Code ReviewCode Review
Code Review
 
{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptx{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptx
 
Mobile Code Optimisation Services
Mobile Code Optimisation ServicesMobile Code Optimisation Services
Mobile Code Optimisation Services
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming
 
Topic production code
Topic production codeTopic production code
Topic production code
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Code Reviews
Code ReviewsCode Reviews
Code Reviews
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
Requirements the Last Bottleneck
Requirements the Last BottleneckRequirements the Last Bottleneck
Requirements the Last Bottleneck
 
Is your Swift iOS project ready to deploy?
Is your Swift iOS project ready to deploy?Is your Swift iOS project ready to deploy?
Is your Swift iOS project ready to deploy?
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinement
 
Devops Days, 2019 - Charlotte
Devops Days, 2019 - CharlotteDevops Days, 2019 - Charlotte
Devops Days, 2019 - Charlotte
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven Development
 
Test Driven Development and Automation
Test Driven Development and AutomationTest Driven Development and Automation
Test Driven Development and Automation
 
Automated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps NextAutomated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps Next
 
Automation in the world of project
Automation  in the world of projectAutomation  in the world of project
Automation in the world of project
 
Copilot to Cover: Why AI can't replace developers with robots, but can make l...
Copilot to Cover: Why AI can't replace developers with robots, but can make l...Copilot to Cover: Why AI can't replace developers with robots, but can make l...
Copilot to Cover: Why AI can't replace developers with robots, but can make l...
 
Agile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce Approach
 

Recently uploaded

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Recently uploaded (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

Kudo codefest : Delivering High Quality Software Through Better Release Process

  • 1. Delivering High Quality Software Through Better Release Process Adani Arisy Mobile Developer Lead adani@kudo.co.id Geraldi Kusuma Arnanto Mobile Developer geraldi@kudo.co.id
  • 2. Our Experience • Missing Deadlines Release date almost always missed. This has cascade effect causing further miss on next release • Tight Testing Time Testing so close to release date (often hours away) leads to low test coverage • Rushed Coding Developer being rushed to finish coding tends to write dirty code which prone to errors • Overtimes To bring out important hotfix or to compensate for missing milestone, developers do overtime until late The way it used to be
  • 3. Early Days of Kudo Zaman Jahiliah Lots of missed deadlines and overtime L
  • 4. Challenge in Releasing • Managing Change of Scope Agile team tends to stuff more requirements into their products, stretching development time, and delaying release date • Scaling Team Size Need a standard process and mechanism that makes it easy for new members • Staging While Developing For Next Feature Can be confusing to manage both at the same time. Context changing is expensive! • Maintaining Code Quality and Code Style Standard Sometimes we forget, sometimes we know how it should be but do not bother
  • 5.
  • 6. Train Release Model When the train already leaves, you wait for the next one
  • 7. Staged Release • Take time to test before your app hits production • Bug reports are welcome, but only fix the critical one Alpha: Tested by developers, products team, and quality assurance Beta: Tested by all kudo employees Production: Public release
  • 8. Branching Strategy • Use one that provides a robust model for your release process • Gitflow is great because it • is easy to understand • isolates development, staging, & release, and • can be adjusted for our release policy
  • 9. Fix Bugs Before Writing New Code Fraud comes first, bugs come second, feature can wait
  • 10. Locking Feature & Code Only emergency commit beyond this point Development phase Feature freeze Testing phase Code Freeze Alpha release Beta release Production release
  • 11. Emergency Commit • An urgent fix that must be resolved before the app hit the prod • Release engineering decides if a bug is considered an emergency • Reviewed by release master before merged
  • 12. Code Review New features and emergency commit must pass peer review
  • 15.
  • 16.
  • 17. Motivations It’s much cheaper to fix problems before the code even make it to testing
  • 18. Motivations Both coder and reviewer get to learn new things
  • 20. How We Do It At Kudo • Adani will assign pairs per feature • Everyone gets to review other’s code
  • 21. How We Do It At Kudo • Write the code • Pay attention to code style guidelines
  • 22. How We Do It At Kudo • Create Pull Request When Done Coding • Set the reviewer
  • 23. How We Do It At Kudo • Review The Code
  • 24. How We Do It At Kudo • Fix The Problems • Pray for the reviewer to merge it
  • 25. Best Practices Review fewer than 400 lines of code at a time
  • 26. Best Practices Take your time. Inspection rates should be under 500 LOC per hour
  • 27. Best Practices Do NOT review for more than 60 minutes at a time
  • 28. Best Practices Set goals and capture metrics!
  • 29. Things To Note We can have a negotiation
  • 30. Things To Note You are not your code. Don’t take it personally.
  • 33. 76% Percentage of user who experience crashes/day decreases by
  • 34. 99.6% - 99.7% crash-free sessions daily compared to 96.1%-98.1% previously
  • 35. Better Release, Better Life Happy people do great work!
  • 36. Learn More • https://smartbear.com/learn/code-review/ • https://www.atlassian.com/agile/code-reviews • https://blog.codinghorror.com/code-reviews-just- do-it/ • http://nvie.com/posts/a-successful-git-branching- model/
  • 37. We Love Good Discussions Adani – adani@kudo.co.id Geraldi – geraldi@kudo.co.id Join Us! Grow Together! careers@kudo.co.id