The teaser “Design” is an overloaded term that causes confusion in software development. It has at least three meanings: design as result (as in “the design of the application is easy to change”), design as process (as in “I designed it using Test driven development”) and design as aesthetics (as in “I love this design”). A clear vocabulary is the...
Software craftsmanship is the movement that saved me from becoming a developer angry at managers, customers and colleagues. It gave me a direction and it helped me learn much more than I ever expected.
Software craftsmanship is a complex phenomenon, mixing social learning (communities), technical practices, the idea of continuous learning and improvement as a professional (either alone or with the help of others) and the attitude towards managers, customers and colleagues. It’s under development, and will probably continue to be for many years.
I was part of the movement very early and I have some strong opinions about it that I try to document here.