97 Things Every Software Architect Should Know by Richard Monson-Haefel