- overly complex or overly simplistic object model
- not extensible (although this itself is not strictly bad, as spec changes are pretty hard to predict, but sometimes it is requires more effort to make something not extensible than it is to make it extensible these cases are a problem unless there is a good reason for it).
- abstractions that introduce more effort (factory factories...)
- bad factoring
- overly complex or overly simplistic object model
- not extensible (although this itself is not strictly bad, as spec changes are pretty hard to predict, but sometimes it is requires more effort to make something not extensible than it is to make it extensible these cases are a problem unless there is a good reason for it).
- abstractions that introduce more effort (factory factories...)