
Scaling The Management Of Extreme Programming Projects (published as B. Rumpe, P. Scholz. Scaling the Management of Extreme Programming Projects. In: Projects & Profits. Special Issue on Management of Extreme Programming Projects, Vol. III (8), pp. 11-18. ICFAI Press, Hyderabat, August 2003.) Bernhard Rumpe Peter Scholz Software & Systems Engineering Department of Computer Science Munich University of Technology Landshut University of Applied Sciences D-85748 Garching/Munich & Am Lurzenhof 1 IRISA-Universite de Rennes 1 D-84036 Landshut, Germany Camus Beaulieu, Rennes +49 871 506 679 [email protected] [email protected] ABSTRACT strengths. This article suggests an improvement in one of XP is a code-oriented, light-weight software engineering its obvious weaknesses: methodology, suited merely for small-sized teams who XP is designed for a single small team of less than a dozen develop software that relies on vague or rapidly changing team members, therefore, it has its problems to scale up for requirements. Being very code-oriented, the discipline of larger projects. Fortunately, applying the XP approach in systems engineering knows it as approach of incremental projects seems to considerably downsize the number of system change. In this contribution, we discuss the necessary participants, but there is still a number of areas, enhanced version of a concept on how to extend XP on where hundreds of developers work on producing one large scale projects with hundreds of software engineers single software product. For example, the and programmers, respectively. Previous versions were telecommunication industry is under enormous pressure to already presented in [1] and [12]. The basic idea is to apply add and improve functionality of their products. The time the "hierarchical approach", a management principle of to market span in the mobile phone business needs fast and reorganizing companies, as well as well-known moderation flexible process for large projects. Switching systems need principles to XP project organization. We show similarities to be adapted for each customer and for each country: XP is between software engineering methods and company just starting to play its role here too. reorganization processes and discuss how the elements of the hierarchical approach can improve XP. We provide The main obstacles against scaling up of XP are lack of guidelines on how to scale up XP to very large projects e.g. documentation (therefore the exponential increase of those common in telecommunication industry and IT necessary communication between developers), lack of technology consultancy firms by using moderation stable interfaces and stable requirements. Consequently, techniques. scaling up of XP will probably be indispensable in order to adopt methodical practices from other methodologies. KEYWORDS XP, reorganization, project organization, project In industry, a big reengineering wave started in the 80's management, hierarchical approach. where companies tried to be more efficient that their competitors. From the discipline of systems engineering, 1 INTRODUCTION we are acquainted with three approaches suited to manage a Extreme Programming (XP) [2,11] is the most prominent reorganization project. In the Total Systems Approach [7], of the new generation of light-weight (also called agile) the desired properties of a new system are defined first and methodologies for small-sized teams developing software then the whole system is introduced into the new with vague or rapidly changing requirements. XP can be organization like a big-bang invention. In the Incremental regarded as an explicit reaction to the complexity of today's Systems Approach also known as "Muddling Through", a modelling techniques like the Unified Process [3], the V- set of small changes incrementally leads to local model [4], Catalysis [5], or the Open Modeling Language optimisation. Through small changes of the company [6]. XP focuses on a small number of best practices, structure and organization and its supporting software disregarding many others used by other methodologies. XP system, a series of small localized improvements lead to a will evolve, reducing its weaknesses and increasing its [RS03] B. Rumpe, P. Scholz. Scaling The Management Of Extreme Programming Projects. In: Projects & Profits. Special Issue on Management of Extreme Programming Projects, Vol. III (8), pp. 11-18. ICFAI Press, Hyderabat, August 2003. www.se-rwth.de/publications sub-optimal organization form. activities in order to achieve the basic principles. As both approaches have several drawbacks, discussed Out of the four basic values a number of principles have below, system engineering provides a third approach called been derived; this is again partially quoted from [2]. Here "Hierarchical structuring" of system development or also are some fundamental ones: "Mixed Scanning". This approach combines the advantages • of both other approaches, usually leads to better Rapid feedback: XP advocates very early a rapid, if reorganization projects, and therefore provides an overall possible, daily feedback that allows programmers to focus optimisation. on the most important software features. • Assumed simplicity: XP tries to focus on the simplest In [1] similarities between the extreme programming possible implementation that works. Therefore, it focuses approach and the incremental systems developing approach only on today's problem and does not plan future have been discussed and the combination of these two extensions of software. In particular, it does not plan for approaches from systems engineering has been transferred re-use at all. to the software engineering discipline. There are two basic • Incremental change: a big change will never work at the advantages: first try. XP advocates small changes to incrementally • the combination leads to a scale up of the extreme enhance the system with desired functionality. This idea programming approach to larger projects by is based on the concept of Refactoring, first introduced in hierarchically structuring the teams, and [8]. • • it features a successful methodology for the organization Embracing change: "The best strategy is the one that of the hierarchical approach which can be transferred to preserves the most options while actually solving your the software engineering discipline. most pressing problem." ([2], page 38) • Quality work: quality is what finally matters. It emerges Both of above discussed points have interesting aspects. Of as dependent variable of the other three. The XP approach course, scaling XP up to a larger project allows to apply the tries to ensure an excellent quality by focusing on basic XP approach even if the system becomes more complex principles that have proved useful and trying to keep the needing more people to be involved. Another advantage is motivation of programmers up to its highest level. that there is a proven methodology to get a hierarchical reorganization process organized; this can be adopted by There are four basic activities in the XP approach: coding, the software engineering discipline. testing, listening and designing. As a light-weight methodology XP explicitly abandons any explicit activity This contribution is structured as follows. In Section 2 we of documenting and analysing the system. Analysis shortly repeat the aspects of XP which are of interest in this remains an implicit, but continuous activity that happens in context. In the Section 3 we introduce the new approach to everyday communication with the customer. reorganize parts of the company, discuss the analogy to Documentation is explicitly discouraged. Therefore, it is software process models and point out some improvements not surprising that coding is one of the most important for XP. Finally, in Section 4 we discuss management activities in the XP approach, but interface definition does techniques specifically suited to supplement the new not play a major role. The second important activity is the hierarchical XP approach. testing of written code. In order to ensure that the code 2 XP - BRIEF INTRODUCTION written actually works, the XP approach advocates writing Section 3 discusses adaptations of XP to a hierarchical tests with the JUnit framework to check whether the code is variant. This is based on the principles of XP that we correct. The test suite can be seen as a specification, briefly introduce in this section. We suggest to skip this partially written by programmers themselves to ensure that section, if the reader is familiar with the basics of programs they wrote actually work. In addition, customers XP.According to [2], the light-weight methodology XP or explicit testers write functional tests to ensure the system basically consists of: meets the desired functionality. The third basic activity for XP programmers is listening to customer's needs as well as • four values: communication between the programmers to those of other programmers. Finally, even in the XP and between programmers and customers, simplicity of approach, it is sometimes necessary to step back from design, the early feedback through small changes in the everyday coding and do some general design. This is of releases and the courage of programmers to do whatever particular interest if changes to systems become more necessary, complicated. • a number of software engineering principles discussed In order to establish all the goals XP advocates, the good below, • design also gives us several practices that should be four basic
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages7 Page
-
File Size-