One of the agile
software development methodologies is the extreme programming which is quite
popular with the software programmers and developers. The extreme programming
since its advent has been known for the improvement of the quality of the
software products and the projects and their responsiveness to the ever
changing requirements of the customers.
Apart from all this the extreme
programming is known to advocate many frequent releases of the shipped software product in short development cycles i.e., to say it advocates time
boxing.
So we can say that overall it improves the productivity of the whole
development process and also facilitates the introduction of check points where
the new requirements from the customers can be adopted.
Aspects of Extreme Programming
There are some other
aspects of extreme programming few of which have been mentioned below:
1.
Pair programming (programming in pairs)
2.
Extensive code review
3.
Unit testing of the whole code
4.
Avoiding programming of avoidable
features till they are required
5.
Flat management structure
6.
Simplicity of the code
7.
Clarity of code
8.
Adoption of the changing requirements of
the customer
9.
Maintaining frequent communication among
the programmers and with the customers etc.
Drawbacks of Extreme Programming
This methodology took
its name from the ground that the beneficial aspects of the engineering
practices are implemented at their extreme levels. It follows from the idea
that more is better if a little is good. However several potential drawbacks
have been pointed out few of which have been mentioned below:
1.
Unstable requirements
2.
Absence of documented compromises of
user conflicts
3.
Lack of overall design specifications
4.
Lack of design documents
"Extreme programming now
experiences quite different environments from the ones that were present at the
time of its origin. Extreme programming is strictly aimed for the organization
of the people for the production of the high quality software projects and
products." Not only this, the cost of the changing requirements is also reduced
by the means of implementing multiple short development cycles in place of a
long one.
It produces the below mentioned aspects all based up on the agile
programming frame work:
1.
A number of basic values
2.
Principles
3.
Practices
Activities Under Extreme Programming
There are 4 basic
activities that are carried out under the extreme programming process:
1. Coding:
Regarding the extreme
programming it has always been argued that code is the most important aspect of
any program since without it no working program would exist. Coding is the thing
that helps you figure out most of the solutions and navigate through the
programming problems. Code sometimes can be used as a code to demonstrate a
program to the fellow programmers and developers which otherwise might prove to
be difficult. Code is always interpreted in one way and is suppose to be clear
and concise.
2. Testing:
This aspect also follows the
above mentioned idea that more is better if a little is good. It involves the
following tests:
(a) Unit
tests: These are included for the determination of whether the program is working
and giving the outcome as intended. May automated tests are written that can
break the program and if the program passes all these tests successfully, the
coding is declared to be complete. Each piece of the code is tested before
carrying the development process forward.
(b) Acceptance
tests: These tests are included for the verification of the requirements which
the programmers think can satisfy the requirements of the customers.
3. Listening
4. Designing
Extreme Programming Values
1.
Communication
2.
Simplicity
3.
Feedback
4.
Courage
5. Respect
6.
Rules
Basic Principles of Extreme Programming
1.
Feedback
2.
Assuming simplicity
3. Embracing change
No comments:
Post a Comment