Agile Android

Post on 24-May-2015

230 views 0 download

description

My talk at Practical Agile 2014, about definition of done.

Transcript of Agile Android

DEFINITION OF DONE – THE HARDEST AND MOST THE IMPORTANT AGILE PRACTICE IN ANDROID DEVELOPMENT

Boris Farber04/12/2023boris.farber@gmail.com

About Me

Android Lead at Varonis Blog – www.api-solutions.com Open Source

Profiterole – Map Reduce on Android Sherlock Hash – Persistent Hash

Definition of Done

Definition of Done – the hardest and the most important agile practice in Android development

Without a consistent meaning of done, velocity cannot be estimated.

A common definition of done ensures that the increment produced at the end of sprint is of high quality, with minimal defects. 

Definition Of Done

Am I finished with a feature? You are not finished with a feature until it

meets the benchmark defined by done. A very simple definition of done can be encapsulated as follows: Code Complete Test Complete Approved by Product Owner

Real Life

Platform/API limitations Time pressure Code is not clean

Developed by external company Developed by person who left Technical Debts – unfinished features

My feature

Make it work Refactor (Rinse and Repeat)

Butter Churning

Roll over the churner There will be last round

Problem

Very difficult to estimate Contagious

What to do

Don’t look how good code can be Look how bad code can not be (Smells)

Smells + Solutions

Code Duplication Extract method/class/Interface Move Common functionality …

Dependency Between UI and BL Context God Class Use Façade pattern (XXXPlayer)

Many ifs (specially with same condition) Use Design Patterns to reduce coupling …

Strategy State Template Method

THANK YOU ! boris.farber@gmail.com