1. Agile design Best practices We believe that it is possible. Igor Moochnick Principal IgorShare Consulting [email_address] Blog: www.igorshare.com/blog
2.
3.
4.
5.
6.
7.
8.
9.
10. Transparency - Feedback Not Started In Progress Testing Customer Review Done, Done, Done Story #1 Story #2 Story #3 Story #4 Story #5 Story #6 Story #7 Story #8 Story #9 Story #10
28. Package Cohesion Principles REP The Release Reuse Equivalency Principle The granule of reuse is the granule of release. CCP The Common Closure Principle Classes that change together are packaged together. CRP The Common Reuse Principle Classes that are used together are packaged together.
29. Package Coupling Principles ADP The Acyclic Dependencies Principle The dependency graph of packages must have no cycles. SDP The Stable Dependencies Principle Depend in the direction of stability. SAP The Stable Abstractions Principle Abstractness increases with stability.
A class should have one, and only one, reason to change
You should be able to extend a classes behavior, without modifying it "Software entities should be open for extension, but closed for modification.“ - Robert C. Martin “… the essence of the Open/Closed Principle is being able to add new functionality to an existing codebase by writing completely new code with minimal modification of existing code. ”
Derived classes must be substitutable for their base classes.
Make fine grained interfaces that are client specific.