analogy to sculpture/masonry/painting/...?

0 views
Skip to first unread message

Steve Wedig

unread,
Nov 10, 2009, 1:59:47 AM11/10/09
to software_craftsmanship
Hi everyone,

I recently rediscovered the software craftsmanship website, and the
concept really resonates with how I feel about writing software and
programming language design.

I'd like to start using this vocabulary, so I'm wondering, is their a
consensus about the name of our craft? (an analogy to sculpture,
masonry, painting, ...)

An enumeration of possibilities I can think of are:
the craft of software development
the craft of software engineering
the craft of software creation
the craft of software craftsmanship?
the craft of software?

---------------------------------------
---------------------------------------

Personally, I'm leaning towards "the craft of software engineering".
It seems we do both crafting and engineering:
- crafting / writing (refactoring, iterative creative process of
discovery)
- engineering (managing complexity, ensuring quality, measuring
performance)
- parts of math (alogrithm analysis, discrete math, logic, set theory)

---------------------------------------
some references...
---------------------------------------

an earlier thread about craft vs. engineering
http://groups.google.com/group/software_craftsmanship/browse_thread/thread/e28d6484aa82a5fc/c4fc3a390d503fc6

steve mcconnell's arugments for the term software engineer
http://blogs.construx.com/blogs/stevemcc/archive/2007/06/23/quot-engineering-quot-in-software.aspx

and here's more debate about the software engineer term:
http://en.wikipedia.org/wiki/Debates_within_software_engineering

p.s. I don't think we should consider bureaucracy in this decision:
Traditional engineers (especially civil engineers and the NSPE) claim
that they have special rights over the term engineering, and for
anyone else to use it requires their approval. In the mid-1990s, the
NSPE sued to prevent anyone from using the job title software
engineering. The NSPE won their lawsuit in 48 states[citation needed].
However, SE practitioners, educators, and researchers ignored the
lawsuits and called themselves software engineers anyway. The U.S.
Bureau of Labor Statistics uses the term software engineer, too. The
term engineering is much older than any regulatory body, so many
believe that traditional engineers have few rights to control the
term. As things stand at 2007, however, even the NSPE appears to have
softened its stance towards software engineering and following the
heels of several overseas precedents, is investigating a possibility
of licensing software engineers in consultation with IEEE, NCEES and
other groups "for the protection of the public health safety and
welfare" [21].
from http://en.wikipedia.org/wiki/Debates_within_software_engineering

Adewale Oshineye

unread,
Nov 10, 2009, 10:55:10 AM11/10/09
to software_cr...@googlegroups.com
Hi Steve,
Welcome to the mailing list.
I like to think that we're a little less focussed on terminology or
vocabulary around here. Instead we're more focussed on issues around
practicing, skills and values.

As for the name...it's software craftsmanship. That was the name of
McBreen's book and it's the name of the mailing list.
So now that you have the 'right' terminology what else are you going
to do to hone your craft?

2009/11/10 Steve Wedig <steve...@gmail.com>:

Curtis Cooley

unread,
Nov 10, 2009, 11:45:03 AM11/10/09
to software_cr...@googlegroups.com
On Mon, Nov 9, 2009 at 10:59 PM, Steve Wedig <steve...@gmail.com> wrote:
> As things stand at 2007, however, even the NSPE appears to have
> softened its stance towards software engineering and following the
> heels of several overseas precedents, is investigating a possibility
> of licensing software engineers in consultation with IEEE, NCEES and
> other groups "for the protection of the public health safety and
> welfare" [21].
> from http://en.wikipedia.org/wiki/Debates_within_software_engineering
>
Because someone can memorize the answers to a test, the public is
sooooooooo much safer. Where do I get my license?

--
Curtis Cooley
curtis...@gmail.com
home:http://curtiscooley.com
blog:http://ponderingobjectorienteddesign.blogspot.com
===============
Leadership is a potent combination of strategy and character. But if
you must be without one, be without the strategy.
-- H. Norman Schwarzkopf

Steve Wedig

unread,
Nov 10, 2009, 2:15:06 PM11/10/09
to software_craftsmanship

I doubt there's a 'right' terminology, but having some consensus on
how to communicate ideas seems useful. I guess that's why its useful
to name patterns.

So with that in mind, this group's consensus name of our craft is
"software craftsmanship"? Similar to if sculptors were described as
practicing the craft of "stone craftsmanship"?

Regarding honing my craft, I'm planning to continue what I have been
doing before I knew about the name/community: reading a lot to get
ideas (including this list), and experimenting to find out what works
for me in practice.

Thanks,
- Steve

On Nov 10, 7:55 am, Adewale Oshineye <adew...@gmail.com> wrote:
> Hi Steve,
> Welcome to the mailing list.
> I like to think that we're a little less focussed on terminology or
> vocabulary around here. Instead we're more focussed on issues around
> practicing, skills and values.
>
> As for the name...it's software craftsmanship. That was the name of
> McBreen's book and it's the name of the mailing list.
> So now that you have the 'right' terminology what else are you going
> to do to hone your craft?
>
> 2009/11/10 Steve Wedig <stevewe...@gmail.com>:
> >http://groups.google.com/group/software_craftsmanship/browse_thread/t...
>
> > steve mcconnell's arugments for the term software engineer
> >http://blogs.construx.com/blogs/stevemcc/archive/2007/06/23/quot-engi...

Adewale Oshineye

unread,
Nov 10, 2009, 9:30:25 PM11/10/09
to software_cr...@googlegroups.com
2009/11/10 Steve Wedig <steve...@gmail.com>:

