Lean architecture for agile software development - Coplien, James. (Wiley, 2010)