Web Images Videos Maps News Shopping Gmail more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Craft - Why I am here
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  7 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Matt Heusser  
View profile  
 More options Dec 16 2008, 9:06 am
From: "Matt Heusser" <matt.heus...@gmail.com>
Date: Tue, 16 Dec 2008 06:06:19 -0800
Local: Tues, Dec 16 2008 9:06 am
Subject: Craft - Why I am here

Dave Hoover wrote:
> I started to wonder what purpose the label "craftsman" or
>"software craftsmanship" really provided outside of my own work.  I've
>found these ideas personally useful, but because craftsmanship is
>centered around delivering to customers

Well, I'd like to tell you why I am involved in this group.

I got involved because, obviously, I care about code. I'm sick of bad code.

Bad code isn't just ugly, it obscures the meaning of the functionality.  If
the developer didn't care enough (or lacked the skills to) write the code
well, he probably introduced errors into the algorithms.  But, because the
code is so ugly (and it probably lacks automated tests), we can't see them.

That means that over time, the code becomes more expensive to maintain and
your work like becomes no fun.

Now, the odd thing is that most corporate american roles tend to subtly
encourage this behavior. After all, a quick hack now will guarentee me the
boss's approval.  And, why, we might never have to touch the code again.
And if we do have to touch it, I might not be on this team.  And if I am on
the team, we can probably give it to the new guy.

I'm interested in ways to change the system.  Last summer, I organized the
tech debt workshop (sponsored by the Agile Alliance), we made less headway
that I would have hoped.  One of the main conclusions that several people
came to was that the "problem" with tech debt could be solved by better
management.

While that is appealing, on some level I diagree:  Management doesn't
actually write the code, test it, or change it.  When we lay the blame at
the feet of management, we are missing the fact that it is the technical
people who actually make the shortcuts.

I see a craft model doing two things: It provides training (to avoid the
ignorance problem) through real tangible example, and it gives some sort of
professional code of ethics ("I will not do crap work") which may, perhaps,
maybe, over-ride the desire of some to pass responsibility off to the boss.
("The boss put me under incredible time pressure to take short-term
optimizations!  It is his fault!")

So, in that way, I would like to extend the model to beyond the borders of
my shop.  That is, I believe, a good part of the idealistic reason people
give speeches and write books and such - to impact the industry.

That is why I would support a /good/, /optional/ program involving
commitment to ethical behavior and formal training.

But I'm open to discussion either way.

regards,

--
Matthew Heusser,
Blog: http://xndev.blogspot.com
Twitter: http://www.twitter.com/mheusser
Skype: mattheusser


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Markus Gaertner  
View profile  
 More options Dec 16 2008, 4:38 pm
From: Markus Gaertner <mgaer...@googlemail.com>
Date: Tue, 16 Dec 2008 22:38:57 +0100
Local: Tues, Dec 16 2008 4:38 pm
Subject: Re: Craft - Why I am here

> Now, the odd thing is that most corporate american roles tend to subtly
> encourage this behavior.

The same goes for at least one german company. Three years ago I started fresh
from university as a tester and dived into the topic. There are two re-occuring
patterns:
- the code gets tested afterwards, I don't need to bother (my favourite one - a
similar view is the confusion of try-out and testing, which I sense sometimes
during conversations)
- ugly code

While the first one is quite self-explanatory and almost every tester has had
an experience like this, the second one is harder to describe.

