10 Defining points of Extreme Programming

From: http://itspice.net/cms/software-engineering-processes-standards/10-defining-points-of-extreme-programming

 

Extreme Programming (XP) is a set of guidelines that make software development more efficient and more flexible. Importance is given to leaner processes and team work. When the requirements change, the system can change easily because of the simplicity of the process and frequent testing feedback.
xp1
1) Smart Planning
In software development XP planning addresses two key questions which are predicting what will be accomplished by the due date and determining what to do next. The emphasis is on direction finding the project, which is quite straightforward rather than on exact prediction of what will be required and how much time it will take which is quite difficult. There are two key steps in XP addressing these two questions:

 

a) Release Planning
In this planning the Customer presents the desired features to the programmers and the programmers calculate their difficulty. The Customer lays out a plan for the project with the costs estimates and with knowledge of the importance of the features. Initial release plans are necessarily imprecise because until the team begins to work neither the priorities nor the estimates are truly solid. Even the first release plan is accurate enough to make decision however XP teams revise regularly the release plan.

 

b) Iteration Planning
It is the practice in which the team is given direction every week. XP teams develop software in two-week iterations, delivering software at end of iteration. The Customer presents the features desired for the next two weeks during Iteration Planning. The programmers divide them down into different tasks and estimate their cost. Based on the amount of work accomplished in the previous iteration, the team decides for what will be done in the current iteration.

 

2) Planning Small Releases
XP teams practice small releases in two different ways:
First the team releases tested, running software, delivering business value chosen by the Customer. The Customer uses this software for evaluation or even release to end-users. The most important aspect is that the software is visible to the customer at the end of every iteration. This keeps everything visible, open and tangible to customer.

Second, XP teams release design of software to their end users frequently. XP Web projects release daily in house projects or more frequently.

 

3) Project Metaphor
Extreme Programming teams develop a common view of how the program works which is called as “metaphor”. The metaphor is a simple suggestive description of how the program works. XP teams use a common name system to ensure that everyone understands how the system works and where to look to find the functionality you’re looking for.

 

4) Continuous Integration
XP teams build and integrate the software design system multiple times everyday. This maintains all the programmers on the same page and enables very rapid growth. Team integrating more regularly tends to reduce integration problems that plague teams who integrate less often.

 

5) Simple Design
XP teams use simple design to build software. An XP team maintains the design, which exactly implemented for the current functionality of the system.
In XP design is not a one-time thing. It is an all time thing. There are certain design steps in release planning and iteration planning plus teams engage in quick design sessions and design revisions through the course of the entire project. In an incremental, iterative process like Extreme Programming, good design is very important. That’s why there is so much concentration on design throughout the entire development of software.

 

6) User Testing
The XP Customer defines one or more automated tests to show that the feature is working as a part of presenting each desired feature. The team runs these tests and uses them to prove to the customer that the feature is implemented correctly. Automation is used in the press of time to skip manual tests.

In best XP teams the customer tests are same as programmer tests: once the test runs correctly the team keeps it running correctly thereafter.

 

7) Controlled Refactoring
XP teams improve the development of the software throughout its design cycle. This is done by maintaining the software clean with high communication, simple, complete and without duplication.

 

8 ) Pair Programming
All development of software in XP is built by using two programmers: sitting side by side and at the same machine. This practice guarantees that at least one programmer reviewed all development code and which results in better design, better testing and better code.

It is looking like two programmers doing “one programmer’s job”, but the reverse is true because pairing produces better code in the same time as programmers working singly. Pair programming offer better code and tests, serves to communicate knowledge throughout the team. As pair programmer uses to switch then everyone gets the benefits of everyone’s specialized knowledge.

 

9) Collective Ownership on Deliverables
In collective code ownership any pair of programmers can improve any code at any time. This means that all code gets many people’s attention, which improves code quality and reduces defects. There is another important advantage is that when code is owned by particular individuals then required features may be put in the wrong place.

 

10) Improved Standard and Quality
For a team to work in pairs and to share ownership of all the code; all the programmers should write the code with some rules that make sure the code communicates clearly.
XP teams use a common coding standard so that all the code in the system looks as a single individual wrote it. The specifications of the standards are not important but important is that all the code looks familiar in support of collective ownership.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值