● There are “clusters of bugs”, i.e., finding a bug in a certain module increases a chance to find a subsequent bug in the same module. This is understood intuitively by most people yet very few act on it, discarding modules that have too many bugs (and rewriting them from scratch) instead of continuing to sink resources into maintenance.
● While professionals in other industries use professional tools, programmers use commodity hardware and software (the kind a homemaker would use to google a guacamole recipe). :(
● Managers and programmers think that personality traits and team members' individualities do not matter and there's no role “human factor” plays in development. Ditto for self-organization vs constantly “organizing”/policing employees.
● There were pretty cool systems back in the day (with orthogonal persistence, ability to inspect and modify any object on-the-fly, etc.). The modern ones are not “bad” either but some lessons could still be learned.
● Sometimes there are notions that bad software is created due to sales people/economic pressure but analysis of, say, build tools shows that it is not the case. ;)