- unclear specs
- context switching
- peer review (both giving & receiving)
- code review
- status meetings
- waiting for others to show up at meetings
- others not prepared for meetings (no agenda, etc.)
- unnecessary but enforced standards (stupid, pointless)
- programs locked by other devs (get in line)
- pre-existing technical debt (must be fixed before amended)
- framework can't handle it
- works but won't scale
- can't recreate bug
- platform issue (server, DBMS, etc.)
- environmental issues (test server out of date)
- waiting for server resources (testing)
- waiting for regression tester
- waiting for user acceptance testing
- specs changing during user acceptance testing
- uncontrolled deployment "freezes" (month-end, release schedule)
- noisy office
- meetings when emails would have sufficed
- phone calls when emails would have sufficed
- text messages when emails would have sufficed
- continually changing priorities
- delays in offshore communications
- lack of training (technology)
- lack of training (business subject matter)
- too much training (HR bullshit)
- not enough donuts