Extreme programming
Ion-Adrian CUZA
First year, Master TI
Introduction
 Extreme Programming is one of several popular Agile Processes.
 Extreme Programming is successful because it stresses customer satisfaction.
 Emphasizes teamwork.
 Improves a software project in five essential ways: communication, simplicity,
feedback, respect, and courage.
 Empowers the developers to confidently respond to changing customer
requirements, even late in the life cycle.
Key points of Agile Methods
 Agile methods are adaptive rather than predictive. Engineering methods
tend to try to plan out a large part of the software process in great detail
for a long span of time, this works well until things change. So their nature is
to resist change. The agile methods, however, welcome change. They try
to be processes that adapt and thrive on change, even to the point of
changing themselves.
 Agile methods are people-oriented rather than process-oriented. The goal
of engineering methods is to define a process that will work well whoever
happens to be using it. Agile methods assert that no process will ever make
up the skill of the development team, so the role of a process is to support
the development team in their work.
Rules
 The most surprising aspect of Extreme Programming is its simple rules.
 Extreme Programming is a lot like a jig saw puzzle.
 There are many small pieces. Individually the pieces make no sense, but when
combined together a complete picture can be seen.
 They are based on sound values and principles.
Practices
 Pair programming - all code is produced by two people programming on one task
on one workstation, planning game - meeting that occurs once per iteration, test
driven development, whole team - customer should be available through every
process.
 Continuous integration, design improvement, small releases.
 Coding standard, collective code ownership, simple design, system metaphor - a
story that everyone (customers, programmers, and managers) can tell about how
the system works.
 Sustainable pace - developers should not work more than 40 hour weeks.
Flow chart
 Customers enjoy being partners in the software process, developers actively contribute
regardless of experience level, and managers concentrate on communication and
relationships.
 Unproductive activities have been trimmed to reduce costs and frustration of everyone
involved.
Links
 http://www.martinfowler.com/articles/newMethodology.html#FromNothing
ToMonumentalToAgile
 http://en.wikipedia.org/wiki/Extreme_programming_practices#Coding_sta
ndard
 http://www.extremeprogramming.org/

Extreme programming

  • 1.
  • 2.
    Introduction  Extreme Programmingis one of several popular Agile Processes.  Extreme Programming is successful because it stresses customer satisfaction.  Emphasizes teamwork.  Improves a software project in five essential ways: communication, simplicity, feedback, respect, and courage.  Empowers the developers to confidently respond to changing customer requirements, even late in the life cycle.
  • 3.
    Key points ofAgile Methods  Agile methods are adaptive rather than predictive. Engineering methods tend to try to plan out a large part of the software process in great detail for a long span of time, this works well until things change. So their nature is to resist change. The agile methods, however, welcome change. They try to be processes that adapt and thrive on change, even to the point of changing themselves.  Agile methods are people-oriented rather than process-oriented. The goal of engineering methods is to define a process that will work well whoever happens to be using it. Agile methods assert that no process will ever make up the skill of the development team, so the role of a process is to support the development team in their work.
  • 4.
    Rules  The mostsurprising aspect of Extreme Programming is its simple rules.  Extreme Programming is a lot like a jig saw puzzle.  There are many small pieces. Individually the pieces make no sense, but when combined together a complete picture can be seen.  They are based on sound values and principles.
  • 5.
    Practices  Pair programming- all code is produced by two people programming on one task on one workstation, planning game - meeting that occurs once per iteration, test driven development, whole team - customer should be available through every process.  Continuous integration, design improvement, small releases.  Coding standard, collective code ownership, simple design, system metaphor - a story that everyone (customers, programmers, and managers) can tell about how the system works.  Sustainable pace - developers should not work more than 40 hour weeks.
  • 6.
    Flow chart  Customersenjoy being partners in the software process, developers actively contribute regardless of experience level, and managers concentrate on communication and relationships.  Unproductive activities have been trimmed to reduce costs and frustration of everyone involved.
  • 7.