Viele von uns haben das Programmieren autodidaktisch erlernt. Doch dabei haben wir nur wenig darüber gelernt, wie man Code schreibt, der auch für andere Entwickler gut lesbar und leicht zu ändern ist, und wie man komplexe Software entwirft, die „soft“ ist (d. h. mit möglichst wenig Aufwand änderbar und wartbar) und dies während ihrer gesamten Lebensdauer von möglicherweise Jahren bis Jahrzehnten bleibt.
An dieser Stelle kommt Software Craftsmanship ins Spiel (zu deutsch: „Software-Handwerkskunst“ oder „Softwerkskunst“). Ziel von Software Craftsmanship ist es, die Qualität von Software durch Ausbildung und kontinuierliche Schulung von Entwicklern zu erhöhen. Die Bandbreite der Themen umfasst: