Hands-On Software Engineering with Python
上QQ阅读APP看书,第一时间看更新

Extreme programming

The most noticeable aspect of Extreme Programming (XP) is probably the paired programming approach, which can be an integral part of its implementation. The intention/expectation behind it is that two developers, using one computer, work on the code, which, ideally improves their focus, their ability to collaborate, solve any challenges more quickly, and allows for faster, better, and more reliable detection of potential risks that are inherent to the code being produced. In a paired scenario, the two developers alternate with some frequency between being the person writing the code and the person reviewing it as it's being written. Not all XP implementations use the paired approach, but when it's not in play, other processes, such as extensive and frequent code reviews and unit testing, are necessary to maintain at least some of the benefits that are lost by not using that option.

XP as a methodology may not be able to handle highly complex code bases or highly complex changes to code bases without sacrificing some of its development velocity. It also tends to require more intensive planning and requirements than the more just-in-time approaches such as Scrum and Kanban, since the paired developers should, ideally, be able to work on code in as autonomous a fashion as they can manage. The more information the pair team has up-front, the less time they will have to spend trying to track down information they need, and the less disruption will occur to their efforts. XP doesn't really have any method for tracking progress, or keeping efforts and roadblocks visible, but adopting or bolting on something from some other methodology is certainly possible.