Sie sind auf Seite 1von 6

Faculty of Science, Engineering and Computing

Dependable Systems.
E-portfolio 1
Deadline: 7th November 2016

Katie Beckett
K1457923

Intro.
Extreme Programming is one of the available agile approaches, also
known as XP, that focuses on an entire software development team of
people working together to reach a common goal. The outcome of using
XP is to achieve outstanding results all of which are more effective and
efficient with less defects than expected. Another outcome is to bring
transparency and clear communication to the software development, this
means that the method aims to create a system that meets the needs of
everyone who encounters the software, for example; sponsors, managers,
testers, users and programmers. Projects suited to Extreme Programming
can be those that involve new prototype technology or where the
requirements change at the drop of a hat. These are usually small and
more easily managed projects through informal methods.

Figure 1 Source: http://www.extremeprogramming.org/

Extreme programming relies on teamwork and on the superlative


application of different programming techniques. An almost behind the
scenes philosophy based on the values of communication between peers,
feedback, simplicity and respect for everyones needs. This agile approach
includes:

Short developmental cycles, this results in early, concrete and


continuous feedback.
A quick incremental planning approach, that is expected to evolve
throughout the life cycle of the project.

Gives the ability to schedule a flexible plan, with the implementation


of functionality responding in real time to the changing needs of the
business.
Relies on automated tests written by programmers to monitor the
progress of development. This also allows programmers to catch
defects early and evolve the system as needed.
Relies on communication between end users, managers etc to
convey the structure and intent of the system.
Design process lasts as long as the life span of the system.
Works with both the long term and short term needs of the teams
involved.

This approach is the best use of the agile method that will help
programmers in a secure and effective way towards the end of a project.
Team.
In extreme programming there is more than one person who is a part of
the team that gets to decide what requirements may go into the system.
The team must include a business representative, also known as a
customer, who provides requirements, sets priorities and steers the
project. It is preferred if the business representative is an end user who
will use and know the domain but also what is needed to be improved
upon. The team will also consist of programmers, who usually work in
pairs, to create the system. In the team of programmers there may be a
head of them, who helps keep the team on track and facilitates the
process. Analysts will also have a job in helping the business
representative define the requirements. Finally, there may be a manager,
this team member provides resources, handles external communication
and coordinates activities. However, none of the roles are exclusive to the
property of just one individual, everyone on the team contributes in any
way that they can. It is said that the best extreme programming teams
have no specialists but only general contributors with special skills.
Planning.
The agile method, Extreme programming, predicts what will be
accomplished by the scheduled deadline and devising a plan for what to
do next. Extreme programming is more focused on how to drive the
project in the right direction rather than focuses on exactly what and
when things will be completed. There are two steps in extreme
programming that are key to the projects continuance.
Release planning.
Release planning is evaluating the business representative wants and
needs for a project and discussing the difficulty that these features will
present when implementing them. The business representative will
already be informed of costs, knowledge of which features are important,
and they present the plan for the project. Neither the priorities or the

estimates for when the features will be complete are precise until the
team begins to work on the project. The plan is revised periodically.
Iteration planning.
Iteration planning is where a planning meeting is called at the beginning
of each iteration to produce the plan of programming tasks. Each iteration
lasts anywhere from 1 to 3 weeks. User stories are chosen for each
iteration by the business representative from a release plan in order of the
most important. A release plan specifies which user stories are going to be
implemented for each system release and gives dates for those releases.

Figure 2 Source: http://www.extremeprogramming.org/map/project.html

If the business representative feels progress is insufficient, which is


entirely visible to anyone who wishes the view the plans, they have the
control of cancelling the progress. Extreme programming is able to deliver
more of what is needed with less pressure and stress.
Testing
Before programmers add a feature into the project, they write a test for it.
If the test is successful, the feature is added and the test is
removed/done. There are two basic tests in Extreme Programming.
1. Unit Testing. These are automated tests written by
programmers/developers to test functionality as they create the
feature. Each test unit usually only tests a single class or a small
group of classes, they are also typically written using a testing
framework.
2. Acceptance Testing. These are specified by the business
representative to test the overall system is functioning successfully
and as specified by the business representative. Acceptance tests
usually test the entire system or a larger part of the system, a larger
area than the unit testing. When all the acceptance tests pass for a

given user story, that story is complete. Tests are run manually but
it is more ideal for these to be automated.
Designing & Practices.
Extreme programming has four basic activities that are performed within
the process:
1. Coding.
Coding can be creating diagrams that will generate code, scripting
web-based systems or coding a program that needs to be compiled.
Coding can used to find a simple but effective solution to a problem.
For example, using one simple code to fix all problems instead of
using several alternatives. Coding can also be used to communicate
thoughts about problems with the system, or demonstrate problems
between programmers.
2. Listening.
Programmers do not usually know anything about the business side
of the system under development. The business representative
determines the functionality which requires the programmers to
listen to the BR. Understanding and communication are key to
building the best system.
3. Designing
Without a pre-planned design, a system can become too complex
and difficult to use. The dependencies within the system will not be
obvious to those who use it. This can be avoided by designing a
structure that organises the logic within the system. A good design
will avoid dependencies and this means that changing one part of
the system will not affect other parts.
Practices
Extreme Programming has 12 practices:

Fine scale feedback


Pair Programming
Planning Game
Test Driven Development
Whole Team
Continuous process
Continuous Integration
Design Improvement
Small Releases
Shared understanding
Coding Standards
Collective Code Ownership
Simple Design
System Metaphor

Programmer welfare
Sustainable Pace

In conclusion, Extreme programming can be an extremely helpful and


useful for intricate and complex systems within businesses. It is noted that
teams generally work well together and this can be far more important for
development than any other process. Agile and XP present a fundamental
change to the way we manage projects, this expands scope and the
possibility of completing projects to the best of our abilities.

References
Don Wells. 2009. Iteration Planning. [ONLINE] Available at:
http://www.extremeprogramming.org/rules/iterationplanning.html. [Accessed 6
November 2016].
Ron Jeffries. 1998. What Is Extreme Programming? [ONLINE] Available at:
http://ronjeffries.com/xprog/what-is-extreme-programming/. [Accessed 6
November 2016].
Kent Beck with Cynthia Andres. 2005. Extreme Programming Explained - Second
Edition. [ONLINE] Available at:
http://ptgmedia.pearsoncmg.com/images/9780321278654/samplepages/978032
1278654.pdf. [Accessed 6 November 2016].
Select Business Solutions, Inc.. 2016. What is Extreme Programming? (XP) .
[ONLINE] Available at: http://www.selectbs.com/process-maturity/what-isextreme-programming. [Accessed 6 November 2016].