One or two weeks ago I was made aware of SqueakyCleanCode and
ScreechinglyObviousCode (http://c2.com/cgi/wiki?ScreechinglyObviousCode). When
I take a look into the source code branches, I rarely see
ScreechinglyObviousCode, I'm maybe able to see SqueakyCleanCode, but most of
the time I just see ugly code.

If I understood you right, I wouldn't dare to say that it's not just an
American problem you described.

Kind regards
Markus Gärtner


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Nuno Marques  
View profile  
 More options Dec 16 2008, 7:26 pm
From: "Nuno Marques" <nuno.filipe.marq...@gmail.com>
Date: Wed, 17 Dec 2008 00:26:17 +0000
Local: Tues, Dec 16 2008 7:26 pm
Subject: Re: Craft - Why I am here

I would also want to add that it is very frustrating at times to work with
some APIs.

Even when you care about your craft, it gets difficult to produce something
you are really proud of because you have to use some broken 3rd party
framework or component. Some of them make your code impossible to test.

It might be a good aim to leave the code better than it was when you found
it but sometimes that is not enough.

Nuno

2008/12/16 Markus Gaertner <mgaer...@googlemail.com>


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Dave Hoover  
View profile  
 More options Dec 17 2008, 6:04 am
From: "Dave Hoover" <dave.hoo...@gmail.com>
Date: Wed, 17 Dec 2008 05:04:41 -0600
Local: Wed, Dec 17 2008 6:04 am
Subject: Re: Craft - Why I am here

On Tue, Dec 16, 2008 at 8:06 AM, Matt Heusser <matt.heus...@gmail.com> wrote:
> Dave Hoover wrote:

>> I started to wonder what purpose the label "craftsman" or
>>"software craftsmanship" really provided outside of my own work.  I've
>>found these ideas personally useful, but because craftsmanship is
>>centered around delivering to customers

> Well, I'd like to tell you why I am involved in this group.

> I got involved because, obviously, I care about code. I'm sick of bad code.

I think this sort of "why I am here" declaration is a good idea.  And
Matt's email made me ask myself why I am involved in this group and
how I ended up here.

First, I would like to start out by recommending that anyone who is
serious about software craftsmanship go out and read Pete McBreen's
book "Software Craftsmanship".  I think it's a critical starting place
for these discussions, and on a more personal note, the book had a
huge impact on me.  Probably the biggest reason I am a part of this
group is that I have no where else to go.  :)  I was a later-in-life
self-taught programmer who had a wife and child(ren) to support from
the day I wrote my first for loop, so I have no formal scientific or
engineering education, and I don't have the option of taking time off
to obtain one.  And yet I want to become great at what I do.  In my
first two years as a programmer I started to despair about my lack of
relevant education.  It seemed that without computer science or
software engineering credentials, I was going to have a hard time
making progress.  But then I read "Software Craftsmanship" and I felt
like I could fit into the world that Pete was describing.  I could see
myself in the story, and I recognized that I was an "apprentice".
This gave me the "career map" I needed which allowed me to take the
steps I needed to make progress.  Neither computer science nor
software engineering provided this map for someone like me.  So,
unlike some people (like Pete) who argue strongly against software
engineering, I am mostly ignorant of it and choose software
craftsmanship because I didn't have any other options.

The steps I took after reading Pete's book obviously shaped the way I
look at software development.  And because these 6 years since I read
Pete's book have been largely positive for me, I would like to
encourage other people to walk a similar path, to help them make
similar progress.  That is one of the reasons I wrote "Apprenticeship
Patterns".  I would also like to improve the apprenticeship experience
and raise the bar for what we expect from someone with 4, 5, or 6
years of experience in our industry.  That is one of the reasons I
started Obtiva's apprenticeship program.  I want to instill a desire
in people to become master craftsmen, which is a very
counter-cultural, yet increasingly important role to play (see
http://search.safaribooksonline.com/0201733862/ch11lev1sec1).

So, I wonder what we as a community can do to improve these things
even more.  I wonder how we can make it easier for companies and
individuals to take on apprentices.  I wonder how we can make it
easier for companies and individuals to host and send journeymen to
spread great ideas between development shops.  And most critically, I
wonder how we can ensure that our master craftsmen stick with the
fundamental activity of actively developing software for long-term
customers (see http://search.safaribooksonline.com/0201733862/ch08lev1sec7).

I'm honestly not interested in any criteria that would allow us to
distinguish an apprentice from a journeyman or a craftsman from a
non-craftsman.  When it comes to a set of principles that a software
craftsman should adhere to, I think Pete's book serves as a good
enough starting point.  I realize now that I'm here because I hope
that we can organize a network of people to encourage the 3 activities
that I've seen make the biggest impact on people becoming software
craftsmen.  I'm here because I'd like to see us:

1) Facilitate the introduction of apprenticeships, similar to 8th
Light's and Obtiva's
2) Create a structure that encourages journeymen to journey between
development shops, similar to Corey Haines' tour
3) Seek out master craftsmen and identify their masterpieces and
contributions to the craft, to provide the rest of us with something
to aspire to

