[LRUG] Software Craftsmanship
Eleanor McHugh
eleanor at games-with-brains.com
Tue May 12 09:17:12 PDT 2009
On 12 May 2009, at 07:16, James Adam wrote:
> While this is a lovely conversation, I'm not sure what the point is.
>
> Firstly, who has disagreed with the notion of "Software
> Craftsmanship", and what are their actual objections?
>
> Secondly, why is it even meaningful to discuss whether or not it
> exists? Anything can be a craft, or a mechanical chore. Painting can
> be the result of a tortured artist pouring their heart out onto a
> canvas, or paint-by-numbers. The results may not be easy to discern
> from each other, and equally effective both as functional artifacts
> and acts of expression.
>
> Everything is a craft, and everything is work. Whether or not you
> consider yourself to be a craftsperson, an artist, an engineer, a
> scientist, or a romantic is largely meaningless to anyone except
> yourself.
>
> I'm not sure to whom the existence of "craftsmanship" in programming
> is relevant.
Primarily I guess to those who feel it's important to their own sense
of what programming is and why they do it. I'm happy to admit that the
reasons I code have very little to do with commercial needs and are
almost entirely related to addiction/obsession - there's just no other
way to explain an activity that often consumes every waking hour
regardless of whether or not I'm being paid.
> It's unlikely to be the consumer of our work, because they only
> really care that it does the job it should; let's never forget that
> the majority of us are in the business of building tools that
> perform specific, reasonably-clearly-defined functions, which is
> unlike most art, whose purpose is rarely even defined.
You make a valid point and I'm not sure it really matters if a
creator's internal motivation is recognised by the users of their
creation. However I'd argue that the majority of software development
actually has very little to do with building clearly identified tools,
hence why requirements change and creep have bedevilled the industry
since its earliest inception.
How we mitigate these problems on our projects necessarily is
influenced by how we see ourselves and the world around us, which
regardless of our outlook will always be at best a distortion of
objective reality and in some cases a complete fiction. An engineer
sees a problem and they have one approach to solving it, an artist
another, a scientist yet another. Perhaps ideally we'd all be capable
of all modes of thought, but if we're not then at least there's a way
of drawing value from the ones we are capable of.
> IMHO, it's meaningless to talk about software craftsmanship as if
> there's some struggle to attribute that label. I see no army of
> thought-police looming to smash our beautiful abstractions and
> elegant algorithms, and nor do I see the populous clamoring to
> admire our refactorings and marvel at the poignancy of a particular
> subroutine.
>
> There is beauty in programming, and that's hard to see for some
> people, but there is beauty in modern art that others struggle to
> fathom; art in the building of bridges; elegance in the mechanism of
> a drug; ... you get the idea. It's not like things are either
> engineering or a craft, but never both. I don't understand why some
> people feel that their creativity is under threat. Please elucidate
> me!
Feeling is so subjective I wouldn't even dare to speculate for anyone
else. However I have worked in environments where the insistence on
engineering discipline as the only way to proceed negatively impacted
on the level of contentment experienced by the developers working
under that regime so I can understand those who fear their creativity
isn't as valued as they might like. On the other hand one of the cool
things about Ruby is often engineering and other sensibilities seem to
work together more often than they're in conflict.
Ellie
Eleanor McHugh
Games With Brains
http://slides.games-with-brains.net
----
raise ArgumentError unless @reality.responds_to? :reason
More information about the Chat
mailing list