>
>
> I doubt there's a 'right' terminology, but having some consensus on
> how to communicate ideas seems useful. I guess that's why its useful
> to name patterns.
>
> So with that in mind, this group's consensus name of our craft is
> "software craftsmanship"? Similar to if sculptors were described as
> practicing the craft of "stone craftsmanship"?
>
> Regarding honing my craft, I'm planning to continue what I have been
> doing before I knew about the name/community: reading a lot to get
> ideas (including this list), and experimenting to find out what works
> for me in practice.
The above is admirable but I wonder if that's enough? Don't we have
more to offer than a name and the prospect of a convivial mailing
list?

This mailing list has been going on in this form for just over 13
months. I like to think that we've learned some things that we should
be able to share with someone like Steve when he signs up and says he
wants to hone his craft we can point him in useful directions. If we
were to go back in time to just after Jason Gorman had written this
post: http://parlezuml.com/blog/?postid=720 what new
knowledge/ideas/techniques would we have to share with him?

kelly french

unread,
Nov 10, 2009, 9:58:32 PM11/10/09
to software_cr...@googlegroups.com
I've shied away from using the term 'Engineer' mainly because engineering describes those fields where the activity or output can be precisely measured or controlled. 

Making paint needs to be engineered so it consistently comes out with the same color, viscosity, texture, etc. each and every batch.  If the paint is meant for the automobile assembly line, it needs to be applied the same way every time.  If the paint is meant for an artist's studio, it won't ever be used the same way twice.  The artist wants to know that his tube of Azure #7 he bought last year will be the same color as the tube bought this year.  He'll never have an exact copy with which to compare the two tubes. Besides all that the artist usually mixes colors to fit the piece at hand.

Compilers might be engineered, applications are created.  That means our field is a hybrid of engineering and creativity.  It's no wonder we've had such a hard time with what to call ourselves.

Ryan Gerry

unread,
Nov 10, 2009, 10:38:48 PM11/10/09
to software_cr...@googlegroups.com
The excellent book "Naked Economics" talks a lot about how professional organizations have a string incentive in limiting the size of their labor market.  The basic idea is that if there are less professionals available in a particular profession then demand will exceed supply and labor costs will increase.  I see the debate over who can be called an "engineer" as a classic example of this economic principle.  Certifying who can be called a software engineer is more about making the "official" software engineers an exclusive club that can charge more for their services than actually providing value to their clients.

Ryan

Dave Hoover

unread,
Nov 11, 2009, 5:55:15 AM11/11/09
to software_cr...@googlegroups.com
On Tue, Nov 10, 2009 at 8:30 PM, Adewale Oshineye <ade...@gmail.com> wrote:
>
> This mailing list has been going on in this form for just over 13
> months. I like to think that we've learned some things that we should
> be able to share with someone like Steve when he signs up and says he
> wants to hone his craft we can point him in useful directions. If we
> were to go back in time to just after Jason Gorman had written this
> post: http://parlezuml.com/blog/?postid=720 what new
> knowledge/ideas/techniques would we have to share with him?

I don't have any specific knowledge or ideas to share with Steve,
because I don't know enough about what he's up to. I would start by
asking Steve to tell us about his experiments and his practice. Then
I would ask about how he has been learning the craft and how he has
been helping others learn the craft.

Steve Wedig

unread,
Nov 11, 2009, 4:03:17 PM11/11/09
to software_craftsmanship
Thanks for the warm welcome.

To answer Dave's inquiry, here's a bit about my background.

---------------------------------------
my background
---------------------------------------

I did 4 years of CS grad school at UCLA, shifting from AI to data
modeling to programming language design. I was a TA for 3 years, which
I suppose is like working with very new apprentices. I taught them
programming, databases, algorithms, AI, logic design and assembly.

I value my CS background, but I'm a generalist, and my passion lies in
applying that knowledge as a software craftsman. So, I took a leave of
absence from school to become the 2nd developer at a web startup,
which is where I've been for the last 2.5 years.

On my team, I'm by far the most interested in improving methodologies.
We do a fair amount of peer programming. I'm working to get better
test coverage for our code base, and I recently got back to TDD after
a 2 year hiatus. Figuring out how to remove the DB dependency during
unit tests was a critical step in this process.

Some day I would love to get our team to the holy grail of continuous
deployment:
http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/

---------------------------------------
my craft
---------------------------------------

I would describe myself as a journeyman at the moment. I'm working to
become a master software developer as rapidly as possible. (I'm doing
the same in the area of software entrepreneurship.)

Unfortunately, my path thus far has left me without ever having a
mentor, which has been a concern of mine for a while. My next endeavor
will be to start my own company, so perhaps I'll never have one.
Fortunately, there are enough online resources for self learning.
However I suspect this is a much slower process than working directly
with a master.

I'm very motivated to hone my craft, because I'm in year 3 or 4 of
what I expect to be a 5-10 year project. I want to create a
programming language that does a better job of encoding the practical
knowledge of communities such as this one, as well as lessons learned
in the startup community.


On Nov 11, 2:55 am, Dave Hoover <dave.hoo...@gmail.com> wrote:
> On Tue, Nov 10, 2009 at 8:30 PM, Adewale Oshineye <adew...@gmail.com> wrote:
>
> > This mailing list has been going on in this form for just over 13
> > months. I like to think that we've learned some things that we should
> > be able to share with someone like Steve when he signs up and says he
> > wants to hone his craft we can point him in useful directions. If we
> > were to go back in time to just after Jason Gorman had written this
> > post:http://parlezuml.com/blog/?postid=720what new
Reply all
Reply to author
Forward
0 new messages