The document discusses the differences between engineering and craftsmanship approaches to software development. It notes that software practitioners are both designers and builders of the software models or source code artifacts. It argues that programmers have a luxury and responsibility to take a craftsmanship approach where they focus on explaining solutions to other humans through writing code that is readable, rather than just focusing on instructing computers. Taking a craft approach helps programmers avoid losing sight of intangible but important aspects like the user experience.