Extreme programming
|
Posted On :
Jun-04-2010
| seen (449) times |
Article Word Count :
736
|
|
Extreme programming was created as an attempt to describe the processes and practices that appear themselves in effective and consolidated developers. This factor greatly influences the terms, which are necessary for successful implementation of Extreme
|
In the late 1990-th a lot of software developers started seeking for an alternative option for a traditional software development methodologies, which were as a rule based upon waterfall model. By the start of 2001 a group of experts has formulated basic principles of lightweight technologies, which are now known as agile software development. Key elements of the agile development philosophy are as following:
• Focus on human resources involved into the project, including both buyers and providers. Successful teamwork of correctly selected specialists is considered to be a pledge of future project success.
• Shift from formal specification to effective communication. Discussions and feedback make a basic line in communication between the team and the buyer, as well as within the team
• Iterative development with maximally short duration of every single iteration, each of them resulting in release of fully-functional product version.
• Flexibility towards changes – at the first stage of work on project the team does not set up a set of severe requirements to follow a strict plan. In agile development environment changes can be made at any project stage.
Extreme programming is one of the most wide-spread methodologies of agile software development. Its main principles were formulated in 1996 by Kent Beck as an attempt to recover a failing project of the accounting system for one of the giants of automobile industry. It did not help the project, however XP methodology has already gained popularity and lots of software development teams have chosen it as a leading methodology.
Extreme programming methodology inherits all basic principles of agile software development. But there are a few specific practices that belong to this agile software development methodology:
1. A representative of the buyer is working as a part of a project team. He possesses all necessary information about key product functionality; he sets the priorities among requirements and evaluates the product quality.
2. User stories are short informal descriptions of system use cases. For Extreme programming user stories are, along with acceptance tests, the only way to specify the requirements. All other information is obtained directly from the buyer.
3. Test driven development – unit tests are of a key importance for the project developed on a basis of agile software development. A new portion of code can be developed only to increase an amount of successful unit tests. In fact, it means that before developing a new function a corresponding test should be prepared, and development of this specific part of code should be completed only after the start of passing new and all already existing tests.
4. System architecture should be as simple as possible. Extreme programming idea does not recommend planning in regards to possible future upgrades. Ideally, it should only support existing functionality.
5. Code refactoring is required in terms of constant changes in system architecture. Collective working on code is encouraged by Extreme programming. Possible bugs caused by refactoring are detected by unit tests.
6. All changes in code should get into the main repository immediately after passing tests, which allows avoiding integration stage.
7. Pair programming is one of the most contradictory practices of Extreme programming. It is supposed to increase general effectiveness of the process and to reduce the amount of bugs.
8. A weekly working time should not exceed 40 hours. This practice is intended to increase performance of the project team due to decreased stress and exhaustion.
Having chosen agile development software teams switch to larger scale of flexibility and communication. To a large extend, Extreme programming was created as an attempt to describe the processes and practices that appear themselves in effective and consolidated developers. This factor greatly influences the terms, which are necessary for successful implementation of Extreme programming methodology. In comparison to other agile software development practices, Extreme programming has certain restrictions: the developers team should not be split into few parts; it can work successfully only in groups of high-skilled professionals; it is necessary to have a representative of the Buyer’s side working on the project, which is sometimes challenging; it is not recommended for fixed-price projects due to washed off project timeframe. However, regardless of above-mentioned restrictions, Extreme programming can successfully be applied in favorable conditions. Due to extremely low budget spends, this agile software development practice may demonstrate a high efficiency level.
|
|
Article Source :
http://www.articleseen.com/Article_Extreme programming _21124.aspx
|
Author Resource :
The article author is full-time professional information technology writer, primarily covering agile development methodologies. The author has published writings on, bug tracker systems, agile development software , agile tools, practices and iterative development.
|
Keywords :
bug tracker, agile development software , agile tools ,
Category :
Computers
:
Software
|
|
|