4 ms·
I don't see much point in the argument over whether or not programming is (or is not) a craft. In my book, you can imagine yourself as whatever you want as long
by angdis 16y ago
I don't see much point in the argument over whether or not programming is (or is not) a craft. In my book, you can imagine yourself as whatever you want as long as it gets the job done-- "engineer", "artist", "craftsman", "fry-cook", "architect", whatever works, whatever you what call it.
If anything, programming today is beset with workers who just don't care about what they're doing. Perhaps a little bit of the care and attention that a "craftsman" ethos brings would be a good thing. It certainly doesn't hurt.
- tjr 16y agoI do not recall seeing any field besides programming that tries so hard to make analogies of itself to other fields. It's an art! It's a science! It's engineering! It's craftsmanship! It's architecture! It's culinary arts where FOR loops are part of an NP-complete breakfast! Not to say that such analogies aren't fair or sensible, but I feel like we try much too hard to defend what we do by putting in terms that other people (or maybe even we ourselves) can understand. I reckon part of this stems from the fact that we aren't even agreed on what to call ourselves: I'm a software engineer! I'm a computer scientist! I'm a programmer! I'm a developer! I'm a chef of the digital cuisine!... But then, maybe it's not even a bad thing. The fact that we have such mixed feelings about what we do is all about suggests that people with different backgrounds can come to our field, bringing their own perspectives to the table. People who are well-versed in art can come to the field and develop software from the perspective of an artist. People who understand engineering concepts can develop software from the perspective of an engineer. Perhaps there's a spectrum of different styles of software projects, each of which can make use of different perspectives and different styles of development. I've worked on avionics software; this is not very creative development, but it's very strict, and, in my opinion, perhaps some of the most true software "engineering". I've worked on web applications, where you can push out a quick version 1 and then iterate even while the user is using it. A totally different development style. I've worked on mobile applications where I can't just push a new version, but it's also nowhere near as serious as avionics; this might fall somewhere in between avionics development and web development. Maybe we need software engineers. And maybe we need programmers. And maybe we need computer scientists. And maybe we need software architects. And maybe we need software artists. And maybe these all describe someone who builds software, but with a different style and approach. Or maybe it's time for breakfast; I wish I had a box of FOR loops.