2. LEMi ORHAN ERGiN
agile software craftsman @ iyzico
/lemiorhan
lemiorhanergin.com
@lemiorhan
agile practice lead at iyzico
Sony, eBay/GittiGidiyor & ACM
founder of Software Craftsmanship Turkey
ex product owner of Agile Turkey Summit
organized 200+ meetups and 3 conferences
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. 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
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
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
24. KEEP YOUR REPO TINY
Slit your code into multiple modules / plugins
Keep your commit graph clean
Never allow long-living branches
Do not hesitate to delete code
Refactor code via SOLID principles
Keep independent parts in separate repos
Maintain modules in a single mono repo
25. “We zombify people by using wrong practices”
Niels Pflaeging
Management Exorcist
from his talk at Agile Turkey Summit 2014
26. 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
27. 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
Hesitation to commit the changes
Manual testing again and again
28. 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
Hesitation to commit the changes
Manual testing again and againDesign by Tests (TDD)
Calculate defect resolution times
think differently
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
Commit early, commit often, perfect later
29. define standards
everyone should have same understanding and base
Analysis
Testing
Architecture
Release & Deployment
Bug Fixing
Database Structure
Error Handling
Logging
Quality Metrics
Web Services / API
Coding / Naming
Code Review
Commit Messages
Messaging
30. version everything
continuous delivery starts with efficient use of SCMs
Source code
Deployment scripts
Application configuration
Auto generated codes
Automated tests
Static content (like images)
Rewrite rules
Server configurations
Database schema changes
Dependency configurations
31. automize everything
remove waste, push to extremes, slow down to go fast
Running unit tests
Building / packaging
Code analysis
Deployments
Functional testing
Releases
Cache cleanup
Performance monitoring
Regression testing
Rollbacks
Scaling
Integration of all commits
Notifying warning or errors
Reporting
32. radical transparency
openness, honesty, collaboration and improvement requires
Release dates
Critical defects in production
Status of the project
SLAs (Service Level Agreements)
Bugs in new features
Agreed standards
Definition of Done
Names of on-call support people
Quality metrics of the software
Velocity of the team
Lead and cycle times
Business value delivered
Moods of team members
Vacation dates of people
35. 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!