Does your design smell?
Capers Jones conducted a study in 2012 across five large corporations and found that the number of software defects that can be traced back to errors in software design was as high as64%! Hence, ensuring a high quality of software design is critical for developing high-quality software. However, as Fred Brooks observes in his book “The Mythical Man Month”, software design is an inherently complex activity; the intangible nature of software makes it difficult for humans to envision, develop, and reason about its design.
This talk proposes a unique approach towards developing high-quality software design. Borrowing a phrase from the healthcare domain “a good doctor is one who knows the medicines but a great doctor is one who knows the disease”, the proposed approach is grounded on the philosophy that “a good designer is one who knows about the design principles but a great designer is one who understands the problems (or smells) with the design, their cause, and how they can be addressed by applying proven and sound design principles”. This talk focuses on the “disease”, i.e. the design smells, its different types with the help of a comprehensive catalog, its impact on the software, and actionable suggestions to refactor them in real-world settings.
Outline/Structure of the Demonstration
- Design smells classification and catalog - 2 minutes
- Examples of design smells and their impact on software quality - 15 minutes
- Conclusion and Q&A - 3 minutes
- Understanding the importance of software design quality
- Design smells and their impact on software quality
- Design smells classification and catalog
- Refactoring strategies to repay design debt
software developers, software designers, architects, technical leads, and project/program managers