Optimistic Programming

[Major refactoring and enhancement in process here, starting with the name. -- TomRossen]

We don't stop with asking what a tool does. We ask about what kind of people we become when we use it. -- HowardRheingold, http://www.rheingold.com/rants/


OptimisticProgramming (MP) is an extension/variant of ExtremeProgramming that TomRossen is inventing. See OptimisticProgrammingSkunkworks to watch Tom's progress with OP in a real project.


Tidbits:

XP actually breaks the convention that MethodologistsDontProgram. -- RichardDrake (in MethodologistsDontProgram)


XP is human-centered and takes advantage of the intelligence and responsibility of programmers in ways that heavyweight methodologies, with their emphasis on an archaic ImpressionOfControl, can't.

OptimisticProgramming pushes this human-centering to an extreme.

It augments DoTheRightThing, DoTheSimplestThingThatCouldPossiblyWork, WorstThingsFirst, etc. with BeMindful and DoWhatCalmsYou.

These are not opiates! BeMindful when others about you are losing theirs.

Mindfulness: alertness, awareness of context.

Imagine an equilibrium situation: a happy company that is a leader in its field, that has no dissatisfied internal or external users demanding new products/tools or competitors breathing down its neck. Such an equilibrium has a half-life of picoseconds. Something always comes along - a competitive product, a new UserStory - that disturbs the calm.

The purpose of OptimisticProgramming is to restore the calm. It adds a new role - bodhisattva. The bodhisattva's responsibilities are the union of those of the Chinese SonOfHeaven (be the still center) and the princess of ThePrincessAndThePea (detect the slightest disturbance).

[more to come]

-- TomRossen

