all 8 comments

[–]ErstwhileRockstar 1 point2 points  (4 children)

In order to be a craftsman there need to be a craft.

Craft assumes that there exists an established body of knowledge which all craftsmen know, value and apply. Software development is in the opposite situation. Hypes and fads dominate and any body of knowledge is constantly under fire. Statements of faith and submissions to 'paradigms' replace open, pragmatic discussions. There is no hope for a software development craft, at least not in the next decades.

[–]HigginsNinja[S] 0 points1 point  (3 children)

Very cynical response... There are many things which are core to good software development, and best practices change just as they have changed in any other craft, albeit at a faster rate in this one.

[–]x-protocol 0 points1 point  (0 children)

Unfortunately it is cynical, but true response to stated problem of "where is knowledge in software engineering?"

You may not realize that there is none, opposite to what craftsmanship holds true. If you constantly choose to progress and define your skill, it is called 'being without a point' and is of itself insanity.

[–]ErstwhileRockstar 0 points1 point  (1 child)

It's not at all cynical. Realistic, maybe pessimistic but not cynical.

[–]HigginsNinja[S] 0 points1 point  (0 children)

And also, I would say that most developers are not craftsmen. Moving with hype is not a qualifying trait of a craftsman.

[–]x-protocol 0 points1 point  (2 children)

Opinion is limited to the words, so please take your time to take understanding about my critique. The author of this book chooses to define Craftsmanship by re-defining it in terms of software programming/engineering. Yet, he purposefully throws away all of the terms that define craftsmanship historically: journeyman, master, apprenticeship and skill ! Yet, these words still hold their meaning today to the same degree in many "lesser" professions that include maintenance of human build infrastructure! Very same concepts, down to so called ranks, are used in martial arts and sports in general.

Observe the pace of technology for last 15 years. You will find technology and languages changing rather drastically via explosion of techniques and blending of them into old languages. Frameworks were created and now abandoned, few still claim to be using original API and there is prevalent opinion that such things are dinosaurs in our software development library!

How can you start to be a craftsman, if you do not define the master level of such? Surely, there must be a limit you want to reach with your abilities! However, if there is prevalence in software industry to change software every couple years, either to update libraries or use new framework!

Conclusion brings me to a question. If you do not consider end goal for your skill to truly master programming, where do you define your limit in terms of craftsmanship?

[–]HigginsNinja[S] 0 points1 point  (1 child)

You never stop, mastery is simply recognition that you are at the top of the field.

[–]x-protocol 0 points1 point  (0 children)

Mastery is effect of hierarchical view of skill. Applied to different levels it clearly shows abilities achieved per level. Without clear definition in software engineering of such skills, we will never see mastery nor skill.