ExtremeProactivity is what is often called "courage" or "aggressiveness" of "fearlessness" in XP. It is one of the
ExtremePrinciples XP uses to achieve its goal to
EmbraceChangeContinuously.
I tend to categorize the various ways to respond to change (
EmbraceChange) as follows:
- Inactive:
- Doesnt do anything about it. Pretend it doesnt exist; Ignore it and maybe it will go away (Psychologists call this denial - see the FiveStagesOfGrief ;-)
- Reactive:
- Wait to do something about it until it kicks you in the seat of the pants; Then start running around in a frenzy and do a quick rush job or hack-job.
- Responsive:
- Respond to it very quickly and take action as soon as you are made aware of the problem.
- Proactive:
- Make yourself aware of the problem (or potential problem) and respond to it before others have to bring it to your attention.
I would consider the description of
CollectiveCodeOwnership to be a clear example of
ExtremeProactivity. You dont wait for the "code-owner" to do it. If you perceive the problem, you address it right then and there.
Some might consider
YouArentGonnaNeedIt (YAGNI) as an example where XP recommends being reactive over being proactive. I would disagree. I think YAGNI is an example of
ExtremeProactivity tempered by
ContinuousSimplicity. YAGNI is talking about waiting to add something to the design because it is more of a "possible want" rather than a "definite need" (see
ExtremeNeed). There's no problem yet, just a possibility that might or might not turn into a need someday.
CollectiveCodeOwnership tells you to
fix a problem yourself when you see it; it does not tell you to add something to fulfill a need that hasnt been asked for yet.
So I would say YAGNI is about being extremely proactive with regard to
simplicity!