The onus is on the individual to show that s/he is a craftsman. But
really, the most important step is the individual *choosing* to become
a craftsman. Once that decision is made, it is up to that person to
abide by the values and ethics of software craftsmanship. If that
person states publicly that s/he is a craftsmen, and the software
craftsmanship community observes discrepancies between the craftsman's
behavior and/or work products that contradict our values and ethics,
then it is up to us to work with that person. We would work with the
person to either adjust his/her approach so it fits our definition of
craftsman or s/he needs to stop claiming to be a craftsman.
Here's an example of someone stating publicly that he is a craftsman.
http://skitch.com/dave.hoover/bmj3p
Please hold me accountable!
Best,
Dave Hoover
//obtiva: Agility applied. Software delivered.
>
> Hmm it would take a while before I would start calling myself a
> craftsman, but I also know people calling them self's senior
> developers one year after school. So I guess there will be many people
> calling them self's craftsman if there is a certain benefit (money
> usually) in doing so. I am also sure that those won't change their
> ways just because we have talked to them.
I don't think I could ever call myself a craftsman. I certainly can
say I believe in craftsmanship.
Because just believing in a thing doesn't change your way of doing stuff? Actually doing it, improving yourself and
honing your skills, leading by example, inspiring people and spreading the word makes you a craftsman.
Michael
>
> But you can call yourself an aspiring craftsman, can't you?
of course
> Because just believing in a thing doesn't change your way of doing
> stuff? Actually doing it, improving yourself and
> honing your skills, leading by example, inspiring people and
> spreading the word makes you a craftsman.
i would be happy to leave such value-judgements up to others.
I strongly believe that craftsmanship is much about trying (to improve) how you approach the way to develop software.
Does "craftsman" say where you are on your Long Road ?
Michael
>
> The question there is, how much value judgement is craftsman in
> itself?
> I didn't say journeyman or master .... ??
In the past, for other crafts, trade-guilds generally used to make
such decisions. I don't think that's what we want, do we? If I put
"software craftsman" on my business case what's to stop someone else
from doing so? So who is to say whether me or that guy (or both or
none) is the real craftsman?
> I strongly believe that craftsmanship is much about trying (to
> improve) how you approach the way to develop software.
> Does "craftsman" say where you are on your Long Road ?
So I say, I aspire to be a craftsman, by applying principles of
craftmanship to my development practice. I don't see that as being
substantially different from what you say. I'm only a bit leery of the
label because of it's possibilities for mischief ... improving your
approach, skills, and thinking is a constant struggle, not a "goal" or
a certification step that you finally reach and stop.
If you want to say that makes me a craftsman, I say "thank you" and
carry on with my aspirations. ;-)
I'm following a third way: I want to be better at my job. I find that
there are useful lessons I can learn from and share with others using
the craft metaphor. That's motivation enough for me. I'm not
especially interested in persuading the masses to join me and I've
been around long enough to be suspicious of any self-proclaimed elite
club. So I'll get back to trying to be better.
"Apprentice" is to "Craftsman" as "White belt" is to "Martial artist".
I wouldn't have a problem with someone with less than 2 years of
experience calling themselves a craftsman as long as they're walking
the the path toward mastery.
(from mobile)
Who decides that someone is a craftsman?
By calling myself a craftsman, I'm not implying that every developer
should become a craftsman or that craftsmen are inherently better than
people who take different approaches to software development. I
publicly call myself a craftsman because it helps me focus on my
journey toward mastery, and gives people more information about how I
approach my life and work as a software developer.
I couldn't disagree more. There is nothing in the waterfall
methodology preventing a developer from writing good code.
--
David
blog: http://www.traceback.org
twitter: http://twitter.com/dstanek
On Sun, Apr 12, 2009 at 11:14 AM, Olof Bjarnason
<olof.bj...@gmail.com> wrote:
>
> Here's a simplistic try at characterizing a craftsmans software:
>
> - The maintenance cost of crafted software is an order of magnitude
> lower than software crafted using waterfall.
> - The same goes for cost-of-new-features in such software
What's stopping someone crafting beatufull code even given the long
process cycles of waterfall?
Sure we're quite sure that we'll get the *wrong* thing using waterfall
but it can still be very well built.
Also, take a fine sports car, thoose are often built by extraordinary
craftsmen and their maintenance cost is, prohibitive.
> The ratio is probably lower when compared to software developed with
> agile methods (after all, agile is the mother of craftsmanship, as the
> manifesto makes clear). It's not all bad.
Agile helps us make sure we build the *right* thing, building it well
is quite another question even though XP for example gives us loads of
usefull practices to also make sure we not only build the right thing
but also build it well.
Craftmanship in my view is the deep passion to make sure that I build
things right, that I give heed to the materials and tools given to me
and create things of beauty with them. I also hope that they will turn
out to be the right things and valuable for whomever issued the work.
> I call myself a developer. I talk about practices that are agile. I talk about crafting code. I understand I'm on a journey.
>
> I think that calling ourselves other than developers will only make it harder later on. We're either trying to bring the practices of craftsmanship to the masses, or we're trying to form an elite club.
Do you call yourself a "developer" as a synonym for "programmer", or
rather to emphasize that you do more than program?
Have you considered not labeling yourself at all?
"So what are you?"
"A human."
--
J. B. (Joe) Rainsberger :: http://www.jbrains.ca
Diaspar Software Services :: http://www.diasparsoftware.com
Author, JUnit Recipes
2005 Gordon Pask Award for contribution to Agile practice
Register for Agile 2009 at http://www.agileregistration.org
I decide for myself whom I call a craftsman. By the time I do that
reasonably well, I imagine I no longer find value in the label, and
then it scarcely matters.
> "Developer" is the same as "programmer" to me, but like anything, it has
> different connotations to different people.
Right. I use it to mean, in general, anyone involved in developing the
product: programmers, testers, and so on.
> The point I'm trying to get at I think is this. If we look at proposals like
> Obie's Rails Maturity Model, or even CMM, they are saying not that there is
> a special class of /thing/, but instead, as /thing/ gets better, it will
> begin to look like /this/.
>
> In other words, if we are "craftsmen" what is everyone else? Or are we
> [developers, programmers, coders, testers] who, in the spirit of
> craftsmanship, doing certain things to become better at what we do?
I prefer the latter over the former. Nice.
Agreed. I wouldn't want to de-emphasize code, because writing code is
a necessary skill for a software craftsman. It is the skill that most
of us start with, but over time craftsmen will also develop the myriad
skills required to deliver quality solutions to their customers.
Especially building lasting relationships, reputation, trust, improve communication, honesty, courage, testing,
deployment, maintenance, operations, ...
There we have lots to learn from family therapy. No wonder Dave is so good at it.
What I also like is the one team for the lifecycle approach that Amazon does. Where a single team is responsible for a
module and its whole lifecycle including choice of implementation details (e.g. language) from requirements up to
maintenance and operations. There was a great presentation by Werner Vogels at QCon 2007.
Michael