Hitchhiker's Guide to Software Architecture and Everything Else - by Michael Stal