Categories
Articles Uncategorized

Software Craftsmanship – What do you need to know?

Software craftsmanship is an approach to software development that emphasizes the coding skills of the software developers themselves. It is a response by software developers to the perceived ills of the mainstream software industry, including the prioritization of financial concerns over developer accountability.

In this article we will take a look at different perspectives about craftsmanship in general and some specific notions of the same in software and programming from various authors and programmers.

The Craftsmen’s Creed

In the Pragmatic ProgrammerAndy Hunt and Dave Thomas discusses about craftsmanship with the likes of construction workers and civil engineers on how they treat their craft by envisioning it as a divine endeavor of building cathedrals.

The construction of software should be an engineering discipline. However, this doesn’t preclude individual craftsmanship. Think about the large cathedrals built in Europe during the Middle Ages. Each took thousands of person-years of effort, spread over many decades. Lessons learned were passed down to the next set of builders, who advanced the state of structural engineering with their accomplishments. But the carpenters, stonecutters, carvers, and glass workers were all craftspeople, interpreting the engineering requirements to produce a whole that transcended the purely mechanical side of the construction. It was their belief in their individual contributions that sustained the projects:

We who cut mere stones must always be envisioning cathedrals.

—Quarry worker’s creed

Within the overall structure of a project there is always room for individuality and craftsmanship. This is particularly true given the current state of software engineering. One hundred years from now, our engineering may seem as archaic as the techniques used by medieval cathedral builders seem to today’s civil engineers, while our craftsmanship will still be honored.

Gaining Mastery

In Software Craftsmanship, Pete McBreen puts emphasis on attaining mastery over one’s craft.

Craftsmanship is about gaining mastery. Yes, a person can learn to perform a subset of the tasks in a relatively short time, but developing complete mastery does not happen quickly.

The road to mastery is not lined up with daisies and spanned by a rainbow. Mastery hurts. In DriveDaniel Pink discusses about the unique characteristics about Mastery like mindset, pain and asymptote.

A related idea is that one practices a craft and that as soon a person stops practicing, her mastery fades. Hence beginners are apprenticed to a craft, because people cannot afford to take time away from their craft to teach others.

In traditional crafts, apprenticeship is situated learning, where the apprentice takes over the easy, mundane tasks and then absorbs through observation and supervised practice the tacit knowledge necessary to perform the more esoteric, arcane tasks. Each apprentice trains a successor so that he can move on to more advanced tasks. In this manner, the master craftsman has to be concerned only with teaching the most advanced skills and can focus attention on productive work.

The Essential Elements of Craftsmanship

In Clean CodeRobert C Martin enlists the essential elements that makes up the craftsmanship. There are two parts to learning craftsmanship: knowledge and work.

You must gain the knowledge of principles, patterns, practices, and heuristics that a craftsman knows, and you must also grind that knowledge into your fingers, eyes, and gut by working hard and practicing.

The Craftsmanship Mindset

A true craftsman need to have a proper growth mindset not the fixed mindset, as Carol Dweckdiscusses about the two types of mindsets more prevalent among people, in her seminal book named Mindset.

In the Clean Coder, Robert C Martin takes a different approach by advising us to take the right mindset to craftsmanship.

The word craftsman brings to mind skill and quality. It evokes experience and competence. A craftsman is someone who works quickly, but without rushing, who provides reasonable estimates and meets commitments. A craftsman knows when to say no, but tries hard to say yes. A craftsman is a professional.

Craftsmanship is the mindset held by craftsmen. Craftsmanship is a meme that contains values, disciplines, techniques, attitudes, and answers. But how do craftsmen adopt this meme? How do they attain this mindset? The craftsmanship meme is handed from one person to another. It is taught by elders to the young. It is exchanged between peers. It is observed and relearned, as elders observe the young. Craftsmanship is a contagion, a kind of mental virus. You catch it by observing others and allowing the meme to take hold.

CONVINCING PEOPLE

You can’t convince people to be craftsmen. You can’t convince them to accept the craftsmanship meme. Arguments are ineffective. Data is inconsequential. Case studies mean nothing. The acceptance of a meme is not so much a rational decision as an emotional one. This is a very human thing. So how do you get people to adopt the craftsmanship meme? Remember that a meme is contagious, but only if it can be observed. So you make the meme observable. You act as a role model. You become a craftsman first, and let your craftsmanship show. Then just let the meme do the rest of the work.

The 3 dimensions

In the book, The CraftsmanRichard Sennett explores the dimensions of skill, commitment, and judgment in a particular way. It focuses on the intimate connection between hand and head. Every good craftsman conducts a dialogue between concrete practices and thinking; this dialogue evolves into sustaining habits, and these habits establish a rhythm between problem solving and problem finding.

References:

Image Credits

Categories
Inspirations

Fantastic Avengers Mini Papercraft by Gus Santome

Gustavo Santome is from Buenos Aires, Argentina who is studying graphic design and just working on illustrations. He loves the integration of arts like animation, illustration, design, sculpture and likes to work on videogames.

You can see more mini paper crafts on his blog : mini papercraft.blogspot.com

Connect with Gus Santome

Portfolio

DeviantArt

Avengers by Gus Santome

Avengers by Gus Santome

Avengers by Gus Santome

Avengers by Gus Santome

Hulk Smash

Hulk Smash

Black Widow

Black Widow

Captain America

Captain America

Captain America

Captain America

Hawk eye

Hawk eye

Hulk

Hulk

Thor

Thor

Loki

Loki

Avengers by Gus Santome

Avengers by Gus Santome

If you like this post or want to share your views kindly leave a comment here showing your support or feedbacks, also please appreciate the Author and encourage him by visiting the Author’s homepage, add his work to your favourites, become a fan or follow him, this will be very much esteemed to the value you add to the community. But please do not copy, edit, manipulate or redistribute in any format, use for commercial purposes without the written permission from the author. Respect the art and the artist.
Categories
Artists Inspirations

Amazing Animal Origamis by FoldedWilderness

Origami is the traditional Japanese art of paper folding, which started in the 17th century AD at the latest and was popularized outside of Japan in the mid-1900s. It has since then evolved into a modern art form. The goal of this art is to transform a flat sheet of material into a finished sculpture through folding and sculpting techniques.

A Donkey's Journey

A Donkey’s Journey

Jack Russel Terrier

Jack Russel Terrier

Sitting Fox

Sitting Fox

Hunting Owl

Hunting Owl

Candy Pink Unicorn

Candy Pink Unicorn

King of the forest

King of the forest

Nightmare

Nightmare

Happy Singing Fox

Happy Singing Fox

Adventure Duck

Adventure Duck

Howling Coyote

Howling Coyote

Werewolf

Werewolf

If you like this post or want to share your views kindly leave a comment here showing your support or feedbacks, also please appreciate the Author and encourage him by visiting the Author’s homepage, add his work to your favourites, become a fan or follow him, this will be very much esteemed to the value you add to the community. But please do not copy, edit, manipulate or redistribute in any format, use for commercial purposes without the written permission from the author. Respect the art and the artist.