What do you guys think of Software Craftsmanship?
Hi, I have been reading a bit recently about things like Software Craftsmanship, Clean Code, and the SOLID principles etc. What do the redditors think about such things?
Sometimes I get the feeling that many redditors, like those on r/programming mock or disagree with such ideas. Perhaps it is just two different cultures, and both are valid, or perhaps things like Software Craftsmanship is targeted at a different type of developer than we find here on reddit.
It seems like there are a lot of "movements" and communities out there, I am sure they are all valid in their own way, but probably not all at once, for all developers at all stages of their careers.
Are there any thoughts out there on which of these many ideas are relevant for developers at different skill levels etc? Is there any roadmap or anything?
Posted Mar 14, 2011, 10:27 AM UTC
I'd never heard of Software Craftmanship
Judging by that I'd say it's a fuzzy minded branding exercise that extends the woolly headed stuff put forward earlier.
Let's be clear, learning from mentors and exchanging code with peers are both incredibly important parts of learning programming well; while neither is strictly essential as counter examples abound, having a rich environment of peers and mentors that you communicate well with gives a hell of a leg up to your learning curve.
Here's a tip though, none of this is breaking away from either mathematics or engineering which have long been peer sponsored journeyman like guilds.
Most of the ideas put forward by most of the communities are excellent ideas, in an appropriate context, they all have merit, but at the end of the day it'll only be some of these ideas that'll actually work for you.
Keep your interfaces as simple as they can be and test edge cases as you go in a manner that allows the tests to be repeated later.
IMO all of these methodologies are. When marketing and the "burocrat mind" meets engineering, you get that sort of thing.
In the 90's I spent a lot of money on programming methodologies. All of them take the same few principles, call it something else and then sell millions of books. Don't repeat yourself, build often, commit often, test units, automate what's possible, don't curse your colleagues....take all of that, call it something else, profit.