A Big Ball of Mud is software that lacks perceivable architecture and structure. It is haphazardly constructed due to business pressures and developer turnover. Symptoms of bad quality software include rigidity, fragility, immobility, viscosity, needless repetition, needless complexity, and opacity. The code is difficult to change, break, reuse, and understand. Possible solutions include principles like DRY, YAGNI, and SOLID design patterns.