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.

Fighting with Waste Driven Development - XP Days Ukraine 2017

810 views

Published on

These are the slides that I presented at XP Days Ukraine 2017.

Published in: Software
  • Be the first to comment

Fighting with Waste Driven Development - XP Days Ukraine 2017

  1. 1. Lean Thinking for Software Developers LEMi ORHAN ERGiN agile software craftsman @ iyzico WASTE DRIVEN DEVELOPMENT FIGHTING WITH manager developer the product guy developer @lemiorhan
  2. 2. /lemiorhan lemiorhanergin.com @lemiorhan LEMi ORHAN ERGiN agile software craftsman @ iyzico ex-Sony, ex-eBay founder of Turkish Software 
 Craftsmanship Community
  3. 3. we are naive optimistic by default assumes all goes well of course we’ll succeed
  4. 4. 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
  5. 5. http://imgur.com/a/Smr5d Are you scared of touching your source code? Welcome to the club! Legacy code consumes your life energy, sucks your blood, forces you hack your code to survive. Therefore we call it zombie software, not legacy anymore legacy code
  6. 6. http://youhadonejob.org Less than 0.01 percent That’s how many consumer mobile apps will be considered a financial success by their creators at the end of 2018, according to new research from Gartner Inc. http://www.forbes.com/sites/connieguglielmo/2014/01/13/ mobile-apps-may-not-pave-the-way-to-developer-riches-sales- average-less-than-1250-a-day Mobile Apps Won't Lead To Riches For Most Developers by Connie Guglielmo
  7. 7. http://boeingboeing2.deviantart.com/art/Well-time-to-fly-another-airline-516735690 Licensed under Creative Commons BY-NC 3.0 We have time to fix bugs, but no time for writing better We don’t refactor and write tests because we don’t have enough time. But we have time for debugging, hacking code and fixing bugs.
  8. 8. http://forgifs.com/gallery/v/Funny/Unloading-cement-pipe-onto-tires.gif.html Processes do not build products, but people do Processes help people improve the way they build products, increase motivation and cultivate an healthy environment. In the end, the efficiency of processes are important, but people are crucial.
  9. 9. 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
  10. 10. 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
  11. 11. their problems to be understood and solvedCustomers really care
  12. 12. think like a Customer our job should be maximizing the values we can deliver
  13. 13. LEAN is a MINDSET
  14. 14. Maximizing value for the end customer by removing waste LEAN is a MINDSET
  15. 15. value Any action or process that a customer would be willing to pay for
  16. 16. doesn’t add value to the product makes you slow down decrease productivity makes us open to do mistakes increase complexity WASTE
  17. 17. Let’s find waste and eliminate in software development
  18. 18. searching for the missing single quote?
  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. we are surrounded with waste
  22. 22. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES COMMIT MESSAGES & GRAPH HAVING SILOSpackage organization
  23. 23. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  24. 24. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  25. 25. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  26. 26. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  27. 27. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  28. 28. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  29. 29. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  30. 30. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  31. 31. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  32. 32. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  33. 33. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  34. 34. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  35. 35. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  36. 36. debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOSpackage organization COMMIT MESSAGES & GRAPH
  37. 37. “We zombify people by using wrong practices” Niels Pflaeging Management Exorcist from his talk at Agile Turkey Summit 2014
  38. 38. follow the BOY SCOUT RULE CUREPay technical debt need a CULTURAL SHIFT
  39. 39. follow the BOY SCOUT RULE Pay technical debt need a CULTURAL SHIFT Define technical debts regularly and put to backlog Fix bugs and do refactorings at every sprint 100 percent feature development kills your project Batman & Robin might save your life
  40. 40. follow the BOY SCOUT RULE Pay technical debt need a CULTURAL SHIFT Teach your values and principles to the team Slow down to go fast It's your profession, do it well!
  41. 41. follow the BOY SCOUT RULE Pay technical debt need a CULTURAL SHIFT it defines a culture and a discipline it is based on code review, refactoring and kaizen it improves collective ownership and triggers collaboration it is an antidote for dissolving silos. it is a strategy for continuously eliminating waste
  42. 42. 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
  43. 43. waste driven development Long-lasting defects 99% done tasks Rework at the end Missing continuous integration Manual release steps Working alone Only author knows the code Unsynchronized branches Feeling like a newbie while using a SCM Manual testing again and again
  44. 44. Long-lasting defects 99% done tasks Rework at the end Missing continuous integration Manual release steps Working alone Only author knows the code Unsynchronized branches Feeling like a newbie while using a SCM Manual testing again and againAutomated tests in all levels Calculate defect resolution times success Define definition of done and obey Refactor continuously Keep feature branches short Automatic release steps Program in peers and as the whole team Never release unreviewed code to prod Checkin codebase frequently Learn Git (or any other you use) perfectly think differently
  45. 45. LET PEOPLE THINK differently Brainstorming Sessions about standards, architecture and technical debt Grand Retrospectives
  46. 46. LET PEOPLE do differently TDD Radori Sessions Coding Dojos Code Retreats
  47. 47. AND DESIGNthink differently
  48. 48. AND DESIGNthink differently
  49. 49. 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
  50. 50. LEMi ORHAN ERGiN agile software craftsman @ iyzico Feedback: bit.ly/lemiorhan thank you all!

×