Consideration of Alternatives -- Concentration on a limited set of well-formed methods and approaches tends toward efficiency and effectiveness. Having too many alternatives tends to confuse the issue at hand. -- DonaldNoyes
Some considerations in selecting from alternatives
One may reduce excessive alternatives by having previously thought out objective criteria which then can be used to evaluate the alternatives. Examples of some such criteria follow:
- Would doing this inflict injury on anyone, damage their ability to live their lives as they choose, or make life worse for people who didn't choose to be involved?
- Would doing this mean giving up likely small scale, short term success for a risky chance at long term future success? If so, is there a reasonable chance of the long term success being worth the present sacrifice?
- Would doing this mean giving up one's word or a commitment made earlier?
- Would doing this be creating infrastructure for a hoped-for future building project, when there is no current demand for that type of project? (YouArentGonnaNeedIt)
- Would doing this in addition to what is already being done cause dilution of effort and confusion of priorities as well as complications and necessity for reworking of existing operational components?
- Would doing this create a quagmire of confusion and leave a tangled mess for those who may have to deal with it in the future? If this might be the case, how can additional people be brought along to clean it up as it is undertaken rather than leaving a pile of bugs for later? (PairProgramming, UnitTests)
- Would doing this take us away from our core competencies? If so, would our likely learning curve let us effectively offer a higher value product than those who are already specializing in the area? Would that new expertise be more valuable than doing more of what we are already excellent at doing?
- How many people would be affected if we succeed? In what ways would their lives be better? What would this mean to society?
- Would it be possible to segment and simplify how the program works by discovery of just how the user could or will use it? (Taking small steps instead of giant leaps.)
These considerations will make XP work simpler by taking XP practices seriously.
Related: