Introduction | part of The Problem With Software: Why Smart Engineers Write Bad Code | MIT Press books | IEEE Xplore