There are some things in life that are hard to appreciate until after
you have experienced them.
The advantages which come back, the return-on-investment from going
the Craftsman route, quickly reveal how emaciated and self-defeating
"crap" approaches are. Code becomes better for everyone concerned:
things get done faster, easier, with fewer bugs, and are more amenable
Rainbows and unicorns. :-)
I just did a Code Smells info session at a client (with Mark!). There
were people in the room genuinely engaged, asking the right questions in
the right way. There were also people in the room who felt they didn't
need to be there since they knew it all already. There were also people
who gave a bit of a crap, but were more of the mind that all this
refactoring stuff was just going to slow them down and they had real
work for real people to get done. I suspect that you could apply a
really nice bell curve to the group, with the "gave a bit of a crap"
people in the middle.
Those people in the middle of the curve are "Joe: A Feature a Day".
They bust their butts while their in the office but when the day is done
they're out of the software development world. They aren't reading
books, poring over 200+ messages a day from mailing lists, following
interesting software development people on Twitter, etc. They think
they're doing a decent job. They're almost always internal staff who
have a good-enough salary and benefits, and they keep getting modest
increases so they really must be doing a decent job.
So, what's compelling for them about buying into the Software
Craftsmanship movement? What's going to get them so stoked that they'll
spend more time outside work learning their craft? What will get then
past being told that most of what they've been producing for most of
their careers is crap?
Pride will get you the "genuinely interested" people. The "people who
felt they didn't need to be there" are likely lost causes and we'll have
to let nature take its course. To create a fundamental shift in this
industry we need to get people who "give a bit of a crap". Pride alone
isn't going to do that. I don't know yet what will.
There are only 2 forms of motivation, as far as I know: internal and
external. If they do not have internal motivation (so that's of course
part of the question, to find arguments which spark their curiosity
and engage their internal motivation) then external will have to do;
managers will have to raise their standards.
I can speak for myself but I was only one small player in the effort.
I wanted to bring awareness and authority to principles of Software
Craftsmanship. Prior to the manifesto there was mounting buzz
regarding craftsmanship coming from all over the world. But there
were some discrepancies in what people meant when they used the term
Software Craftsman. So it seemed like a good idea to get the buzz
makers in the same room to consolidate ideas and agree on the meaning
of Software Craftsmanship.
> 2) How will it help solve the problems of crap code?
As of today, there are over 1500 signatures on the Manifesto. 1500
people are fighting against "crap code". Those who have been fighting
"crap code" now know that they are not alone in their fight. Those
who write "crap code" now know that there are 1500 people fighting
The Manifesto is a gentle push away from "crap code" and toward
> 3) What will motivate "Joe: A Feature a Day" to become a craftsman?
Yesterday it was experience and logic that made craftsmen. Today,
peer pressure makes craftsmen. Tomorrow, the need to keep one's job
will make craftsmen.
I would like to print this out and hang it out in public at work... Well said.
1) Why did the manifesto get written?
2) How will it help solve the problems of crap code?
3) What will motivate "Joe: A Feature a Day" to become a craftsman?
then can't he be convinced craftsmanship can better allow him to provide this