News for hackers. Stuff that matters.
Re:The path of software development craftsmanship by riskable on Sunday October 09, 2016 @05:10PM (#12673478)
Knowing algorithms != Development craftsmanship

I saw the title and thought the article would be about how to write code that is easy for anyone to maintain. Code that scales well horizontally and across multiple processors. Code that is documented well and tests itself to let you know when a change breaks something.

I was expecting notes about architecture and how to ensure the security of your software. To always keep your end users in mind and to make everything easier for them--even if it means more work for you.

I was expecting to see examples of such craftsmanship. Best practices and praise for working tools that seem to stand the test of time.

Instead I found an article about Computer Science fundamentals and math.

Computer science isn't about craftsmanship. If it were the courses would involve code reviews and students would be marked down for lacking tests, not using source control, insufficient comments & documentation, and using conventions that don't fit with the language (e.g. camelCase variables instead_of_underscores in Python).

Re:The path of software development craftsmanship by white-flame on Monday October 10, 2016 @12:14AM (#12675005)
To add, craftsmanship is synonymous with experience (gleaned or direct). It means that when you start a project, you know exactly what sort of problems will come up (both for you the craftsman and the customer's use of it), and know what you need to do up front to attempt to mitigate them.

In any craft, watching a craftsman work displays a large amount of vision and foresight right from the very start, knowing what parts to do first, and what rough sketches need to be completed up front. All of these decisions feed both into making the craftsman's job easier through the process, and are tuned around envisioning what the end user wants from the product and might try to do with it even if it's not part of the explicit requirements.

It looks like black magic to the uninitiated, with a bunch of random seemingly non-essential stuff happening, with all of a sudden a great product being birthed at the end.

There's no good way to bring all that experiential knowledge into a simple curriculum. Apprenticeship is the primary way to accelerate bring somebody up to a level of craftsman, after the basic fundamentals are known. This is a primary failing of modern companies; they don't allow for such internal paths of progression. Everybody's expected to be an expert craftsman straight out of university. (cue my rant about university & academia NOT being about job training)

Re:The path of software development craftsmanship by xingmu33 on Sunday October 09, 2016 @05:19PM (#12673534)
From my understanding, craftsman ship is not about algorithms at all, at least not the focus.
Re:The path of software development craftsmanship by PhasmaFelis on Sunday October 09, 2016 @06:51PM (#12674017)
> Computer science isn't about craftsmanship.

If it were, there would be a lot less frustrated hiring directors and despairing grads discovering that four years of comp sci doesn't qualify you for anything except teaching comp sci.

I wish to God my courses had included any of that stuff you mentioned.

Re:The path of software development craftsmanship by gravypod on Tuesday October 11, 2016 @02:36PM (#12687262)
I wish more people felt this way. Please someone, somewhere, change the world so this can be our reality.
Re:The path of software development craftsmanship by santaclaus on Sunday October 09, 2016 @06:34PM (#12673938)
I'd argue that craftsmanship is about delivering a well crafted end product to the user. The user (hell, even the interpreter/compiler) doesn't give a damn what convention for variable names you use.
Re:The path of software development craftsmanship by user5994461 on Sunday October 09, 2016 @06:37PM (#12673955)
I think that what you refer to is coined under "user experience".
Re:The path of software development craftsmanship by humanrebar on Sunday October 09, 2016 @07:58PM (#12674238)
Craftsmanship is about delivering a well crafted end product to the customer. More often than not, that's some sort of boss or product manager. And more often than not, they don't understand which design has a better total cost of ownership. But a good software craftsman does.
Re:The path of software development craftsmanship by pif on Monday October 10, 2016 @04:48AM (#12675890)
You are talking about hardware development. Software development is enormously more about maintaining than shipping.
Re:The path of software development craftsmanship by that70sshow on Monday October 10, 2016 @03:15AM (#12675578)
Cant agree more !! Thumbs up !!