Le Software craftsmanship (ou l'"artisanat du logiciel") est une approche de développement de logiciels qui met l'accent sur les compétences de codage des développeurs. Il se propose comme une réponse aux maux récurrents de l'industrie du logiciel et à la tendance à l'externalisation. Il inclut la priorisation des préoccupations financières vis-à-vis de la responsabilité du développeur.
L'extreme programming repose sur cinq valeurs fondamentales.
Communication
C'est le moyen fondamental pour éviter les problèmes. Les pratiques que préconise l'XP imposent une communication intense. Les tests, la programmation en binôme et le jeu du planning obligent les développeurs, les décideurs et les clients à communiquer. Si un manque apparaît malgré tout, un coach se charge de l'identifier et de remettre ces personnes en contact.