47
Tips for Making Your Development Life Leaner Lemİ Orhan Ergİn Agile Software Craftsman let the leave the room elephants #agileme2016

Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Embed Size (px)

Citation preview

Page 1: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Tips for Making Your Development Life

Leaner

Lemİ Orhan ErgİnAgile Software Craftsman

let the

leave the roomelephants

#agileme2016 elephants

Page 2: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Developing since 2001 Developer, Architect

Coach, Trainer, Consultant Managing Partner at ACM

Sony & eBay Alumni

@lemiorhan lemiorhanergin.com

@lemiorhan

Lemİ Orhan ErgİnAgile Software Craftsman

let the

leave the roomelephants

Page 3: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

we are naive

optimistic by default assumes all goes well

of course we’ll succeed

Page 4: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

and over-confidentsuper heroes

smartest guy on planet write perfect code

design the best do it right for the first time understand customer needs

manage people & projects build elegant solutions

Page 5: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

but we build crap

http://imgur.com/a/Smr5d

Page 6: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

https://www.flickr.com/photos/moacir/9521553637Licensed under Creative Commons BY-NC-SA 2.0

Page 7: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

http://boeingboeing2.deviantart.com/art/Well-time-to-fly-another-airline-516735690Licensed under Creative Commons BY-NC 3.0

Page 8: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

http://forgifs.com/gallery/v/Funny/Unloading-cement-pipe-onto-tires.gif.html

Page 9: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

build the wrong thing build the thing wrong

poor quality bugs and defects

slow and unproductive endless dependencies

redundant tasks

drowned in waste

error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error error

Page 10: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

the languages we code the technologies we use the refactorings we need the dependencies we have the processes we follow the feelings we have

Customers don’t care

Page 11: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

their problems to be understood and solvedCustomers really care

Page 12: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

think like a Customer

our job should be maximizing the values

we can deliver

Page 13: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

LEAN is a philosophy

Page 14: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

LEAN is a philosophyMaximizing value

for the end customer by removing waste

Page 15: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

LEAN is a philosophyPreserving value

with less work

Page 16: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

value Any action or process that a customer would be willing to pay for

Page 17: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

wasteAnything that doesn’t add value to the product(from customer perspective)

Page 18: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

It’s time to find waste and clean

Page 19: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

THE code ITSELF

Page 20: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

more code more defects

Industry average is about 15 - 50 errors per 1000 lines

of delivered code.

Steve McConnell from of the book “Code Complete”

Page 21: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

valueless developments

The very first value of software is

to tolerate and facilitate on-going changes

Robert C. Martin

Page 22: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

developing the design

Source code is the design Jack W. Reeves

Page 23: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

FOCUS ON QUALITY

Design Patterns Refactoring Techniques OOP/FP/RP Principles Clean Code Principles Automated testing Design by tests (TDD) Code review techniques Pair programming culture

Page 24: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

KEEP YOUR REPO TINY

Slit your code into multiple repos Focus on continuous delivery Keep your commit graph clean Do not overdose branching Delete code Prefer modular design

Page 25: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

technical debt

Page 26: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

debt is counting

Anything that makes your product difficult to change Any refactoring you postponed Any workaround, temporary fix, TODO, unmerged branch, untested code

Page 27: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

legacy code

Code without tests is legacy code

Michael Feathersfrom the book “Working

Effectively with Legacy Code”

Page 28: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Sooner or later you will fall.

Page 29: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

PAY YOUR DEBT

Write automated tests Practice TDD and BDD Keep track of technical debt in a backlog Do not complete unless it is refactored Document tricks and workarounds Get technical tasks in every Sprint

Page 30: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

debugging

bug fixingmanual deployments

manual testingunmerged branches

big upfront designcomments

Page 31: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

“We zombify people by using wrong practices”Niels Pflaeging

Management Exorcistfrom his talk at Agile Turkey Summit 2014

Page 32: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Develop and refactor Evolutionary design Fully automated testing Make codebase clean Frequent short releases Reproduce in test and fix Get feedback and release

Develop and refactor Evolutionary design Fully automated testing Make codebase clean Frequent short releases Reproduce in test and fix Get feedback and release

Develop and bug fix Big upfront design

Manual testing Add comments to codebase

Big releases Fix and test

Release and get feedback

Page 33: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

waste driven development

Long-lasting defects 99% done tasks Rework at the end Slow CI builds Manual release steps Work alone Only author knows the code Unsynchronized branches Hesitation to commit the changes Test last development

Page 34: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Long-lasting defects 99% done tasks Rework at the end Slow CI builds Manual release steps Work alone Only author knows the code Unsynchronized branches Hesitation to commit the changes Test last development

Calculate defect resolution times

think differently

success Define definition of done and obey

Refactor continuously10 minute CI builds Automatic release stepsProgram in peersCode is reviewed by the teamCheckin codebase frequentlyCommit early, commit often, perfect laterDesign by Tests (TDD)

Page 35: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

documentation

Page 36: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

foreword

Documentation is not a way of communication

Page 37: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

It’s sad, but have to admit

No one reads our documentation Even we do not read what we write Information becomes obsolete too fast Reading analysis is too booooring!

Page 38: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

follow best practices

Few paragraphs Tables and flow diagrams Screenshots and wireframes Photos of whiteboards Tailor for audience Document review Delete the obsolete

Page 39: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

readable to read

Documentation should be as visual as it can be.

It should make you feel like reading comic strips.

Alper Tongafrom his talk about “Documentation in Agile

Transformation” at PMI-TR Summit’14http://www.slideshare.net/scrumturkey/pmi-tr-summit-2014-alper-tonga

Page 40: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Easier to group Easier to detail Easier to read Easier to organize

Requirement Gathering

Page 41: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Split the project into epics & stories

Design domain model and concepts

Keep initial size estimations

release planning

Page 42: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Developers write documents

really ???

Page 43: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Commit messages Branch names Commit graph Production code Test code Flow diagrams API documentation Release notes

Developers write documents

Page 44: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

never ending story

Estimations Management practices

Performance appraisals Status Tracking

Time Tracking Control of working hours

Working at office Overtimes

Meetings Dress codes

Clean desk policy Tools and OS

Turnovers Motivation

Micro management Office space

Page 45: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

challenge your paradigms

Visualize the flows and observe Detect waste and the root causes

Take action to improve Inspect and Adapt

Page 46: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

platinumsponsor

goldsponsor

silversponsors

bronzesponsors

Thanks

Sponsors#agileme2016

let the

leave the roomelephants

Page 47: Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin

Lemİ orhan ergİn

@lemiorhanhttps://www.linkedin.com/in/lemiorhan

@lemiorhanhttps://twitter.com/lemiorhan

@lemiorhanhttp://www.slideshare.net/lemiorhan

agile software craftsman

lemiorhanergin.comOfficial site having personal information

www.acm-software.com