37
Delivering High Quality Software Through Better Release Process Adani Arisy Mobile Developer Lead [email protected] Geraldi Kusuma Arnanto Mobile Developer [email protected]

Kudo codefest : Delivering High Quality Software Through Better Release Process

Embed Size (px)

Citation preview

Delivering High Quality Software Through Better Release Process

Adani ArisyMobile Developer [email protected]

Geraldi Kusuma ArnantoMobile [email protected]

Our Experience• Missing Deadlines

Release date almost always missed. This has cascade effect causing further miss on next release

• Tight Testing TimeTesting so close to release date (often hours away) leads to low test coverage

• Rushed CodingDeveloper 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 KudoZaman 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 SizeNeed a standard process and mechanism that makes it easy for new members

• Staging While Developing For Next FeatureCan be confusing to manage both at the same time. Context changing is expensive!

• Maintaining Code Quality and Code Style StandardSometimes we forget, sometimes we know how it should be but do not bother

Train Release ModelWhen 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:Testedbydevelopers,productsteam,andqualityassurance

Beta:Testedbyallkudoemployees

Production :Publicrelease

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 ourrelease policy

Fix BugsBefore Writing New Code

Fraud comes first, bugs come second, feature can wait

Locking Feature & CodeOnly emergency commit

beyond this point

Developmentphase

Featurefreeze

Testingphase

CodeFreeze

Alpharelease Betarelease Productionrelease

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 ReviewNew features and emergency commit must pass peer review

Before Code Review

The Reason

MotivationsIt’s much cheaper to fix

problems before the code even make it to testing

MotivationsBoth coder and reviewer get

to learn new things

MotivationsMaintains 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 PracticesReview fewer than 400 lines of code at a time

Best PracticesTake your time. Inspection rates should be under

500 LOC per hour

Best PracticesDo NOT review for more than 60 minutes at a time

Best PracticesSet goals and capture metrics!

Things To NoteWe can have a negotiation

Things To NoteYou 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 LifeHappy 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 DiscussionsAdani – [email protected]

Geraldi – [email protected]

Join Us! Grow [email protected]