I see software development as a creative blend of art, science, and engineering, whose purpose is to deliver effective systems. The best way I have been able to describe this idea is by talking about software craftsmanship. The software craftsmanship metaphor allows developers to acknowledge all aspects of their craft – the artistic and aesthetic aspects as well as the measurable and mechanical aspects. - Peter McBreen
Software Craftsmanship is a metaphor. The goal being to emphasize personal skill, mastery of tools and techniques, along with productive relationships with your peers and clients.
Writing code is similar to painting a picture. A programmer who writes clean code is an artist who can guide a blank screen through a series of transformations until it is an elegantly coded system.
Easy to recognize a good painting
Hard to paint a good picture
Programmers are authors – responsible for communicating well with their readers.
You write for readers need to comprehend your motivation and intentions
The ratio spent reading vs. writing code is usually at least 10:1
The communal growth of Software Craftsmanship is analogous to the Scientific Method. There have been many developers before you
If I have seen further, it is by standing on the shoulders of giants. - Isaac Newton
The best practices, deign patterns, and design principles we are going to go over in this course were created by giants. leveraging them will allow you to produce greater value than relearning everything through trial and error.
Tackle development tasks with a structured approach.