jagomart
digital resources
picture1_Extreme Programming Pdf 187756 | 55938a7eab601


 161x       Filetype PDF       File size 0.08 MB       Source: www.davidpublisher.com


File: Extreme Programming Pdf 187756 | 55938a7eab601
computer technology and application 5 2014 15 20 d david publishing extreme programming strengths and weaknesses ahmad dalalah computer networks quality assurance consultant university of hail hail saudi arabia abstract ...

icon picture PDF Filetype PDF | Posted on 02 Feb 2023 | 2 years ago
Partial capture of text on file.
              Computer Technology and Application 5 (2014) 15-20                                          D 
                                                                                                              DAVID  PUBLISHING 
              Extreme Programming: Strengths and Weaknesses 
              Ahmad Dalalah 
              Computer Networks, Quality Assurance Consultant, University of Hail, Hail, Saudi Arabia 
               
               
               
              Abstract: Meeting deliverable deadline is a critical issue for successful organization. Last minute adjustments characterize software 
              development due to many reasons including not testing thoroughly. XP (Practicing Extreme Programming), which is an agile software 
              development methodology, gives rise to the issue of pair programming. This paper aims at discussing the strengths and weaknesses of 
              an Extreme Programming methodology by examining the characteristics of the 12 software development practices of the XP 
              methodology. Working together will incur in a highly reliable functionalities to release. Furthermore, moving people around will allow 
              the team to keep track of the whole project. 
               
              Key words: Extreme Programming, release, exploration phase, system metaphor. 
               
              1. Introduction―What Is Extreme code ownership, and testing. Testing includes both 
              Programming?                                                unite testing and acceptance testing. These are 
                 XP (Extreme Programming) is an agile software             well-known common software development practices 
              development methodology. It is a lightweight                 but XP takes these practices to their extremes.  
              methodology combining a set of existing software               In addition to these 12 practices: XP has a number of 
              development practices [1]. XP tends to rapidly develop       supporting practices. These supporting practices include: 
              high-quality software that provides the highest value        do the simplest thing that could possibly work, develop 
              for the customers in the fastest way possible.               what is immediately required to meet customers need, 
                 Extreme Programming is based on values of                 coaching to help the team keep in track. 
              simplicity, communication, feedback, courage, and              This paper is organized as follows: Section 2 
              respect, which was newly added. It works by bringing         discusses the practices in the planning phase; Section 3 
              the whole team together in the presence of simple            discusses the practices in the designing phase; Section 
              practices, with enough feedback to enable the team to        4 discusses the practices in the coding phase which is 
              see where they are and to tune the practices to their        the main phase of the XP methodology; Section 5 
              unique situation [2].                                        discusses the testing phase, this phase includes the unit 
                 Extreme Programming consists of four main phases:         testing and the acceptance tests; and Section 6 
              planning, designing, coding and testing. Each of these       concludes the report and provides some suggestions for 
              phases includes a number of rules and practices. There       future work. 
              are 12 practices: on-site customers, planning game,          2. Planning 
              small releases, simple design, system metaphor,                The planning phase begins by writing users stories. 
              re-factoring, coding standards, pair programming,            User stories serve the same purpose as the use-cases, 
              40-hours work week, continuous integration, collective       but are not the same [3]. User stories are written by the 
                                                                           customer and are used to create time estimates for 
                Corresponding author: Ahmad Dalalah, Ph.D., research       release plan. The release plan is then used to create 
              fields: computer networks and software engineering. E-mail: 
              a.dalalah@uoh.edu.sa. 
               16                              Extreme Programming: Strengths and Weaknesses 
               iteration plans for each of the iterations in the product     planning and iteration planning. The planning game 
               life cycle.                                                   tends to create a time estimate for the release plan. The 
                 The development team needs to release small                 release plan is then used to create iteration plans for 
               releases, iterative versions, to the customers often.         each of the iterations. Release planning is a practice 
               After the first release, the project velocity is calculated.  where the developers and the customers decide on 
               The project velocity is a measure of how much work is         which features will be included in which release and 
               getting done on your project [3]. The velocity is used to     when it will be delivered. The programmer gives a cost 
               decide the number of iterations and the time estimates        for each of the stories given by the 
               for each of the iterations. Iterative development adds        customer—exploration phase. The cost is an estimate 
               agility to the development process..                          of the story difficulty and the time required to develop 
                 One of the XP principles is to move people around.          the story. Using the cost estimates, and with knowledge 
               This is done to avoid any knowledge loss that might           of the features importance, a plan for the project is laid 
               cause a coding bottleneck.                                    out and a commitment is done to deliver the features in 
                 The next subsections introduce three practices of the       the date agreed upon commitment phase. The plan is 
               XP methodology used in the planning phase, these are          not precise as the cost and priorities are not solid. 
               the on-site customers, the planning game, and small           However, the release plan is revised frequently when 
               releases. For each of these practices, each sub-section       required steering phase. 
               explains the main idea of the practice and discusses the         During iteration planning, the programmers’ break 
               strengths and weaknesses of the practice.                     down the features provided by the customers into tasks, 
               2.1 On-Site Customers                                         and estimates their cost. Based on the amount of work 
                                                                             accomplished in the previous iteration, the team signs 
                 On-site customer means to include real life                 up for what will be undertaken in the current iteration 
               customers in the development process. The customers           [2]. This gives directions to the team every couple of 
               will be always available to answer questions, provide         weeks.  
               the requirements, set the priorities, and steer the project      The planning game is very simple, yet it provides 
               [4].                                                          very good information about what has been done and 
                 As a result, this will ensure the customers’                what could be accomplished in a two weeks period. It 
               satisfaction by including them in and will avoid              also provides an excellent steering control for the 
               frustration caused by negative feedback caused by             customers. The customers are aware of the progress of 
               misunderstanding the requirements.                            the project, and whether the progress is sufficient or 
                 On the other hand, it is not realistic to assume that       not. 
               the customers will be available all the time. The on-site        On the other hand, progress is so visible, and the 
               customer is an ideal situation. Having on-site                ability to decide what will be done next is so complete, 
               customers can sometimes be difficult since customers          that XP projects tend to deliver more of what is needed, 
               do not fully understand the benefits of regular               with less pressure and stress [4]. 
               developer-customer interactions [1], and they do not          2.3 Small Releases 
               want to be bothered by giving feedback to all team 
               members all the time.                                            The development team is required to make small 
               2.2 The Planning Game                                         frequent releases of working software that customers 
                                                                             can evaluate. The first release includes the smallest set 
                 There are two key planning steps in XP: release             of useful features set. Subsequent releases include 
                     
                                                 Extreme Programming: Strengths and Weaknesses                                            17
               newly added features.                                            soon as possible. The earlier the code is replaced,the 
                  Small releases are important for both the customers           easier it is to replace it. 
               and the development team. The customer can evaluate                 Simple design has its disadvantages. As no design 
               the software or release to end users which is highly             techniques are used and no design diagrams are 
               recommended. This evaluation provides necessary                  produced, the development team will be missing the 
               feedback to the development team.                                “big picture” of the project. This might mislead the 
                  On the other hand, it may be impossible to create             team to developing the software in the wrong way 
               good releases this often. In addition, it is an overhead         leading to excessive re-factoring because inadequate 
               for the development team to make a new release in                time had been allocated to initial system design [6]. 
               each iteration and ensure that this release is reliable and      3.2 System Metaphor 
               meets the customer requirements. Another thing that 
               should be taken in consideration is that the customers              System metaphor is a common vision of the project 
               might become overwhelmed with evaluating and                     in hand. The metaphor keeps the development team 
               commenting the new releases.                                     organized by providing a naming convention. 
               3. Designing                                                        A naming convention is very important as it helps 
                                                                                understanding the overall design of the system and 
                  XP is an iterative methodology; therefore, design is          reuse code. It saves time as it makes it easier to find the 
               a continuous essential process.                                  functionality you are looking for and to know where to 
                  In the designing phase, XP concentrates on keeping            put certain functionality. 
               things as simple as possible as long as possible simple          3.3 Re-factoring 
               design. Choosing a system metaphor is very important 
               for the development team to keep being organized.                   Re-factoring is a process of continuous design 
                  XP encourages the use of CRC (class,  improvement to keep the design as simple as possible 
               responsibilities, and collaboration) cards to design the         and to avoid needless clutter and complexity. 
               system as a team. XP also encourages the use of spike               Symptoms that indicates that re-factoring is required 
               solutions to solve technical or design problems. A               includes: multiple maintenance: functional changes 
               spike solution is a very simple program to explore               start requiring changes to multiple copies of the same 
               potential solutions [5].                                         (or similar) code. Another symptom is that changes in 
                  In order to keep the design simple and avoid any              one part of the code affect lots of other parts [7]. 
               complexity, re-factoring is required.                               Re-factoring tends to removing redundancy and 
                  The next sub sections begin by explaining the idea of         duplications and increasing the code cohesion while 
               a simple design and then discuss two other practices             decreasing its dependences. Re-factoring throughout 
               that are the system metaphor and the re-factoring.               the entire project saves time, increases quality, and 
               3.1 Simple Design                                                improves understandability. 
                                                                                   Re-factoring should be supported by comprehensive 
                  In the designing phase, XP concentrates on keeping            testing to ensure that nothing is broken. 
               things as simple as possible as long as possible. No             4. Coding 
               extra functionality is added early with the assumption 
               that it might be used later on.                                     In the coding phase, XP concentrates on having 
                  A simple design always saves time as it takes less            coding standards to keep the code consistent and easy 
               time to finish. Any complex code should be replaced as           to read and re-factor. 
                      
              18                              Extreme Programming: Strengths and Weaknesses 
                 The coding phase begins by creating test first units.      higher-level skill programmer might dominate and the 
              This helps the developers understanding the  other programmer becomes idle. Personality 
              requirements.                                                 differences might also have impact on pair 
                 Pair programming is one of the practices that              programming. 
              distinguish the XP methodology. Each pair of                  4.3 40-Hour Work Week 
              programmers writes their code and then integrates it 
              together in a serial fashion.                                   A 40-hour work-week means that the developers 
                 The development team has a collective code                 should not work more than 40 hours per week no 
              ownership. Each team member can change or re-factor           overtime. This will give the developers a comfortable 
              any part of the code.                                         working environment with no pressure. In pressure 
                 In the next sub sections five practices are discussed:     times, up to one week of overtime is acceptable. 
              the role of code standards in the XP methodology, the         Multiple weeks of overtime will exhaust the developers 
              importance of pair programming in XP, the 40-hour             and reduce their productivity. 
              work week, the continuous integration, and the                4.4 Continuous Integration  
              collective code ownership.   
              4.1 Coding Standards                                            XP team should maintain a fully integrated project. 
                                                                            The integration process should be continues and 
                 Coding standards keep the code consistent and easy         carefully controlled. Developers should integrate tested 
              to read and re-factor, which is very important in XP as       code at least daily. This should be done serially as 
              it makes the code look as if one developer has written it.    parallel integration might lead to serious problems. 
              This practice supports the collective code ownership            Continuous integration often avoids diverging or 
              practice.                                                     fragmented development efforts, where developers are 
              4.2 Pair Programming                                          not communicating with each other about what can be 
                                                                            re-used, or what could be shared [8]. Continues 
                 Pair programming is one of the practices that              integration ensures that everyone has the latest version 
              distinguish the XP methodology. Each pair of                  of the project. Continuous integration also avoids or 
              programmers works together to develop certain                 detects compatibility problems early. 
              functionality. This increases software quality.               4.5 Collective Code Ownership 
                 A pair of programmers working together will have 
              the same productivity as working separately but the             The development team has a collective code 
              outcome will have a higher quality. The better quality        ownership. Each team member can change or re-factor 
              saves time later on in the project; therefore, pair           any part of the code.  
              programming is considered a good investment.                    Collective code ownership ensures that no one 
                 Pair programming has many advantages. In addition          developer becomes a bottleneck for changes. It allows 
              to a better code quality, it helps with communicating         programmers to reuse any functionality that might be 
              knowledge and no one developer becomes a bottleneck.          required by multiple user stories [9]. 
              It also allows the programmers to share their                   Collective code ownership might be difficult to 
              knowledge, learn, and improve their skills.                   implement, as it is hard to make the entire team 
                 However, pair programming might be a poor                  responsible for the entire project. This practice adds an 
              practice if done in the wrong environment. If the two         overhead that all the developers are required to have all 
              programmers have different skill levels, the  the knowledge used in the project. 
                     
The words contained in this file might help you see if this file matches what you are looking for:

...Computer technology and application d david publishing extreme programming strengths weaknesses ahmad dalalah networks quality assurance consultant university of hail saudi arabia abstract meeting deliverable deadline is a critical issue for successful organization last minute adjustments characterize software development due to many reasons including not testing thoroughly xp practicing which an agile methodology gives rise the pair this paper aims at discussing by examining characteristics practices working together will incur in highly reliable functionalities release furthermore moving people around allow team keep track whole project key words exploration phase system metaphor introductionwhat code ownership includes both unite acceptance these are well known common it lightweight but takes their extremes combining set existing addition has number tends rapidly develop supporting include high that provides highest value do simplest thing could possibly work customers fastest way p...

no reviews yet
Please Login to review.