Extreme Programming

Posted by: admin  :  Category: Programming

Extreme ProgrammingIn the late 1990s, many software developers have started looking for an alternative to the traditional methods of software development, based usually on the cascade model. In spring 2001 a group of experts, the basic principles of lightweight construction technology, which today are known as agile software development, formulated. Key elements of the philosophy of agile development are:

• Focus on human resources involved in the project, including buyers and suppliers. Good team of specialists are properly selected as a promise for a successful future project.

• changing the formal specification for effective communication. Discussions and comments that the basic line of communication between the computer and the buyer and the team

• Iterative development, with a maximum duration of each short iteration, each leading to the release of the fully functional version of the product.

• Flexibility to change – in the first phase of work on the project team does not create a series of strict requirements of a strict schedule to follow. In an agile development environment has changed in each phase of the project can be made.

Extreme Programming is one of the most common agile development methods. His principles were formulated in 1996 by Kent Beck, in an attempt to recover a failure of the accounting system project from one of the giants of the automotive industry. It did not help the project, but XP method has been gaining popularity and most of the software development teams are selected as one of the leading methodology.

Extreme Programming method inherits all the basic principles of agile software development. However, there are some specific practices that are in the agile software development methods:

1st A buyer’s representative will work as part of a project team. It has all the necessary information about the functionality of the main products, which prioritizes the needs and assess the quality of the product.

2nd Stories of users are brief descriptions of use cases, the informal system. In Extreme Programming user stories with acceptance, the only way to specify requirements. All information directly from buyers.

3rd Test-Driven Development – Unit testing is a key to the project to an agile software development. A new piece of code can only be developed to increase the number of unit tests successfully. In fact, this means that before the development of a new test must be based on a return to be prepared, and the development of this specific part of the code must, after all existing and new tests have been completed.

4th The architecture of the system should be as simple as possible. Idea of ​​extreme programming suggests planning for possible future developments. Ideally, you should only support the existing functionality.

5th Refactoring code is needed in relation to the permanent changes in the system architecture. Collective bargaining in the code are encouraged by the extreme programming. Possible errors caused by the transformation are identified by unit tests.

6th All code changes should go into the main tank immediately after passing the test, whereby the integration step.

7th Pair programming is one of the most controversial practices of Extreme Programming. They should increase the overall efficiency of the process and the amount of error.

8th A working week not exceeding 40 hours. This practice is intended to increase the performance of the project team due to the reduced stress and burnout.

After changing the selection of agile software development team great flexibility and communication. To a large extent be described as Extreme Programming was an attempt to create the processes and practices that developers themselves, genuine and lasting. This factor strongly influences the conditions necessary for the successful implementation of the Extreme Programming methodology. Compared with the development practices of other software agile, has extreme programming are some limitations: The development team should not be divided into several parts, but it can work successfully in groups of highly qualified professionals is necessary to ensure a representative side of the buyer on the project that recommended sometimes difficult for non-fixed-price projects washing duration of the project works.