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.
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by Lemi Orhan Ergin
1. Tips for Making
Your Development Life
Leaner
Lemİ Orhan Ergİn
Agile Software Craftsman
let the
leave the room
elephants
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
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
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
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
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
31. “We zombify people by using wrong practices”
Niels Pflaeging
Management Exorcist
from his talk at Agile Turkey Summit 2014
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. 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. 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)
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. 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. Easier to group
Easier to detail
Easier to read
Easier to organize
Requirement
Gathering
40. Split the project
into epics & stories
Design domain
model and concepts
Keep initial size
estimations
release
planning