Slide 1

Slide 1 text

Lean Thinking for Software Developers LEMi ORHAN ERGiN agile software craftsman @ iyzico WASTE DRIVEN DEVELOPMENT FIGHTING WITH manager developer the product guy developer @lemiorhan

Slide 2

Slide 2 text

/lemiorhan lemiorhanergin.com @lemiorhan LEMi ORHAN ERGiN agile software craftsman @ iyzico ex-Sony, ex-eBay founder of Turkish Software 
 Craftsmanship Community

Slide 3

Slide 3 text

we are naive optimistic by default assumes all goes well of course we’ll succeed

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

their problems to be understood and solved Customers really care

Slide 12

Slide 12 text

think like a Customer our job should be maximizing the values we can deliver

Slide 13

Slide 13 text

LEAN is a MINDSET

Slide 14

Slide 14 text

Maximizing value for the end customer by removing waste LEAN is a MINDSET

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

doesn’t add value to the product makes you slow down decrease productivity makes us open to do mistakes increase complexity WASTE

Slide 17

Slide 17 text

Let’s find waste and eliminate in software development

Slide 18

Slide 18 text

searching for the missing single quote?

Slide 19

Slide 19 text

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”

Slide 20

Slide 20 text

valueless developments The very first value of software is to tolerate and facilitate on-going changes Robert C. Martin

Slide 21

Slide 21 text

we are surrounded with waste

Slide 22

Slide 22 text

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 SILOS package organization

Slide 23

Slide 23 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 24

Slide 24 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 25

Slide 25 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 26

Slide 26 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 27

Slide 27 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 28

Slide 28 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 29

Slide 29 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 30

Slide 30 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 31

Slide 31 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 32

Slide 32 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 33

Slide 33 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 34

Slide 34 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 35

Slide 35 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 36

Slide 36 text

debugging bug fixing manual deployments manual testing unmerged branches big upfront design comments LOGGING framework addiction highly coupled design bıg RELEASES HAVING SILOS package organization COMMIT MESSAGES & GRAPH

Slide 37

Slide 37 text

“We zombify people by using wrong practices” Niels Pflaeging Management Exorcist from his talk at Agile Turkey Summit 2014

Slide 38

Slide 38 text

follow the BOY SCOUT RULE CURE Pay technical debt need a CULTURAL SHIFT

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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!

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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 Automated 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

Slide 45

Slide 45 text

LET PEOPLE THINK differently Brainstorming Sessions about standards, architecture and technical debt Grand Retrospectives

Slide 46

Slide 46 text

LET PEOPLE do differently TDD Radori Sessions Coding Dojos Code Retreats

Slide 47

Slide 47 text

AND DESIGN think differently

Slide 48

Slide 48 text

AND DESIGN think differently

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

LEMi ORHAN ERGiN agile software craftsman @ iyzico Feedback: bit.ly/lemiorhan thank you all!