Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Tips for Making
Your Development Life
Leaner
Lemİ Orhan Ergİn
Agile Software Craftsman
let the
leave the room
elephants
let the
leave the room
elephants
Developing since 2001
Developer, Architect
Coach, Trainer, Consultant
Managing Partner at...
CONFERENCE SPONSORS
GOLD
SILVER
BRONZE
MEDIA PARTNERS
we are naive
optimistic by default
assumes all goes well
of course we’ll succeed
and over-confident
super heroes
smartest guy on planet
write perfect code
design the best
do it right for the first time
u...
http://imgur.com/a/Smr5d
legacy code
http://youhadonejob.org
usability
http://boeingboeing2.deviantart.com/art/Well-time-to-fly-another-airline-516735690
Licensed under Creative Commons BY-NC 3...
http://forgifs.com/gallery/v/Funny/Unloading-cement-pipe-onto-tires.gif.html
processes
build the wrong thing
build the thing wrong
poor quality
bugs and defects
slow and unproductive
endless dependencies
redun...
the languages we code
the technologies we use
the refactorings we need
the dependencies we have
the processes we follow
th...
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 MINDSET
Maximizing value
for the end customer
by removing waste
LEAN is a MINDSET
Preserving value
with less work
LEAN is a MINDSET
Let’s
find waste
and eliminate
in software development
THE code ITSELF
more code more defects
Industry average is about
15 - 50 errors per 1000 lines 

of delivered code.
Steve McConnell
from o...
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
Desig...
KEEP YOUR REPO TINY
Slit your code into multiple repos
Focus on continuous delivery
Keep your commit graph clean
Do not ov...
technical debt
debt is like being fatter
Anything that makes your product
difficult to move on
legacy code
Code without tests is
legacy code
Michael Feathers
from the book “Working
Effectively with Legacy Code”
Sooner or later you will fall.
PAY YOUR DEBT
Stop debugging!
Start TDD!
PAY YOUR DEBT
Keep track of technical debt in a backlog
Do not complete unless it is refactored
Document tricks and workar...
debugging
bug fixing
manual deployments
manual testing
unmerged branches
big upfront design
comments
“We zombify people by using wrong practices”
Niels Pflaeging
Management Exorcist
from his talk at Agile Turkey Summit 2014
Develop and refactor
Evolutionary design
Fully automated testing
Make codebase clean
Frequent short releases
Reproduce in ...
waste driven development
Long-lasting defects
99% done tasks
Rework at the end
Slow CI builds
Manual release steps
Work al...
Long-lasting defects
99% done tasks
Rework at the end
Slow CI builds
Manual release steps
Work alone
Only author knows the...
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 ...
readable to read
Documentation should be as
visual as it can be.
It should make you feel like
reading comic strips.
Alper ...
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 A LOT
really ???
Commit messages
Branch names
Commit graph
Production code
Test code
Flow diagrams
API documentation
Release notes
Code rev...
never
ending
story
Estimations
Management practices
Performance appraisals
Status Tracking
Time Tracking
Control of workin...
challenge your paradigms
Visualize the flows and observe
Detect waste and the root causes
Take action to improve
Inspect a...
Lemİ orhan ergİn
@lemiorhan
https://www.linkedin.com/in/lemiorhan
@lemiorhan
https://twitter.com/lemiorhan
@lemiorhan
http...
Upcoming SlideShare
Loading in …5
×

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

285 views

Published on

As developers, we often complain about the efficiency problems we face while working. We work hard but produce so little that our whole development life turns into a hamster wheel at some point. One of the biggest reason of such a common problem is working in waste. Waste is in everywhere, in our source code, in the office, in our processes and even in management. In this session, I will talk about the wastes and how we can remove to make our development life leaner.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Tips for Making Your Development Life Leaner Lemİ Orhan Ergİn Agile Software Craftsman let the leave the room elephants
  2. 2. let the leave the room elephants Developing since 2001 Developer, Architect Coach, Trainer, Consultant Managing Partner at ACM Sony & eBay Alumni lemiorhan lemiorhanergin.com lemiorhan Lemİ Orhan Ergİn Agile Software Craftsman Founder of SC Turkey Core Member of Agile Turkey
  3. 3. CONFERENCE SPONSORS GOLD SILVER BRONZE MEDIA PARTNERS
  4. 4. we are naive optimistic by default assumes all goes well of course we’ll succeed
  5. 5. and over-confident super 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
  6. 6. http://imgur.com/a/Smr5d legacy code
  7. 7. http://youhadonejob.org usability
  8. 8. http://boeingboeing2.deviantart.com/art/Well-time-to-fly-another-airline-516735690 Licensed under Creative Commons BY-NC 3.0 defects
  9. 9. http://forgifs.com/gallery/v/Funny/Unloading-cement-pipe-onto-tires.gif.html processes
  10. 10. 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
  11. 11. 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
  12. 12. their problems to be understood and solvedCustomers really care
  13. 13. think like a Customer our job should be maximizing the values we can deliver
  14. 14. LEAN is a MINDSET
  15. 15. Maximizing value for the end customer by removing waste LEAN is a MINDSET
  16. 16. Preserving value with less work LEAN is a MINDSET
  17. 17. Let’s find waste and eliminate in software development
  18. 18. THE code ITSELF
  19. 19. 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”
  20. 20. valueless developments The very first value of software is to tolerate and facilitate on-going changes Robert C. Martin
  21. 21. developing the design Source code is the design Jack W. Reeves
  22. 22. 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
  23. 23. 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
  24. 24. technical debt
  25. 25. debt is like being fatter Anything that makes your product difficult to move on
  26. 26. legacy code Code without tests is legacy code Michael Feathers from the book “Working Effectively with Legacy Code”
  27. 27. Sooner or later you will fall.
  28. 28. PAY YOUR DEBT Stop debugging! Start TDD!
  29. 29. PAY YOUR DEBT Keep track of technical debt in a backlog Do not complete unless it is refactored Document tricks and workarounds Get refactored tasks in every Sprint
  30. 30. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments
  31. 31. “We zombify people by using wrong practices” Niels Pflaeging Management Exorcist from his talk at Agile Turkey Summit 2014
  32. 32. 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
  33. 33. 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
  34. 34. 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 continuously 10 minute CI builds Automatic release steps Program in peers and as the whole team Code is reviewed by the team Checkin codebase frequently Commit early, commit often, perfect later Design by Tests (TDD)
  35. 35. documentation
  36. 36. foreword Documentation is not a way of communication
  37. 37. 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!
  38. 38. readable to read Documentation should be as visual as it can be. It should make you feel like reading comic strips. Alper Tonga from his talk about “Documentation in Agile Transformation” at PMI-TR Summit’14
 http://www.slideshare.net/scrumturkey/pmi-tr-summit-2014-alper-tonga
  39. 39. Easier to group Easier to detail Easier to read Easier to organize Requirement Gathering
  40. 40. Split the project into epics & stories Design domain model and concepts Keep initial size estimations release planning
  41. 41. Developers write documents A LOT really ???
  42. 42. Commit messages Branch names Commit graph Production code Test code Flow diagrams API documentation Release notes Code review comments Developers write documents
  43. 43. 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
  44. 44. challenge your paradigms Visualize the flows and observe Detect waste and the root causes Take action to improve Inspect and Adapt
  45. 45. Lemİ orhan ergİn @lemiorhan https://www.linkedin.com/in/lemiorhan @lemiorhan https://twitter.com/lemiorhan @lemiorhan http://www.slideshare.net/lemiorhan agile software craftsman lemiorhanergin.com Official site having personal information www.acm-software.com

×