Schedule and Events



March 26-29, 2012, Software Test Professionals Conference, New Orleans
July, 14-15, 2012 - Test Coach Camp, San Jose, California
July, 16-18, 2012 - Conference for the Association for Software Testing (CAST 2012), San Jose, California
August 2012+ - At Liberty; available. Contact me by email: Matt.Heusser@gmail.com

Monday, August 18, 2008

Craft In Software Development

My latest post of the Test-Driven Development Yahoo Group:

--- In testdrivendevelopment@yahoogroups.com, "Casey Charlton" wrote:

However, I assert the problem is that development is largely a creative skill, not a technical one. And creative skills are nearly impossible to quantify - you know when you like a piece of artwork, but you cannot say why in a way that means anything to anyone else. I cannot prove I am worth my daily rate, other than by people trusting me.

I think I get what you are saying here, and I agree.

However, my undergraduate work was in mathematics, which is similar to CS in that it is extremely abstract, involves complex variables, and, to the initiated, looks like complete gibberish. :-)

Still, in math, first and foremost, we were taught Occam's Razor - that the simples solution is probably the correct one. We were taught a sense of aethetics - to the point that you could look at a proof and say "that just looks wrong" - and, nine times out of ten, it would be wrong.

Aesthetics is strong guidance in mathematics; not only could you find the error, you are likely to be able to tell exactly where the proof went off the rails by looking for when the ugliness began.

In Computer Science, we lack similar concepts. In fact, when I was in CS School, the big idea was the grand, over-arching framework that was going to solve all our problems(*).

So, while I agree with you in that it may not be possible to quantify goodness of software, I believe it is possible to condition, or to teach behavior that leads toward 'better' code. On place to start is with teaching aethetics in the undergraduate curriculum, another is to foster a sense of craftsmanship in software development.

This fall, I start teaching computer science part-time at Calvin College, and I am considering running a peer workshop in 2009 on craftsmanship (specifically, apprentice/journeyman/master) in software development.

What are you doing? :-)


Regards,

Matt Heusser
(*) - In math, you'd look at the grand framework that delivered no business value and say "That just looks wrong." :-)

1 comment:

Anonymous said...

It’s a valuable workshop. I’ve got the answers for my debt doubts technically, I’ve guided the team member’s clearly and strongly whatever they needed in this.
===================================
garywillson
worldinfo