Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin
-
Upload
lean-and-agile-me -
Category
Technology
-
view
279 -
download
1
Transcript of 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
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
we are naive
optimistic by default assumes all goes well
of course we’ll succeed
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
but we build crap
http://imgur.com/a/Smr5d
https://www.flickr.com/photos/moacir/9521553637Licensed under Creative Commons BY-NC-SA 2.0
http://boeingboeing2.deviantart.com/art/Well-time-to-fly-another-airline-516735690Licensed under Creative Commons BY-NC 3.0
http://forgifs.com/gallery/v/Funny/Unloading-cement-pipe-onto-tires.gif.html
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
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
their problems to be understood and solvedCustomers really care
think like a Customer
our job should be maximizing the values
we can deliver
LEAN is a philosophy
LEAN is a philosophyMaximizing value
for the end customer by removing waste
LEAN is a philosophyPreserving value
with less work
value Any action or process that a customer would be willing to pay for
wasteAnything that doesn’t add value to the product(from customer perspective)
It’s time to find waste and clean
THE code ITSELF
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”
valueless developments
The very first value of software is
to tolerate and facilitate on-going changes
Robert C. Martin
developing the design
Source code is the design Jack W. Reeves
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
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
technical debt
debt is counting
Anything that makes your product difficult to change Any refactoring you postponed Any workaround, temporary fix, TODO, unmerged branch, untested code
legacy code
Code without tests is legacy code
Michael Feathersfrom the book “Working
Effectively with Legacy Code”
Sooner or later you will fall.
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
debugging
bug fixingmanual deployments
manual testingunmerged branches
big upfront designcomments
“We zombify people by using wrong practices”Niels Pflaeging
Management Exorcistfrom his talk at Agile Turkey Summit 2014
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
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
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)
documentation
foreword
Documentation is not a way of communication
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!
follow best practices
Few paragraphs Tables and flow diagrams Screenshots and wireframes Photos of whiteboards Tailor for audience Document review Delete the obsolete
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
Easier to group Easier to detail Easier to read Easier to organize
Requirement Gathering
Split the project into epics & stories
Design domain model and concepts
Keep initial size estimations
release planning
Developers write documents
really ???
Commit messages Branch names Commit graph Production code Test code Flow diagrams API documentation Release notes
Developers write documents
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
challenge your paradigms
Visualize the flows and observe Detect waste and the root causes
Take action to improve Inspect and Adapt
platinumsponsor
goldsponsor
silversponsors
bronzesponsors
Thanks
Sponsors#agileme2016
let the
leave the roomelephants
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