Kudo Codefest-Android Developer TechTalk:
At the early stage of Kudo, the release process were rather chaotic. Overdue releases and bug ridden software were some of the complications that we were experiencing. Over the course of its growth, we learn and steadily refines our engineering policy with heavy emphasize on release process.
This slides were presented by Adani and Gerald, mobile developer at Kudo, at Kudo CODEFEST Tech Talk. They explained how Kudo revolutionize their release process, from managing change of scope in an agile startup to maintaining code convention within the team. As a result of our new process, Kudo mobile developers were able to keep up with release date while achieving low crash rate and improving their code quality.
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
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
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