This document discusses software metrics and design problems. It provides examples of common code metrics like lines of code, cyclomatic complexity, and coupling between objects. However, it notes that metrics have limitations in that they measure symptoms rather than causes of problems and don't directly lead to improvement actions on their own due to issues with thresholds and granularity. Metrics are better used to assess and improve quality when combined with design principles rather than in isolation. Reverse engineering is proposed as a way to better understand large, existing systems by analyzing components and relationships at a more abstract level.