Patterns enhance Software Development by capturing successful expert practice in an accessible and systematic manner. A good pattern allows not only the recording of existing practices, but provides a context where the solution is appropriate and rationale as to why it works. Can describe the abstract relationships between objects at both high and low levels. In documenting frameworks, the use of patterns to describe the system can be essential. Allows developer experience to be more readably and consistently transferred to others.
Patterns can address many different levels and kinds of knowledge.
Allows a system to be structured to enable parallel development. AntiPatterns are a method of efficiently mapping a general situation to a specific class of solutions. AntiPatterns provide real world experience in recognizing recurring problems in the software industry, providing a detailed remedy for the most common predicaments. AntiPatterns provide a common vocabulary for identifying problems and discussing solutions. AntiPatterns support the holistic resolution of conflicts utilizing organizational resources at several levels, where possible.