General Principles of Systems Design by Gerald M. Weinberg & Daniela Weinberg