Design patterns and best practices are the key to developing good software. Failing to observe and factor patterns and failing to identify and follow best practices results in bad code—code that performs poorly, is frustrating to maintain, and ultimately sprawls and metastasizes like an unplanned city or a cancer.