Extreme Programming
Extreme Programming
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.
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.
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:
Programmer welfare
Sustainable Pace
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].