Tuesday, January 25, 2011

Software Craftsmanship as a Thing

Dan North's recent blog post on software craftsmanship unleashed a lot of blog and forum discussions.

I, as a member of the craftsmanship's community prefer the Michael Feathers's opinion on the issue.

I think our community doesn't need labels. We must see our work as a "Big Thing". The "Thing" which lead us toward efficiency, better performance. The names doesn't make any differences. Our aim is common. This is significant.

As a comment in Micheal's post says, I guess this proves yet again that naming stuff is one of the hardest things we do. I sorta feel like this is a give up, though - replacing 'agile' and 'software craftsmanship' with 'thing'. I'd say all these conversations are already about the thing."

Do not get me wrong, I welcome debates and discussions but I think our community's main concentration must be the "Thing" not our naming conventions.

These are the posts correlated to the matter:

  • Dan North's original post
  • Liz Keogh explains her discomfort with the software craftsmanship manifesto.
  • Gil Zilberfeld draws a comparison between software craftsmanship and alt.net.
  • Jason Gorman wants us to avoid getting hung up on labels
  • Michael Feathers looks for more deliberate practice in our work.
  • George Dinwiddie provides a physical example of why quality work is important to a customer, and how certification and licensing doesn't help.
  • Dan North expands and clarifies some his earlier points.
  • Bob Martin says software craftsmanship is only about programmers tired of writing crap.

 

I usually use SVN for version controlling. Default application for showing differences in the svn is the typical diff application which existed in the Unix-Like operating systems. It is in the terminal and honestly saying, it's ugly and I can't work with it, So I decided to use FileMerge which is an standard app, lives in Mac OS. It's clean and graphical and shows differences beautifully, so I decided to use it for SVN diff.
Then, What I should do for this purpose!?
I googled and finally arrived at a thread in stackoverflow.com and It works like a charm, These are the steps to use FileMerge as svn diff default app.
First of all, we must have fmscripts installed.
$ svn co http://soft.vub.ac.be/svn-gen/bdefrain/fmscripts && cd fmscripts
$ sudo make

That's all, now we can use FileMerge in this way:
$ svn diff --diff-cmd fmdiff FILE1 FILE2
It's obvious that upper command must be in a directory that is under svn repository.

You can use aliases to use the command in an easier approach:
$ alias sfmdiff = svn diff --diff-cmd fmdiff FILE1 FILE2

Here you are, that's all. now you can use it.
$ sfmdiff FILE1 FILE2

This is the simplicity of Unix that Mac Os inherits it thanks to Darwin subsystem.
Unix is simplicity.

Ok, Then who am I?

After having my last blog in Persian, I decided to switch it to English. So, I'm David Qorashi, An Undergrad Software Student In Tehran, Open Source Enthusiastic, Sociology & Philosophy Lover and of course Software Development, Agile Methods, XP and TDD. I'm an open source enthusiastic and In this blog, I want to write about Agile methods, Java And Ruby, Specially Rails Framework. Wish to have a good time with each other. ;)

Testing syntax highlighter and Hello World Post ;-)

puts "Hello World"