Extreme Programming Up Front Design Methodologies Essay

Decent Essays

Extreme Programming (XP) has spent the past decades under perpetual scrutiny by software developers fixated on up front design methodologies. The idea behind this is simple: if you want to make sure something is well built, you must design it well first, then put it together using reliable tools. For objects such as houses, cars, or tables, of which the design evolves gradually throughout decades, the methods of up front design suffice. Computer programs, on the other hand, are products often made for an industry that evolves at higher rates than any other. For this type of environment, more dynamic methods are required, which is why XP suits as a viable candidate. How design is altered from the traditional up front design method will be …show more content…

“reveals all the intentions”, on the other hand, makes sense under the following train of thought: if something is simple, it is easy to understand, and therefore all or most intentions are clear to the observer. “does not have duplicated code” seems to make things easy to understand, but may not necessarily simplify a program. Finally, “has the fewest number of classes or methods” seems to be the most pertinent to the concept of simplicity. If a system consists of less functional elements than another one but holds the same product, it could be considered simpler. Following this definition, a system that contains the least amount of functional elements than any other, but holds the same product, could be considered simplest. Other than a few definitions of simplicity, Fowler mentions YAGNI, an acronym he claims is one of the “...greatest rallying cries in XP...” (Fowler). It stands for “You Aren't Going to Need it” (Fowler). The idea is summed up by Fowler as a method to only program what is currently needed for the project. This is supposed to allow easy changes to be made when needed. An example: consider the scenario where a calculator is being programmed. Its design incorporates 'addition' and 'multiplication'. Whilst implementing 'addition', it may seem logical to add some of the 'multiplication' features to reduce the amount of future work. Suddenly the client decides to replace 'multiplication' with 'division'. 'multiplication' now has to be removed or

Get Access