In a sentence:
Anything about your code and development environment that slows you down.
- unclear, unreadable code
 - lack of
- test automation
 - build automation
 - deployment automation
 - and anything else that could be automated but you do manually today
 
 - duplicate code
 - tangled architecture and unnecessarily complex dependencies
 - slow, ineffective tools
 - uncommitted code and long-lived branches (hides problems that will slow you down later)
 - important technical documentation that is missing or out-of-date
 - unnecessary technical documentation that is being maintained and kept up-to-date
 - lack of test environments
 - long build-test cycle and lack of continuous integration
 
 Chris