ben.powell@CLA.CO.UK wrote in message news:<200408060831.i768VsH01080@listserv.cc.uga.edu>...
> Unforunately the craftsman is often the first casualty of increased volume
> of production, in this case of programming. Roll it out to not thousands
> but millions of programmers and some mechanisation is required. Here you
> have to acknowledge the role of the software: each new function and
> procedure effectively cuts out a bit of the need for the craftsman, so that
> there is less need to constantly reinvent the wheel. I'm being devil's
> advocate to an extent but you know what I mean...
I don't think I do kno what you mean. New functions and procedures do
not themselves write code. They are merely tools. A person uses those
tools to write code and the quality of what they write depends on how
well they know those tools and their knowledge how and when to (and
when not to) use them. If you are equating craftsmanship with
functionality then you are confirming what I feel is the main thing
lacking in the SAS programming field, which is craftmanship. I think
that many a hiring manager thinks like you do, so you are not alone.
And it is nobody's fault either. To give an example, a "piano player"
to me is not just somebody who knows how to push down keys and pedals.
And if the piano has an extra middle pedal then I would not consider
it a partial replacement of craftmanship. A "piano player", to me, is
somebody who can create pleasing tunes and has a repertoire of tunes
and can perhaps even extemporise music. A craftsman that *uses* a
piano to create their art.
To me, a programmer is a "good" programmer only if they are a
craftsman. And to be a craftsman in the area of programming I would
expect to see an elegance of style shining through their work. And
that work will entail not only the code they write but would also
cover their documentation standards and methods such as writing code
in a re-usable way.
In the good old days when I was a Cobol programmer (nearly 20 years
ago) this was widely recognised and your boss would be a craftsman to
some degree and they would try to tutor you to pass on this idea of
writing "good" code and developing good systems (if they were creating
systems). I don't think it has existed much in the field of SAS
programming. When I entered SAS programming I was already a highly
competent Cobol programmer with a strong sense of this code
craftmenship and I carried it on in SAS. I was lucky to have a very
experienced ex-member of the SAS Institute as a macro writer in the
team and he seemed to have the same ideas of craftmanship in writing
macros. So I tried, and succeeded in absorbing all I could from him
about writing macros before I went on to develop my own style. And
this relentless push to develop my "art" as a craftsman has got me
somewhere. To elaborate, I have just finished writing a Clinical
Reporting system that, IMO, is very elegant and powerful and yet
extremely simple. It is an old-fashioned text-only output reporting
system but it is switchable with ease to create output in any company
style with different paper sizes and margins. The other programmers
easily fell into using the new system, such was its simplicity, and
because it is so simple the documentation and time required to train
into it is minimal. I wrote *all* the macros and *all* the shell
scripts to do this on my own. I have created something of great power
in its simplicity (and even beauty, in my humble opinion, but then I
*am* a craftsman so I think like that) and done it all by myself. Is
there any other SAS programmer alive who could do this all by
themselves and do an extremely good job? I doubt it. But I could be
wrong and there could be others who could do the same........
.....but I bet those people would be craftsmen too.