(See more thoughts at http://www.geocities.com/rossentj/consulting/AmericanModerateProgramming/AMPEmbryo.txt )

Seen StressFreeProgramming and friends? I think you can CrossLink? with those... -- LazyGnome (-8

Wow - it's been more than six weeks since I've seen this page. And I know who LazyGnome is, thanks to the last edit thingy. Thanks - I did link. But this page deserves massive refactoring by an older and wiser (not sadder, though) programmer with more XP experience under my belt.


Sounds great except for one thing. Where do we get our boddhisatvas? And how do we certify them - do we have to use the ThePrincessAndThePea for that too? And what if we are not pea-worthy enough to know what peas are? Relying on an unenlightened slob to calm your development is, literally, asking for trouble. Should we perhaps rename this TheSecretOfPower Programming?

Your bodhisattva should have all the qualifications for a good ExtremeProgrammer. I believe that would screen out the unenlightened slob. And remember - it's a role, not a person, so rotation within the team is a reasonable approach.

And it wouldn't hurt if they trained with Yoda - I mean ... a real Zen master. -- TomRossen

You can be a great ExtremeProgrammer and still no bodhisattva. Heck, I can't think of a single XPer I've worked with, myself included, that qualifies. Sounds like a throwback to GuruDoesAll ... perhaps GuruKnowsAll? ...

Something has slipped a cog here ... if you are a great ExtremeProgrammer, you are engaged in bodhisattva activity, no ifs and or buts. As for "being" or "not being" a bodhisattva, what can I say except "noun-centric language sucks". Bodhisattvahood is all about a mode or way or attitude or orientation or intention. When I believe that my benefit will be maximized (remember "pursuit of happiness") by the well being of those around me, e.g. the project unfolds well, intelligently, giving rise to more realistic self-esteem and more grounded understanding, then I'll be oriented in a way that will move me to adopt whatever methodology with diligent engagement and in a co-operative mood. IMHO, of course. -- BenTremblay

Ben - yeah. I'll have more to say about competition vs. teamwork soon in the skunkworks. Thanks to Social Darwinism, people confuse competition with progress. Progress based on teamwork is exemplified not only in meme exchange among "higher" animals, but plasmid exchange among bacteria. Bodhisattvation (closer to a verb?) is the simplest thing that could possibly work. -- tr

[response to GuruDoesAll] Quite the contrary - more like GuruDoesNothing! -- tr


I don't think compromising is an original idea :-)

Ouch! This page is about the details of a particular kind of "compromise." It's not reinventing the general concept of compromising. Please elaborate.

OptimisticProgramming is not a joke. I'm team lead on a project where RUP has been introduced lightly enough so that I have some flexibility in introducing XP.

I read your comment to mean that compromise is bad and that MP is a dilution of XP - and unoriginal to boot. I don't believe that compromise is bad, nor that the term applies to this page, nor that MP is a dilution of XP.

-- TomRossen

As far as originality goes, AgileLisp lays the claim that ExtremeProgramming isn't all that new. Or at least, some of it's parts aren't, even if sum of it's parts are. -- MatthewAstley

For me, what's original and shockingly brilliant about XP is that it is human-centered, which in its first cut means client- and developer-centered. The WaterFall-based heavyweight methodologies seemed to be driven almost entirely by management fears. -- TomRossen

Management aren't human then? ManagersAreMonsters

One goal of OP is to extend the concept of "human" in XP to include managers. The word Extreme is great marketing - to developers! - but I'm sure it frightens off management. Hence Optimistic. -- TomRossen

I would help you in your goal, but first I need to learn more about XP ... if only to end a long round of FightingFires. -- AnonymousDonor

There are ten zillion pages on XP in this Wiki, but fortunately only nine zillion of them are meaningful. You'll have to read all ten zillion to figure out which, though. In any case, don't wait until you've done that to come back here and contribute - I've only scratched the surface myself! -- TomRossen

I refactored the above in an attempt to bring it back on topic on 18 Dec 2002. The original is on KnightOfGhostsAndShadows? [deleted -- tr].

Tom, you say that you want to extend the concept of "human" in XP to include managers. That's a worthwhile goal: I feel that XP breaks down at the borders of the programming team. But, in reading your contributions to Wiki, the impression I get is more NotInventedHere than an experience-based expansion of XP. If my impression is wrong, I apologize, but be aware that it's the impression you're making. --JimLittle

Jim - it's a fair cop, but society's to blame (http://wuzzle.org/python/bishop.html). I don't have experience with XP (except for some PairProgramming-disguised-as-mentoring and JUnit on my own personal projects). And I may never get it if I don't figure out a way to introduce it on a project like the one I'm on now, where nobody has any knowledge of it and RUP is the coming thing. I've looked at some of the ... compromises?/adaptations? ... of XP to RUP (suggested to me on my homepage, q.v.), but they don't fit my situation.

This page started out as a wannabe Olympian theoretical synthesis. That was ridiculous, and it deserves not only the NIH epithet, but a charge of arrogance. Right now I'm creeping along low to the ground. But I stand by the term "moderate". If all I have to offer is the claim that the name itself reflects a snubbing of management, so be it. There will always be XP projects when gurus like Ward and Kent and Ron hook up with extraordinary managers. I just don't expect to find them.

It may be a long time before I can make a claim to having anything provably useful. Meanwhile, if the Wiki decides this page should go for whatever reason, it will, and I won't complain. -- tr


Tom, what are your thoughts on why you decided to change the name from moderate to optimistic? -- AnonymousDonor

Optimism seems to me to be intrinsic to XP. Kent and other XP proponents talk about various practices of traditional methodologies as based on fear [if you find the links, put 'em here]. Optimism is the opposite of fear: we believe we'll be able to solve tomorrow's problems tomorrow. An action taken without faith that it will be successful is like a pulled punch - it loses its energy. Optimism is the natural mental state for action.

Moderate was simply a kneejerk reaction to extreme. -- tr

FWIW I second this attribution of motive. -- AnonymousDonor [By "attribution of motive" do you mean "kneejerk reaction"? That's me talking about my own motive, so I don't know if "attribution" is the right word. -- tr] [Fine then ... proper that it's been refined to optimistic, and quite right about attribution Blow this comment away if you want.]{No - I like to keep track of the spots where I've dodged a bullet. Helps me find my mark for the next scene.}

Generally, I think optimism is a powerful tool and I want to explore it further. See the current (20030103) entry in OptimisticProgrammingSkunkworks for more. -- tr

See ExtremeValues for more on courage/optimism. -- AnonymousDonor

Thanks for the link. CourageAggressivenessAndFearlessness, yes, but there's a subtle difference. The word "optimism" doesn't appear on ExtremeValues. More on this to come.... -- tr


I've come back to this page after more than a year because Mark Liberman over at Language Log (http://itre.cis.upenn.edu/~myl/languagelog/) threw it in my face (http://itre.cis.upenn.edu/~myl/languagelog/archives/001359.html).

Just wanted to add the note that I've been in a relatively cowboyish environment for the last year - no XP, no RUP, some JUnit. Maybe I'm an MP-Army-of-One. Not satisfying. - tr


See ThePoetryOfProgramming


CategoryMethodology


EditText of this page (last edited July 8, 2013) or FindPage with title or text search