Best,

Dave Hoover
//obtiva:  Agility applied. Software delivered.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Renzo Borgatti  
View profile  
 More options Dec 17 2008, 9:50 am
From: Renzo Borgatti <renzo.borga...@gmail.com>
Date: Wed, 17 Dec 2008 08:50:15 -0600
Local: Wed, Dec 17 2008 9:50 am
Subject: Re: Craft - Why I am here
Thank you Dave, I appreciate your pragmatism. I think that searching  
for software craftsmanship values and meaning and hopefully create  
some sort of manifesto is important. But I think the time we dedicated  
at the summit for this was enough. I was hoping to converge at the end  
of the day on a definition of craftsmanship. But we started to  
converge around 4pm and hence the discussion that is going on here.

I have the impression that trying to find those values in their best  
possible form now is like a big design upfront. Let's publish what we  
found until now as "manifesto beta" and refine the rest over time.

The reason why I'm replying to Dave is because I see at the end of his  
reply a list of practical steps. I'm the guy that at the end of the  
summit wrote on the board a small box with some practical steps for  
aspiring craftsmen. Those are just ideas, but the principle is how an  
aspiring craftsman can improve their skills, identify a master  
craftsman and when to set the transition from apprentice to craftsman.

I'm thinking about a [cross-company] network and a way to identify our  
master craftsman. Here's some other interesting ideas:

- Coding dojos: monthly coding dojo and some way to track who is  
attending. Maybe we should consider a minimum of 10 dojos to attend  
for an apprentice to become a craftsman. The dojo can be pairing with  
a master craftsman. Or what we did with Uncle Bob recently at 8thlight.
- Masterpieces: as Dave said we should know masterpieces. Both books  
and software I think. Reading groups? Source code retrospective groups?
- Exams? How to set the transition to a next level? I should be able  
to demonstrate my skills executing katas or maybe solving a small  
algorithm in front of a master craftsman jury.
- Portfolio. Bring together the relevant part of your work to  
demonstrate what you are capable of. The apprentice should be helped  
out identifying and collect those pieces maybe in a common place for  
everyone to see.

Well, hope I gave you the idea of the direction I'd like to give to  
the discussion.

Renzo

On Dec 17, 2008, at 5:04 AM, Dave Hoover wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Nigel RM  
View profile  
 More options Dec 18 2008, 10:06 am
From: Nigel RM <sleepy...@gmail.com>
Date: Thu, 18 Dec 2008 07:06:13 -0800 (PST)
Local: Thurs, Dec 18 2008 10:06 am
Subject: Re: Craft - Why I am here
On Dec 17, 2:50 pm, Renzo Borgatti <renzo.borga...@gmail.com> wrote:

> I have the impression that trying to find those values in their best  
> possible form now is like a big design upfront. Let's publish what we  
> found until now as "manifesto beta" and refine the rest over time.

That sounds like an encouragingly Agile approach!

> - Portfolio. Bring together the relevant part of your work to  
> demonstrate what you are capable of. The apprentice should be helped  
> out identifying and collect those pieces maybe in a common place for  
> everyone to see.

I don't know about you, but restrictive NDAs and company IT security
policies effectively prevent me from talking about, let alone showing
people my work :(

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Ben Rady  
View profile  
 More options Dec 18 2008, 4:42 pm
From: "Ben Rady" <benr...@gmail.com>
Date: Thu, 18 Dec 2008 15:42:52 -0600
Local: Thurs, Dec 18 2008 4:42 pm
Subject: Re: Craft - Why I am here

On Thu, Dec 18, 2008 at 9:06 AM, Nigel RM <sleepy...@gmail.com> wrote:

> I don't know about you, but restrictive NDAs and company IT security
> policies effectively prevent me from talking about, let alone showing
> people my work :(

I have that too, but I also have projects that I contribute to on my own
time. In many cases, this is a better demonstration of my abilities because
it's completely under my control.

Ben


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google