What do y'all think? Courage or Aggressiveness. I think courage is a better word for it, but it sounds kind of fuzzy. Aggressiveness has a connotation of near-stupidity that I certainly don't like.
Someone out there tell a story that matches this value. Then we'll all know what to call it.
(BTW it is amazing
that 6 hours after I post an email to a small group, the information shows up in Wiki in just the right place.)
Thanks, Kent. I much prefer Courage. Aggressiveness to me connotes aggression, which as you know I eschew. I'm changing my SS presentation to Courage. -- RonJeffries
Ties in well with the thing that Alistair mentions in his MethodologySpace
paper: XP is a no fear
methodology. It seems that if there is anything that causes you or your customer fear then there is something concrete within XP that you can do about it.
I agree about the fuzziness of courage.
But the concept does seem better.
A story... you are in a meeting and most people are trying to convince the manager that they absolutely can not develop the product without an expensive configuration management system. Every argument that they use deals with situations that they may never encounter. If they altered their practice to a single build model they'd be okay with their version control system, and it certainly is not a showstopper, but they do not want to do that. If you can't have it all, you can't have anything. No happy ending on this one.
The same principle is in here: RichardFeynman
attends meetings investigating the Challenger shuttle disaster. After hearing people go on and on about how the O-rings didn't become brittle in the cold, he asked for a glass of ice water, dropped one in and showed them that they did.
I don't know what to call this. Clarity? I guess it is courage, but it seems to have a lot to do with maintaining your unstuckness.. knowing what is really
necessary and what isn't.
I'd say what RichardFeynman
did was HandsOn
demonstration... Maybe a word could be Plainness, but of course I am not an native English speaker, so I may be missing some subtle connotations... -- DavidDeLis
On the negative side, aggressiveness suggests confrontational
. But on the positive side it suggests going faster
which I think is a key characteristic of XP. Courage doesn't have that same extreme connotation to me. Perhaps fearlessness
better captures the spirit. I have an image of one courageously standing one's ground, but fearlessly forging ahead.
But that's just me. If I were a marketing person, I would be a very hungry
marketing person. ;-> -- KielHodges
Fearlessness sounds very good!
I think that what people mean by courage being fuzzy is that it is more of an emotional state rather than an action that can be valued, as opposed to the other 3 values. On the other hand aggressiveness may imply moving fast, but I don't believe speed is the main goal of XP per say. Quality software done as promised is the goal, as I understand it. It just happens coincidentally to also take much less time.
I myself might say activity
, as a less combative version of aggressiveness. --DonWells
For me, an analog is lean downhill
when skiing. That takes a certain amount of fearlessness, courage, or aggressiveness. (It turns out that leaning downhill gives you more control than leaning back uphill.) It is connected with "always try to keep going forward". Which word? I reacted against courage at first, but then went to the negative of fearfulness, which is fearlessness, then to courage again. I touch back to "lean downhill" to start the search over again. -- AlistairCockburn
At first, I wrote that no fear
should really be the value name but then I realized it was a negative, so I scratched it. But having seen Kiel turn it into fearlessness
I really like it. Fear leads to a lot of bad decisions because alternatives are shaded by the fear and thus never explored.
Here is a story. I knew a guy who saw a hot air balloon going down. Many of the people in the balloon jumped rather than go down with the balloon. I don't know what the correct course of action is in those circumstances, but it was clear that they were motivated by fear. Or as my friend said "geeking."
Fearlessness can be equated with stupidity also. I guess the trick is not to avoid fear, but to convert it as it arises into constructive action. Every time you write a test, you should have one less possible fear.
Ooo! I like that. Don't know how they'll make use of it, but I like the "convert fear to constructive actions, always moving forward." etc., as you said. -- Alistair
Ooo, my riding coach would love to hear you say that bit about "always moving forward". A lot of times in sticky situations, fear causes riders to clamp down on their horses and shut them down, when actually you have more control over your horse if he's moving forward.
I like aggressiveness. It is a good sports metaphor. I think my coach would think he died and went to heaven if I suddenly showed a little aggressiveness in my riding.
Interesting. Racing a motorcycle is very much the same. When you get scared in a corner (i.e. you're in too wide and think you're going to crash), the overwhelming survival reaction is to slow down. This ensures that you crash. The correct reaction is to speed up (honest!) and lean more. It's really hard to do, though, because every fiber in your body is screaming "SLOW DOWN!!!"
Perhaps the positive of fearlessness would be confident. -- Don
Which one sounds best when phrased as a question? Like Kent's ever popular "and that would be bad because?..."
For example: "How can we communicate that?" "Can this be any simpler?" "When will we get feedback on that?"
What would follow? "Is that giving you courage?" or "Is that aggressive enough?" "Is that motivating you?" "Is that giving you confidence" "Is that helping you because you know exactly what needs to get done and are confident you can do it?"
Maybe not that last one. -- DonWells
I like confidence even better than courage, and aggressiveness least of all. I put the values on some business cards I printed up for SS last year, and I find that I won't hand out the ones with the values on them. I don't want my name signed to "aggressiveness". (Which, if you know me, is ridiculous.) OTOH, confidence and courage can also be misplaced. But (paraphrasing) Don's question "does that give us confidence" is a really good way to ask the question. -- rj
How about ruthlessness
writes in his book ObjectSolutions
"To be successful, the software development team must be ruthless: every technical decision must contribute to satisfying a system's essential minimal characteristics. Any decision that is counter to these characteristics must be rejected; any decision that is neutral to these characteristics must be considered a luxury." -- UrsKeller
Sounds to me like a perfect fit for XP!
I have a problem with words like "courage" and "fearlessness". They imply that there is something to fear and seem to encourage the notion of programmer as hero. What are we saying that an XP developer needs to be courageous about anyway? Changing the code is no longer an activity that induces fear into XP developers since there is the safety net of all the unit tests and functional tests to protect them.
I think that the whole point of XP is that it minimizes fear and is the antithesis of HeroicProgramming
In my opinion, the value we are trying to convey here is something along the lines of EmbraceChange
Yes, James, I share that concern. "Courage" or even "confidence" could be used to imply that one should be confident without basis, which would of course not be what XP recommends. Still I think they're better than "Aggressiveness", which really pisses me off and makes me want to shout at people. ;->
I'm thinking of a formulation like one of these for the tag-line on my business cards if I ever print a new batch:
Simplicity, Communication, Feedback: Confidence
Simplicity + Communication + Feedback = Confidence
sounds like a good name for a book, someone should write one. Oh, someone is ...
Why not "aggressiveness?" It has positive connotations as well. I remember Ron speaking aggressively at OOPSLA98. Once you got him talking about XP in front of a crowd, well...
Oh dear, it has been too long since I peeked at wiki. I'm sorry to be negative, but frankly if it ain't broke I don't see it should be fixed. First refactoring became "design". Now aggressiveness is to become "courage"? I'd suggest Kent and Ron pick up one of the editions of Fitzgerald's "Rubaiyat" that includes at least the first and last versions he published. What was succinct, honest, and pointed became elaborate, smooth, and dull. So many second-guessed word choices appear in the later editions they're almost unreadable.
Same thing here. I think you guys should stop trying to smooth the sharp edges, roll back to the honest way you said it first, and let the methodologists do the second guessing. XP is aggressive - it's the WWF of methodologies. I think you should be proud of that and quit apologizing for it.
Chutzpah? Audacity? Moxie?
Agree with Peter 100%. Keep refactoring, keep aggressiveness. The humility and discipline of the one balances the energy and ambition of the other. There will always be other books, other presentations that are smoother. Nobody can express all legitimate views. KeepingItExtreme?
and staying consistent will have the biggest impact. -- RichardDrake
To some degree, what's being discussed here is faith. XPers can discard their fear in part
because they have faith in certain things. Faith that, more often than not, there really is a simple solution. Faith in the abilities of the team. Faith in their tools and techniques (e.g., "Refactoring really can
work us out of wrong decisions. We don't have to be right the first time!"). Faith in the system metaphor. Faith that we really can write code that's easy to understand.
There are pointers to this in the fact that XP grows from "values" and "principles". That's not the pragmatist's way (using that word in the technical philosophical sense), to believe that the right values and principles won't lead you astray. That's a characteristic of faith.
Here's one example. Those looking for certainty scoff at the XP reliance on testing and pair programming (as opposed to extensive modeling, analysis, and inspections and reviews). "Pair programming is too informal," they say, and "tests can't prove the absence of bugs." But XPers aren't looking for absolute certainty; they have some amount of faith that the XP way will catch nearly all of the problems, and at the same time produce software that is simple enough and flexible enough that the others are easy to fix. (This is one reason why XP in its current form
is not thought to be appropriate for life-critical software, where more certainty is required.)
I'm not sure "faith" has much use as a marketing buzzword, but I'm pretty
sure it's a part of XP. :-) -- GlennVanderburg
to me connotes a form of decisive action, more in the face of uncertainty than fear. It has overtones of leadership, and being prepared to be wrong. -- DavidThomas
I like that!
As in "To boldly go" ?
And as in ActBoldly
"Aggressiveness" works for several reasons. First, business types (who you often have to sell this to) grok the word, and interpret it to mean a positive risk-taking philosophy that gets results. Not only do business types like it, but that is exactly what we are talking about. We take care with ruthless testing to keep from shooting ourselves in the foot, so we can afford to be aggressive.
Another advantage is how it talks to developers. AlistairCockburn
above described aggressiveness as "leaning forward while skiing", a behavior that sounds dangerous but is really the safer thing to do. From the world of martial arts, the phrase is "when startled, leap forward". Again, the behavior sounds unsafe but actually improves your odds. It is also how one should react to being "startled" in XP. If you come across a problem, don't spend time analyzing when you can take your first idea, pare it down to the bare minimum, and go for it. If your instinct is wrong, the UnitTest
will tell you, and you gain some insight.
Finally, it is YabaCompatible
. If the virtues of XP are Communication, Aggressiveness, Testing, and Simplicity, this becomes the "CATS" (or "SCAT") philosophy and gives people a mnemonic to remember these virtues. If Aggressiveness becomes Courage, you now have two C's and no vowels.
I vote strongly for Fearlessness, for a couple of reasons.
1. It lines up well with previous well-known statements about traditional methodologies being based on fear.
2. It exactly describes the feeling I have witnessed of an XP-enabled team toward their code. Because of aggressive unit testing, simplest thing, and PairProgramming
, the team is willing to launch into changing, extending, or refactoring the code without the nagging fears of unexpected consequences that plague other teams.
3. It also exactly describes the feeling I have witnessed of XP teams toward their schedules. Because they are integrating continuously there is not the lingering fear that at the end of the project things won't hang together. Because functionality is being delivered in user-defined priority, you are not afraid of delivering things that no-one actually wants and leaving out the critical bits.
4. Aggressiveness sounds too... unjustified to me, somehow. Anyone can be aggressive, whether there is good reason or not.
5. Courage makes me think too much of the cowardly lion. :) Actually, Courage is doing what you must do even though you are scared to the bone. I don't think that's what makes XP teams move so fast.
6. I actually like the heroic and fighting the good fight connotations of Fearlessness. -- BillBarnett