Meta Extreme Way

''MetaExtremeWay remains a controversial subject. This page has seen several large edits in its recent history, and no one knows just when it will stabilize. Caveat Lector.


The MetaExtremeWay is Simplicity, Communication, Testing, Aggressiveness applied to the development process.

Simplicity
Aggressively make the simplest modifications to the process that could possibly work. Do only those process things that are discernibly contributing to progress (Testing). Don't just add process, RefactorYourProcess? to keep it simple.

Communication
Make sure that everyone knows what they need to know, when they need to know it. Don't invest in knowing things you don't need to know, or in knowing them before you need to know them. Do invest (simply and aggressively) in finding out, when the time is right. Don't invest in communicating things that don't need to be communicated, or to PeopleWhoDontNeedToKnow them.

Testing
Aggressively evaluate what is happening and communicate the results to those who need to know. Use the results of testing to FeedBackIntoTheProcess?, improving it just as you would improve the code based on your tests.

Aggressiveness
Always always StayOnTopOfTheProcess?, just as you always stay on top of your code. Listen to the people, and to the system. If it hurts, fix it, simply, communicate the fix to those who need to know, and test the result.


The MetaExtremeWay is the ExtremeWay. It's recursive. Do what you do, as simply as possible. Maximize learning and the communication thereof. Be aware, always, what you are doing. Measure where you must, as simply as you can to get what you really need to know. When things deviate from where you know or feel they should be, make simple changes to your process to bring it back on track. If your meta-work isn't like your work, fix the meta-work. Recur. -- RonJeffries


The ExtremeWay is to not theorize about how it might in principle be if the world were otherwise, it is to design it here and now for here and now. -- AlistairCockburn


I will say that ExtremeProgramming includes always and explicitly the idea that you are doing and watching your doing at all times. You are always looking for what you can add, delete, or change about your process to make it work better for everyone. It arose from WardAndKent doing and reflecting, together and apart, and teaching others both to do likewise and reflect likewise. -- KentBeck


MetaExtremeWay: Remove everything that isn't creating the product. -- RJ


The practices all appear to drive toward a group of people easily and quickly understanding a program (or part of a program) well enough to change it.

They also appear to drive away from the need to completely understand a problem (or even its solution) before coding begins. This is different from what I was taught, but my experiences so far show it to be true. I think the why is in this non-traditional understanding. -- BillJamison


One pattern I've noticed is that XP is rooted in observations about relative costs. Refactoring is cheap, so it is OK to refactor often. Experimentation is cheap (with the right system), so experiment often even in preference to theorising. Testing can be made cheap with the right infrastructure (e.g. automated UnitTests). Continuously integrating is cheaper than you may realise.

People may be surprised to learn that these things truly are cheap. Or they may know that, but act as though they don't - they may not apply the consequences aggressively enough. And of course, in some environments they may not be cheap at all, and XP as she is practised there will look different to normal (although will still conform to MetaXp? (or maybe XP itself, depending on your definition)).

-- DaveHarris

People may be surprised' - the point of that is to identify how and why XP differs from other methods. If indeed it does differ. Why do you think it took so long for XP to appear? Is the XP difference due to new data, or is a new response to old data?

Because another pattern which strikes me is that XP is full of tautologies. Of course use the simplest process. No-one wants gratuitous complexity. Every serious process is the simplest process its proponent thought was possible. -- DaveHarris


I see what Alistair is saying above. Reminds me of a Zen thing, and its commentary by R.H. Blythe:

A monk asked, "What is the True Eye of the Law?" Chokei said, "I have a favor to ask of you: don't throw sand around!"

Commentary: People ask why and how as an excuse for not doing what they know they should do. In some ways illusion, as Nietzche said, is life-giving, and we may tell a lie until it becomes the truth, but such truths are not fundamental. We have to learn to look with the eye, and the only way is to keep on looking, looking at a snake until it ceases to be repulsive, looking at a naked woman until she ceases to be attractive, and until snakes and women become supremely interesting.

-- MichaelFeathers (agrees but also likes to get analytical)


Yes. I also like to get analytical... I just recognize that I am not in XP when I do that... and that is fine, too, for me. -- AlistairCockburn


EditText of this page (last edited December 4, 2005) or FindPage with title or text search