Your developers aren’t slow
Nice start, OP (especially with unclear specs, my personal pet peeve), but you've only hit upon the tip of the iceberg.Just a few other things I call "work prevention" that make good developers appear to be slow:  - 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