I have recently come across two terms: Software Engineering and Craftsmanship. I would like to know what the difference is between Software Engineering and developing software in a Craftsmanship style. Intuitively I understand that these two approaches are not exactly the same, but I am not sure whether they are completely different.

closed as primarily opinion-based by Scant Roger, Doc Brown, gnat, Bart van Ingen Schenau, gbjbaanb Jan 7 '16 at 11:23

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.


They are buzzwords that mean different things to different people. I expect that they mean little in practice, and will vary greatly based on who you talk to.

That said, as a compare and contrast exercise:

  • Software Engineering pushes for code quality by having specifications, reusing well-known standardized components, and having processes to guide developers' work.
  • Software Craftsmanship pushes for code quality by trusting the pride of the programmer making the software, using more custom specialized components for the task at hand, and having close customer feedback to guide developers' work.
  • 2
    I would recommend to add strong warning so no naive reader will believe your "definitions" are to be taken seriously. – Doc Brown Jan 7 '16 at 6:48

Not the answer you're looking for? Browse other questions tagged or ask your own question.