Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Software Craftsmanship

Posted by Custard (Custard), 30 December 2010
Hi Graham,

Firstly merry Christmas and a happy new year to you all. It's been a while hasn't it?

I was wondering what your thoughts are on Software Craftsmanship?

I ask because we've been 'enrolled' on a TDD course consisting of about 6 months of working to a matrix of 13 strict 'habits' which eventually gets us on the first rung of the craftsmanship ladder and there has been much angst among the devs  over this.  

I have my own opinions and tend to err toward the pragmatic camp rather than the draconian but wondered if you had come across it and what you thought of it all?

Regards,

Bruce

Posted by dcorking (David Corking), 24 February 2011
I hadn't heard of this movement, although I had heard of "The Pragmatic Programmer" book that Wikipedia cites as the genesis of the craftsmanship movement.

https://secure.wikimedia.org/wikipedia/en/wiki/Software_craftsmanship

As a project manager, I personally enjoy working with pragmatic craftsmen. Whether they have certificates is secondary to whether they are experienced with their tools and have the experience and humility to learn and adapt new tools to new purposes.

Test Driven Development is an interesting new tool, and it certainly gives a buzz to download new open source code, hit the test button, and watch all the bars turn green one by one. The practising craftsman is probably the best judge of whether TDD, pair programming, sprints or other new techniques improve quality or speed, and I doubt the answer is simple. So, I think the coffee break debates you have with your colleagues will be just as valuable as the time at the keyboard completing your course assignments.

David

p.s. it has indeed been a long time - I am happy to see some action on this board

Posted by Custard (Custard), 24 February 2011
Hi David,

Thanks for the reply.

I agree with your comments but the problem we've been having with it is that we are told that TDD isn't about testing its about driving out code using tests and that the outcome of TDD'd code isn't necessarily tested thoroughly against edge cases, only to the requirements.

A lot of the devs already practice TDD (or what we understand to be TDD) and are in the habit of creating unit tests for software. This course has thrown us a bit because we are told to follow some rules out of which comes some code that generally we're not happy with but passes the tests.

I've read (several of) Dave Thomas's books and generally subscribe to the pragmatic programmer ideals but still feel that TDD as we've seen it is not really producing good code (Although the protagonists claim it does). Perhaps it's the way it's been presented..

Some of the inflammatory advice we've had such as
'Comments are a code smell' has caused much consternation and uproar amonh the devs who have experience of taking over and maintaining code bases and have been happy to see any comments at all.
It's those kinds of things that go against the grain.

I guess time will tell..

BTW. I'm missing Geekmas. When we've moved back South again I'll try and arrange one.

B



Posted by dcorking (David Corking), 25 February 2011
Good points.

I don't know if XP advocates unit tests for edge cases or not. It is certainly important in the more traditional (waterfall) methods for safety critical code.

As for code comments: class comments (or perldocs, javadocs ...) seem vital to me. Methods probably deserve a one line comment, though this role can sometimes be taken by the test method. (Executable method comments seem the most useful to me!)

But again I wear a manager's hat, not a programmer's one.

Did you read this article by Jason Gorman and Kerry Jones?
http://www.codemanship.co.uk/sc_at_bbc.pdf

BTW if there is another geekmas, I think it would be fun to demo Etoys (a prototype-based language for kids.)

Posted by Custard (Custard), 25 February 2011
Extremely well acquainted with that article

I'll have a look at etoys http://en.wikipedia.org/wiki/Etoys_(programming_language)

I've been using scratch (http://scratch.mit.edu/) with my daughter. She's enjoying putting together little shows with the characters interacting.

Worth investigating

Take care.

Posted by dcorking (David Corking), 25 February 2011
I heard a lot of good things about Scratch.

An Etoys v Scratch face-off sounds like an intriguing event.

Posted by dcorking (David Corking), 7 April 2011
Custard,

I couldn't resist returning to this thread to recommend a keynote speech I heard online today.
http://www.youtube.com/watch?v=YX3iRjKj7C0
"RailsConf 09: Robert Martin, What Killed Smalltalk Could Kill Ruby"
The first half hour is advocacy for Test Driven Development (and its three laws.) Also listen to his open heart surgery metaphor at the very end (at 0:58:00.)  

It is a sermon, not a technical talk, and is equally likely to enrage you as interest you, but as I said, I couldn't resist.

David



This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2012: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho