• No se han encontrado resultados

Extreme programming has enabled hundreds of programmers and software engineers to work on large projects using agile development methodologies

N/A
N/A
Protected

Academic year: 2023

Share "Extreme programming has enabled hundreds of programmers and software engineers to work on large projects using agile development methodologies"

Copied!
9
0
0

Texto completo

(1)

يسازد زسقول حيثحثلا حلاسسلا نييقت جزاوتسا

ةلاطلا حفسؼوت لأوت خاًايت:لاوا

ةلاطلا نسا

يثٌلادثػ ضىفحه طياٌلا محمد :

حيلك خاهىلؼهو خاثساح :

حقسفلا

\ يىتسولا حثلاثلا :

حثؼشلا :

ماػ

نسقلا خاهىلؼولا نظً :

زسقولا نسا خايجهسثلا حسدٌه :

زسقولا دىك

BCS251

:

زسقولا ذاتسا :

/

د نؼٌولادثػ نيهاستا نيهاستا

ةلاطلل يًوستكلا ديسثلا

[email protected]

:

حيثحثلا حلاسسلا ىاىٌػ :

[Extreme Programming and Agile Development]

يييٌحتوولا حٌجل حفسؼوت لأوت خاًايت:ايًاث

ايلك ما ايئصج حتاشته حهدقولا حيثحثلا حلاسسلا له 1

- نؼً

2 - لا

حلاح يف شاجهسيغ سثتؼيو يثحثلا عوسشولا نيقت نتي لا نؼٌت حتاجلاا

يثحثلا عوسشولا نيقت

نييقتلا ىشىلا

يثسٌلا نييقتلا سصاٌػ م

حيثحثلا حلاسسلل ماؼلا لكشلا 1 حتىلطولا حيولؼلا خاثلطتولا قيقحت 2 حيولؼلا زداصولاو غجاسولا سكري 3 ديج حتاتكلا بىلساوحيىغللا حغايصلا 4

يئاهٌلا نيقتلا حجيتً

(2)

Abstract

In this research I will present the extreme programming that is one of the most agile and most used development method among software development method. But in

extreme programming, quality activities were implemented consecutively with functional requirements. It reduces the speed of continuous repetition and makes the inverse

relationship between quality and agility. Agile development worked with small projects with a few expert teams but not for the big project. It cannot be performed correctly due to scaling and rating problem. Extreme Programming (XP) with improved capabilities allowed agile methods to work efficiently for large-scale enterprises.(XP) was the best documentation and easiest to implement. The systems engineering approach was seen as a gradual coding change. Extreme programming has enabled hundreds of programmers and software engineers to work on large projects using agile development methodologies.

Introduction

With agile methodologies becoming increasingly popular as the "modern"

change of traditional methodologies such as the Waterfall Model, their

achieved and distributed roots go back years. Software engineering has been a very versatile practice and can take many forms from small assignments to mega projects, which last for years. Technologies, complexity, criticality, and work fields may vary greatly. However, One Piece is always part of the game recognized as clients. It could be one person, organization or larger diverse group. Since there are many theories, strategies, and methodologies for software engineering, there are many ways to engage clients.

The best practice for extreme programming is in the telecommunications sector where requirements can be changed and jobs under pressure can be changed. Intense competition between mobile phone companies requires fast and reliable solutions for their large projects. A practical model that can be useful for both the developer as well as the customer who begins the concept of extreme programming. However, due to the lack of the necessary

documentation, it was useful to communicate with the developers with each other and the established interfaces. Design, coding, testing, and publishing are key activities during any software development. Due to the light weight approach, XP eliminates documentation and requirements analysis in detail.

(3)

Therefore, documentation should not be considered an essential part because our main focus in agile development is to define requirements with small but frequent iterations.

During development, no one from the team knows the direction of development even about the final product. We would pick up the test cases near to original and implement them on software which were later recognized as final acceptance test for working. Roles of users could help to identify the test cases according to their skills and goals that they want to achieve. (Ali, 2016)

-The Element of Research : 1-What is the Agile?

2-Agile Methods.

3-What is Extreme Programming?

4-Extreme Programming Values.

5- Extreme Programming Principles.

What is the Agile?

‘Agile’ word means:

1-Able to move your body quickly and easily.

2-Able to think quickly and clearly.

In business, "agile" is used to describe methods of planning and doing work where it is understood that making changes as needed is an important part of the job. Commercial “agility” means that a company is always in a position to take into account market changes.

In software development, the term "Agile" is adapted to mean "the ability to respond to changes - changes from requirements, technology and people."

“In an introduction to the special issue on agile methods in IEEE

Computer in 2003, Williams and Cockburn (2003) state that agile software

(4)

development “is about feedback and change”, and they emphasize that software development is an empirical or nonlinear process, where short feedback-loops are necessary to achieve a desirable, predictable outcome”

(Dingsøyr, Dybå, & Moe, April 2010).

-Other Definition:

-Agile – denoting “the quality of being agile; readiness for motion; nimbleness, activity, dexterity in motion” (Abrahamsson, Salo, Ronkainen, & Warsta, 2002).

A manifesto (from the Agile Alliance):

We are revealing better ways to develop software by doing this and helping others do it.

Through this work we have come to value:

1-Individuals and interactions over processes and tools 2-Working software over comprehensive documentation 3-Customer collaboration over contract negotiation 4-Responding to change over following a plan

That is, while there is a value in the elements on the right, we value the elements on the left more

Agile Methods

1-Extreme Programming (XP): has evolved from the problems caused by the

long development cycles of traditional development models (Beck, 1999a). We will present this method with more details in another paper.

2- The Scrum: An approach has been developed to manage the system development process.

(5)

3- The Crystal family of methodologies: It includes a number of different

methodologies for selecting the most appropriate methodology for each individual project.

4- Feature Driven Development (FDD): Is an agile and adaptive approach for

developing systems. The FDD approach does not cover the entire software

development process, but rather focuses on the design and building phases (Palmer

& Felsing, 2002).

5-The Rational Unified Process(RUP): It is an iterative approach to object oriented systems, and it strongly embraces use cases of modeling and building system requirements.

6- Dynamic Systems Development Method( DSDM):Is a non-profit organization

A framework not owned by Rabid Application Development (RAD) Development, maintained by DSDM the consortium.

7- Adaptive Software Development (ASD): It mainly focuses on problems in developing complex and large systems.

8- Open Source Software (OSS) development : It has many similarities to other (agile) software development methods, although it also has its own characteristics.

9-Other Agile Method : In the previous subsections, several ways to produce software are in agile method displayed.

What is Extreme Programming?

Extreme Programming (XP) is the most noticeable among new generation of light-weight software development models as it has small teams to develop software with changing requirements (Laubacher & Malone, 2002).

Some definitions:

(6)

Extreme Programming (XP):Is the most widely used agile methodology. XP shares the values espoused by the manifesto but goes further to specify simple set of practices (Lindstrom & Jeffries, 2003).

Extreme Programming(XP):Is a lightweight, efficient, low-risk, flexible, predictable, scientific and enjoyable way to develop a program.

Extreme programming (XP):Is designed and developed to meet the specific needs of software development by small teams in the face of vague and changing requirements. Extreme programming is one of the agile software development methodologies. Provides values and principles to guide team behavior. The team is expected to organize itself. Extreme programming provides specific basic practices where:

Each practice is simple and self-complete.

2-Combination of practices produces more complex and emergent behavior.

Extreme Programming Values

Extreme programming (XP) is dependent on values. The rules we just

examined are the natural extension and the result of maximizing our values. XP isn't really a set of rules but rather a way to work in harmony with your personal and corporate values. Start with the XP values listed here and add your own values by reflecting them in the changes you make to the rules.

1-Simplicity: We will do what is needed and asked for, but no more. This will maximize the value created for the investment made to date (Wells, 2009). We will take simple, simple steps to our goal and reduce failure when it occurs. We

(7)

will create something that we can be proud of and maintain in the long run at affordable costs.

2-Communication: Everyone is part of the team and we communicate face to face

daily. We will work together on everything from requirements to code. We will create the best solution to our problem that we can together (Wells, 2009).

3-Feedback: We will take every iteration commitment seriously by delivering

working software (Wells, 2009). We show our program early and listen a lot after that carefully and make any required changes. We'll talk about the project and adapt our process to it, not the other way around.

4-Respect: Everyone gives and feels the respect they deserve as a valued team member (Wells, 2009). Everyone contributes to value even if it is just enthusiasm.

The developers respect customer experience and vice versa. Management respects our right to accept responsibility and to have authority over our work.

5-Courage: We will tell the truth about progress and estimates (Wells, 2009). We

do not document excuses for failure because we plan to succeed. We are not afraid of anything because nobody works alone. We will adapt to changes as they occur.

Extreme Programming Principles

Values are important, but they are ambiguous, meaning that it may not be possible to determine if something is valuable. For example, something simple from a person’s point of view can be complicated from another person’s point of view.

Hence, in extreme programming, the basic principles are derived from values so that development practices can be verified against these principles. Each principle embodies values and is more realistic, i.e. fast reactions - either you have it or not.

The fundamental principles of Extreme Programming are:

(8)

1-Rapid feedback:Team members understand and interact with the comments made immediately.

2-Assume simplicity:Developers need to focus on the important job right now and follow the YAGNI principles (you don't need it) and DRY principles (don't repeat yourself).

3-Incremental change:Small changes made to a step-by-step product work better than large changes at once.

4-Embracing change:If the customer believes that the product needs to

change, programmers must support this decision and plan how to implement the new requirements.

5-Quality work:A team that works well, makes a valuable product and feels proud of.

Conclusion

Extreme programming and other agile development methods have been applied in the past more and more a necklace. It does not relate to methodologies that are suitable for all projects, as they find their place smaller team development.

It can be used in projects that do not have a clear initial definition, as customers do not have it a clear idea of an output product. Extreme programming does not

confirm development documentation it is strict control. The essential component is a high level of communication between all team members and clients as well as frequent iterations. The advantage of this methodology was the ability to quickly interact with customer changes in requirements and the possibility of adapting the program to users with specific disorders, even at the expense of removing a much of the code is already written. The methodology prefers a quick response to change before completing the plan, which proved important in the case of software

developed. There were a lot of changes and new ones requirements during

development, and its solution was more important to output quality than follow-up Development schedule.

(9)

References

Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2002). Agile Software Development Methods:.

1-

2-Ali, M. Z. (2016). Enhancement in Agile Development Methodologies Using Extreme Programming to Overcome Large Scale Firm’s Implementation Problem. International Interdisciplinary Journal of

Scholarly Research (IIJSR).

3-Beck, K. (1999a). Embracing Change With Extreme Programming. IEEE Computer 32(10) , 70-77.

4-Dingsøyr, T., Dybå, T., & Moe, N. B. (April 2010). Agile Software Development: An Introduction. 5.

5-Laubacher, R., & Malone, T. W. (2002). Temporary assignments and a permanent home: A case study in the transition to project-based organizational practices. MIT Center for Coordination Science.

6-Lindstrom, L., & Jeffries, R. (2003). Extreme Programming and Agile Software Development Methodologies.

7-Palmer, S. R., & Felsing, J. M. (2002). A Practical Guide to Feature-Driven Development.

8-Wells, D. (2009). Extreme programming Values .

Referencias

Documento similar

 Etiología: senil (la más frecuente, relacionada con múltiples factores: irradiación solar, factores nutricionales, metabólicos, predisposición familiar, etc.),