Extreme programming (XP) takes this concept to an extreme, writing automated tests (sometimes within software modules) that verify that even tiny sections of the softwares code work, instead of testing just the biggest features. Extreme programming (XP) is a software development methodology that is intended to increase software quality and responsiveness to changing customer requirements.
Extreme programming explained describes extreme programming as a software engineering discipline which organizes humans in order to produce higher-quality software in a more productive way. As a type of Agile software development, extreme programming (XP) advocates frequent releases over shorter development cycles, intended to increase productivity and introduce checkpoints where new customer requirements may be adopted. The difference between extreme programming and more traditional systems development methods is a focus on designing and coding for the needs of the present, rather than those of tomorrow, the following week, or next month.
Extreme programming requires a nonrecurring engineering (NRE) investment in developing new technologies and systems. Extreme-scale computation and data are becoming indispensable for science and engineering that are based on computation and data, promising dramatically new insights about natural and engineered systems. State-of-the-art software engineering techniques will be applied to ensure the developed and deployed software meets the highest standards necessary to guarantee correctness and performance of DOEs scientific codes.
This long-term program is intended to catalyze progress on this scientific frontier, by bringing together leading innovators and pioneers from the fields of applied mathematics (scientific computing, optimization, data analysis, statistics, and more). Computer Science (CS) is understanding how and why technologies work, exploring if and how technologies can solve real-life problems, investigating procedures, creating solutions, and learning about computational systems, programming, data, networks, and their impact on society and individuals