Scaling The Management Of Extreme Programming Projects
|
|
|
- Anis Caldwell
- 10 years ago
- Views:
Transcription
1 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 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 Garching/Munich & Am Lurzenhof 1 IRISA-Universite de Rennes 1 D Landshut, Germany Camus Beaulieu, Rennes [email protected] [email protected] ABSTRACT XP is a code-oriented, light-weight software engineering methodology, suited merely for small-sized teams who develop software that relies on vague or rapidly changing requirements. Being very code-oriented, the discipline of systems engineering knows it as approach of incremental system change. In this contribution, we discuss the enhanced version of a concept on how to extend XP on large scale projects with hundreds of software engineers and programmers, respectively. Previous versions were already presented in [1] and [12]. The basic idea is to apply the "hierarchical approach", a management principle of reorganizing companies, as well as well-known moderation principles to XP project organization. We show similarities between software engineering methods and company reorganization processes and discuss how the elements of the hierarchical approach can improve XP. We provide guidelines on how to scale up XP to very large projects e.g. those common in telecommunication industry and IT technology consultancy firms by using moderation techniques. KEYWORDS XP, reorganization, project organization, project management, hierarchical approach. 1 INTRODUCTION Extreme Programming (XP) [2,11] is the most prominent of the new generation of light-weight (also called agile) methodologies for small-sized teams developing software with vague or rapidly changing requirements. XP can be regarded as an explicit reaction to the complexity of today's modelling techniques like the Unified Process [3], the V- model [4], Catalysis [5], or the Open Modeling Language [6]. XP focuses on a small number of best practices, disregarding many others used by other methodologies. XP will evolve, reducing its weaknesses and increasing its strengths. This article suggests an improvement in one of its obvious weaknesses: XP is designed for a single small team of less than a dozen team members, therefore, it has its problems to scale up for larger projects. Fortunately, applying the XP approach in projects seems to considerably downsize the number of necessary participants, but there is still a number of areas, where hundreds of developers work on producing one single software product. For example, the telecommunication industry is under enormous pressure to add and improve functionality of their products. The time to market span in the mobile phone business needs fast and flexible process for large projects. Switching systems need to be adapted for each customer and for each country: XP is just starting to play its role here too. The main obstacles against scaling up of XP are lack of documentation (therefore the exponential increase of necessary communication between developers), lack of stable interfaces and stable requirements. Consequently, scaling up of XP will probably be indispensable in order to adopt methodical practices from other methodologies. In industry, a big reengineering wave started in the 80's where companies tried to be more efficient that their competitors. From the discipline of systems engineering, we are acquainted with three approaches suited to manage a reorganization project. In the Total Systems Approach [7], the desired properties of a new system are defined first and then the whole system is introduced into the new organization like a big-bang invention. In the Incremental Systems Approach also known as "Muddling Through", a set of small changes incrementally leads to local optimisation. Through small changes of the company structure and organization and its supporting software system, a series of small localized improvements lead to a [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 ICFAI Press, Hyderabat, August
2 sub-optimal organization form. As both approaches have several drawbacks, discussed below, system engineering provides a third approach called "Hierarchical structuring" of system development or also "Mixed Scanning". This approach combines the advantages of both other approaches, usually leads to better reorganization projects, and therefore provides an overall optimisation. In [1] similarities between the extreme programming approach and the incremental systems developing approach have been discussed and the combination of these two approaches from systems engineering has been transferred to the software engineering discipline. There are two basic advantages: the combination leads to a scale up of the extreme programming approach to larger projects by hierarchically structuring the teams, and it features a successful methodology for the organization of the hierarchical approach which can be transferred to the software engineering discipline. Both of above discussed points have interesting aspects. Of course, scaling XP up to a larger project allows to apply the XP approach even if the system becomes more complex needing more people to be involved. Another advantage is that there is a proven methodology to get a hierarchical reorganization process organized; this can be adopted by the software engineering discipline. This contribution is structured as follows. In Section 2 we shortly repeat the aspects of XP which are of interest in this context. In the Section 3 we introduce the new approach to reorganize parts of the company, discuss the analogy to software process models and point out some improvements for XP. Finally, in Section 4 we discuss management techniques specifically suited to supplement the new hierarchical XP approach. 2 XP - BRIEF INTRODUCTION Section 3 discusses adaptations of XP to a hierarchical variant. This is based on the principles of XP that we briefly introduce in this section. We suggest to skip this section, if the reader is familiar with the basics of XP.According to [2], the light-weight methodology XP basically consists of: four values: communication between the programmers and between programmers and customers, simplicity of design, the early feedback through small changes in the releases and the courage of programmers to do whatever necessary, a number of software engineering principles discussed below, four basic activities: coding, testing, listening and designing, and a number of practices that help to structure the basic activities in order to achieve the basic principles. Out of the four basic values a number of principles have been derived; this is again partially quoted from [2]. Here are some fundamental ones: Rapid feedback: XP advocates very early a rapid, if possible, daily feedback that allows programmers to focus on the most important software features. Assumed simplicity: XP tries to focus on the simplest possible implementation that works. Therefore, it focuses only on today's problem and does not plan future extensions of software. In particular, it does not plan for re-use at all. Incremental change: a big change will never work at the first try. XP advocates small changes to incrementally enhance the system with desired functionality. This idea is based on the concept of Refactoring, first introduced in [8]. Embracing change: "The best strategy is the one that preserves the most options while actually solving your most pressing problem." ([2], page 38) Quality work: quality is what finally matters. It emerges as dependent variable of the other three. The XP approach tries to ensure an excellent quality by focusing on basic principles that have proved useful and trying to keep the motivation of programmers up to its highest level. There are four basic activities in the XP approach: coding, testing, listening and designing. As a light-weight methodology XP explicitly abandons any explicit activity of documenting and analysing the system. Analysis remains an implicit, but continuous activity that happens in everyday communication with the customer. Documentation is explicitly discouraged. Therefore, it is not surprising that coding is one of the most important activities in the XP approach, but interface definition does not play a major role. The second important activity is the testing of written code. In order to ensure that the code written actually works, the XP approach advocates writing tests with the JUnit framework to check whether the code is correct. The test suite can be seen as a specification, partially written by programmers themselves to ensure that programs they wrote actually work. In addition, customers or explicit testers write functional tests to ensure the system meets the desired functionality. The third basic activity for XP programmers is listening to customer's needs as well as to those of other programmers. Finally, even in the XP approach, it is sometimes necessary to step back from everyday coding and do some general design. This is of particular interest if changes to systems become more complicated. In order to establish all the goals XP advocates, the good design also gives us several practices that should be followed: The planning game: based on business priorities and
3 technical estimates, the scope of the next release should be determined. Please note that releases depend slightly on one to a few of their incremental developments. Small releases: one release almost every day or a couple of days. Simple design: systems should be designed as simple as possible. This means in particular, that unused functionality that complexes the system further should be removed. Testing: unit tests are written by programmers, functional tests are written by customers to demonstrate that a feature actually works. Refactoring: the techniques of refactoring [9] deal with structural changes of a system without affecting its behaviour. Their roots have been discussed in [10]. Pair-programming: two programmers sit at one machine. What one programmer writes is immediately reviewed by the other. They continuously communicate with each other to ensure directly the high quality of their code. Collective ownership: every programmer may change each part of the program at any time. There is no single owner of the code. Continuous integration: the idea is to integrate the new code and build the system many times a day whenever a task is completed. Of course, each time the set of all tests is checked against the new version of the system. On-site customer: in order to ensure continuous communication not only among programmers, but also with at least one customer, it is important to have one customer in the team all the time. He can immediately answer all the questions that programmers have. Coding standards Today, the XP approach is mainly used for small projects (up to a dozen team members). Due to its basic values and principles, we may assume that XP in its current form does not easily scale up to larger projects. Compared to classical (heavy-weight) methods, XP is certainly more flexible and includes more explicitly the needs and intentions of all project participants. As in XP the stages of analysis, design and implementation are no longer separated, this, allows us to forget about a thorough analysis documentation. Furthermore, the implementer is directly in touch with the customer, and, therefore, knows his intentions thoroughly when mediated by the analyst. Such considerable increase of motivation is paired with the decrease of misunderstandings on the communication path. All in all, XP is a promising approach with a number of strengths, but also weaknesses that can be improved. This paper presents enhanced guidelines of the approach to tackle the specific problem of scaling XP up to larger projects. The characteristics of advantages and disadvantages of XP being similar to different ways of reorganizing companies, like those used by the automobile industry in the 80's and 90's, we will show in the next chapter the improvements made when reorganizing companies. This gives us more hints to improve XP. 3 HIERARCHICAL XP Today it is for all companies imperative to supply their business with extensive software support. A company reorganization always goes together with the adaptation of existing and the introduction of new software and all too often also the introduction of new software does or should go along with adaptation of the companies business processes and structures. Therefore, it is a natural consequence to combine suitable approaches that come from technical and management disciplines. In hierarchical XP, two approaches with similar characteristics are combined. The holistic approach (from systems theory) has several characteristics in common with the classical software engineering approaches, starting with the Waterfall model, but also newer object-oriented approaches, like the Unified Process [3]. They e.g. share a centralized approach providing a small coordination team with great power, but lack adequate customer/employee participation. The incremental approach (from systems theory) compares well to XP. Both are rather decentralized and both focus minor on local improvements of existing structures/systems. Such improvements can be released early and get a fast feedback. Their major advantages are: high involvement of employees / customers, and as a result, high acceptance of the solution. XP and the incremental approach do have also some disadvantages in common: applying this approach to several local problems does usually not lead to a shared improvement with multiple teams. Instead, local improvements may contradict each other, the approach is unstructured and can therefore not be used for working out an overall concept by a complex problem where an involvement of several persons is necessary. In systems theory, the hierarchical approach was developed as a combination of the holistic and incremental approaches and has been carried over to the software development discipline in [1]. This approach starts from the extreme programming approach and builds a hierarchical structure upon it. The advantages of this approach have partly been discussed before: While largely retaining a light-weight methodology, it becomes feasible to structure larger projects into a bunch of smaller XP projects that still have a common target to achieve. The approach basically consists of two important elements: on the top-level we set up a goal-oriented project management (called steering committee) that organizes the problem as a high-level structure by working out a
4 rough concept, each of the now localized problem parts is solved in an extreme programming approach by its own XP team. The following figure demonstrates this advantage of the hierarchical approach compared to the other two approaches. Each circle is a team member, tight connections of circles form a team. Holistic Approach Target Hierarchical Approach Target Figure 1: Comparison of three approaches Incremental Approach Target The XP teams function primarily on an independent basis; nevertheless, they are coupled by a top-level management team, called "steering committee", that keeps track on the overall goal and measures local improvements. It is important to keep arising cross-dependencies as lean as possible. However, the complexity of today's information systems, at least partly arises from the still insufficient mechanisms to define crisp and small interfaces between software parts. Dynamic restructuring of the XP teams is useful to flexibly react on varying workloads. So over time, the project structure e.g. splits as follows: Projects XP 2 XP sub-project 1 XP 3 XP 5 XP 3 XP 7 XP 6 Steering Committee Steering Committee XP 9 XP 8 XP 10 Figure 2: Hierarchic project structure Time By organizing the software development process in a hierarchical manner the focus is given on one common target and a structured process to reach this goal is used. The involvement of the employees will lead to a high acceptance for the solution. Ideally XP project teams are defined in a similar way as company departments are. A certain part of the software infrastructure of a company is not localized in one (or a few) departments, but its usage spread over a number of departments. This can e.g. be handled by identifying pilot departments that are able to cover the needs and desires of other departments' users as well. These considerations show that the hierarchical extreme programming approach needs a focussed, yet lean project organization. Five major principles can be identified that characterize the hierarchical approach: 1. Customer participation: the solution is worked out with the customer/employee to reach a high acceptance. This is in particular important for the customers to accept the resulting new software system/company structure. 2. The whole system is divided up into subsystems with a lean and crisp interface. The inputs and outputs, namely the data structures and the information flow between the subsystems need to be clearly defined. Subsystems are implemented respectively evolved through XP teams. 3. Each XP team targets its associated subsystem, thus contributing to the main target, namely the development of the whole system. 4. The worked out software solutions will be improved like in an incremental process to be successful very quickly. In a number of releases the team explores and extends the desired system functionality. 5. The hierarchical approach is well organized with a project team and a steering committee. The steering committee is an ideal place to develop and maintain the common system goals. Most of the additional principles and practices of XP, that have been introduced in Section 2, carry over to the hierarchical approach without major changes. However, some of these principles need slight enhancement. Automated test suites become even more important when the XP teams are connected though interfaces. Specific test suites check functionality against mock interfaces. Further tests need to check the correctness of the cross project functionality and therefore the correctness of the interfaces. 4 PROJECT MANAGEMENT FOR LARGE SCALE XP PROJECTS As we have seen, hierarchic XP needs a focused set of project management techniques to handle the issues arising in the steering committee. In this section, we will motivate how project management, enriched by additional moderation and communication techniques can be applied to this kind of large scale XP software development projects. First and foremost, we would like to point out that in principle, project management is usually divided up in project planning for projects which are not started yet and project controlling and management, respectively, for running projects. Of course, we only concentrate on project management for already ongoing projects here, since intensive, straightforward project planning before a project starts and XP would be contradictive indeed. Recall the four values of XP: two of them have been communication and early feedback. Hence, the success of every XP project very much depends on how these two values are reached. Both communication and feedback become harder to realize with every single additional team member involved in the team. Hence, we have to find solutions on how to guarantee efficient communication and feedback for every size of XP project even and in particular for large scale projects. In the sequel, we will formulate an answer to this question. Naturally, project management can just be as good as the
5 person who is responsible for it, i.e. the project manager. However, a project manager of an XP project is not simply a project coordinator and supervisor in the well-known context. On the one hand he or she must be less than that, as responsibility is largely shifted to the team members: on the other hand he or she must be more than that, namely an excellent moderator. In the following, we will discuss how moderation can support XP projects and in particular steering committees. In general, in large scale projects, i.e. in projects where many persons are involved in, the communication overhead increases dramatically. This context was first shown by Brook. Brook's law, pictured in Figure 3, outlines the relationship between the number of persons involved in a project and the time-to-product. Time Minimal Development Time Optimal number of developers Figure 3: Brooks's law Development Time Communication Share Productive Share Number of developers involved As everybody knows from daily experiences and as Brooks's law shows, there project time cannot be decreased below a certain point by just adding project members. If this number exceeds a certain point, the communication overhead takes over (see also left hand side of Figure 4). As Figure 3 shows, this increasing communication overheads limits the optimal number of project team members to a certain number. In large scale XP projects, however, a lot more developers than this optimal number are involved. Hence, measures have to be taken that allow for additionally increasing the number of team members. The first and one of the most efficient lever to do so is to split the team into XP subteams as done in hierarchical XP. For the still necessary communication moderation techniques as shown in Figure 4 are applied. Communication without Moderation In general, there are n * (n-1) / 2 communication paths if n persons are involved in the communication process Communication with Moderation Moderation Figure 4: Efficient communication through moderation Moderation increases the project efficiency and has a number of advantages: communication gets more effective and time efficient all, even "difficult" project member are involved the moderator has an considerable influence on time economy and target achievement Team work plays an essential role in the steering committee as well as in the XP sub-projects, where often development tasks are rather complex, and capacity and expertise, respectively of small project groups are too limited to guarantee the overall project success. Moderation makes an essential contribution so that defined project targets can be achieved within the optimal time with the optimal level of effort, creativity, and engagement. Moderation in XP projects aims at involving all project members as efficiently as possible in all project phases. This ensures that the members' ideas and energies can be bundled up and therefore optimally brought into the project. As a consequence, all team members pull together. However, to be effective, moderation has to be carried out in a systematic, structured, and open manner, that is, without any manipulation of any kind (for instance, by political top management conflicts). Project work that is guided this way by a professional moderator makes a lot of fun. In addition, moderation causes a number of further advantages: all project members are concentrated on the working content, only all results get transparent the cooperation, team spirit and therefore, the overall company culture improves the motivation of each XP project member increases When should moderation be applied in large scale XP projects? The answer to this questions is as short as simple: always, since moderation can be considered as substitute for project management in "traditional" software development projects. Of course, a distinguished project member has to be nominated that undertakes the moderator's role. This person has no other project work to perform than to moderate the team. As a consequence, moderation in a large scale XP development project can be a full time job. How does the perfect XP moderator look like? Moderation is a service for the project members. Therefore, a moderator should consider himself as a service provider. He supports the development group in identifying and following their project targets efficiently. What mentality should the moderator have? The perfect mixture of optimistic calmness and tolerance at the one hand and the will to carry through at the other hand would be ideal. She or he has to be a honest and open person. These attributes build the basis for credibility and trust. Credible moderators who have the trust of the project members "are allowed" to
6 make mistakes and nevertheless (or better: therefore) can manage difficult situations. Needless to say, that the moderator also needs technical know-how and an understanding of what the system is about. This helps the moderator in negotiations about technical interfaces between XP subprojects. What is the moderator's task in XP projects? She or he has to support the programmers in a way that problems can be solved by themselves, i.e. by team work. Also, the efficiency with respect to the project return on investment has to be increased by the moderation. Furthermore, solution concepts should be worked out that are accepted by both programmers and the top management. Though the moderator has a strategic position within the project he or she also gives know-how to the project members. However, know-how in this context equally means strategic, technical and application knowhow. A good XP moderator knows all moderation methods (the moderation tool box) and has understood the XP idea. The larger the project the less likely it is that the moderator will programme himself and therefore has not to be a good programmer. The moderator must be like an "obstetrician" so that complex ideas can be born, formulated, cut into components for the subprojects and realized. Finally, he or she takes care that the potential of each project member can be exhausted in an optimal way. Altogether, the moderator supports the team in questions of method, motivation, communication, and cooperation. As in the hierarchical approach, the subteams flexibly reorganize during the project, he also holds a part of the responsibility to enable appropriate reorganization, but should not be the finally responsible person. How can the concept of moderation be applied to very large XP projects? In order to work efficiently, each moderator merely is able to support up to 6-8 pairs of programmers, which to our experience means an average of three XP subprojects. The interesting questions is, how to apply moderation to XP projects with 100 and more developers. The idea is that larger teams consisting of 6-8 pairs of programmers is coached by its "own" moderator, smaller teams share moderators. Every moderator is responsible for the knowledge transfer within his team, as he is also member of the steering committee. This enables in addition to the intra-team knowledge transfer also an inter-team knowledge transfer. At least the moderators of the steering committee meet regularly by establishing "heures fixe" (like the well-known "jour fixe" but just carried out in a higher frequence): All moderators involved in a particular large scale XP projects meet each other daily either in the morning, or in the noon, or in afternoon hours to exchange project knowledge from their teams. In addition it is feasible to support the teams of programmers by a team of developers who are responsible for unit testing. This team is responsible for the overall function tests with particular focus on correct handling on the interfaces in both directions. Furthermore, development team and unit testing team should meet altogether about every four weeks in order to identify, discuss, and solve development, quality, or process problems. These meetings also should provide a platform for know-how exchange. There are no additional, disciplinary organization structures. This way, the organization is kept simple, flat, and therefore powerful. 5 CONCLUSION This paper focuses on the particular question how to optimize and reorganize companies that make heavy use of software products. First, hierarchical XP is introduced as a software engineering method for large scale projects that possible structures its sub-projects along business or organizational structures. If a company is reorganized, this usually means restructuring its software products, its databases and network infrastructure, because a company reorganization usually concentrates on optimization of its business cases. In this paper, we have extended the extreme programming approach by elements of the hierarchical reorganization process leads to a considerable scale-up of the XP approach. Furthermore, the XP approach extended this way can nicely be integrated with the hierarchical reorganization process allowing the use of both at the same time. Furthermore, we have identified and discussed moderation techniques that are used to coach XP development teams. ACKNOWLEDGEMENTS This work was partially supported by the Bayerisches Staatsministerium für Wissenschaft, Forschung und Kunst through the Bavarian Habilitation Fellowship, the German Bundesministerium für Bildung und Forschung through the Virtual Software Engineering Competence Center (ViSEK) and Siemens. REFERENCES 1. C. Jacobi, B. Rumpe. Hierarchical XP Improving XP for large scale projects. In: Extreme Programming Examined. G. Succi, M. Marchesi. (ed) Addison- Wesley, Beck, K. Extreme Programming Explained. Addison- Wesley I. Jacobson, G. Booch, J. Rumbaugh. The Unified Software Development Process. Addison-Wesley Koordinierungs- und Beratungsstelle der Bundesregierung für Informationstechnik. V-Modell; Allgemeiner Umdruck Nr. 250 Vorgehensmodell. Bundesdruckerei Bonn D. D'Souza, A. C. Wills. Objects, Components and Frameworks with UML. The Catalysis Approach. Addison-Wesley D. Firesmith, B. Henderson-Sellers, I. Graham, I. OPEN Modeling Language (OML) Reference Manual.
7 SIGS Books A. Picot, B. Lange. Synoptische versus inkrementale Gestaltung des strategischen Planungsprozesses - Theoretische Grundlagen und Ergebnisse einer Laborstudie. ZfbF 31, S W. Opdyke, R. Johnson. Creating Abstract Superclasses by Refactoring. Technical Report. Dept. of Computer Science, University of Illinois and AT&T Bell Laboratories Fowler, M. Refactoring. Addison-Wesley, J. Philipps, B. Rumpe. Roots of Refactoring. In: Tenth OOPSLA Workshop on Behavioral Semantics. Tampa Bay, Florida, USA, October 15, K. Baclavski, H. Kilov (eds.). Northeastern University Beck, K., Fowler, M. Planning Extreme Programming. Addison-Wesley, Bernhard Rumpe, Peter Scholz. A manager s view on large scale XP projects. 3 rd International Conference on XP and Flexible Processes in Software Engineering (XP 2002), Alghero, Sardinien, Italien, Mai, 2002
Quantitative Survey on Extreme Programming Projects
Quantitative Survey on Extreme Programming Projects Bernhard Rumpe Astrid Schröder Software & Systems Engineering Software & Systems Engineering Munich University of Technology Munich University of Technology
Human Aspects of Software Engineering: The Case of Extreme Programming
1 Human Aspects of Software Engineering: The Case of Extreme Programming Orit Hazzan 1 and Jim Tomayko 2 1 Department of Education in Technology and Science, Technion - IIT, Haifa 32000, Israel [email protected]
Agile Test-based Modeling
Agile Test-based Modeling Bernhard Rumpe Software Systems Engineering TU Braunschweig, Germany www.sse.cs.tu-bs.de Model driven architecture (MDA) concentrates on the use of models during software development.
Applying Agile Methods in Rapidly Changing Environments
Applying Agile Methods in Changing Environments 7/23/2002 1 Applying Agile Methods in Rapidly Changing Environments Peter Kutschera IBM Unternehmensberatung GmbH Am Fichtenberg 1, D-71803 Herrenberg Steffen
Extreme Programming: Strengths and Weaknesses
The International Arab Conference on Information Technology (ACIT 2013) Extreme Programming: Strengths and Weaknesses Ahmad dalalah Prep. Year Deanship University of Hail, SA [email protected] Abstract:
XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories
XP & Scrum Beatrice Åkerblom [email protected] extreme Programming XP Roles XP Roles, cont!d! Customer ~ Writes User Stories and specifies Functional Tests ~ Sets priorities, explains stories ~ May or
Agile Modeling with the UML
Agile Modeling with the UML Bernhard Rumpe Software & Systems Engineering, Technische Universität München 85748 Munich/Garching, Germany, This paper discusses a model-based approach to software development.
EXTREME PROGRAMMING AND RATIONAL UNIFIED PROCESS CONTRASTS OR SYNONYMS?
EXTREME PROGRAMMING AND RATIONAL UNIFIED PROCESS CONTRASTS OR SYNONYMS? ABSTRACT Ionel IACOB, PhD Faculty of Computer Science for Business Management, Romanian American University, Bucharest, Romania The
Practical Experiences of Agility in the Telecom Industry
Practical Experiences of Agility in the Telecom Industry Jari Vanhanen 1, Jouni Jartti 2, and Tuomo Kähkönen 2 1 Helsinki University of Technology, Software Business and Engineering Institute, P.O. Box
Extreme Programming, an agile software development process
Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process
Extreme Programming and Rational Unified Process Contrasts or Synonyms?
Extreme Programming and Rational Unified Process Contrasts or Synonyms? Per Runeson and Peter Greberg Lund University, Sweden [email protected] Abstract The agile movement has received much attention
AGILE SOFTWARE DEVELOPMENT
AGILE SOFTWARE DEVELOPMENT Michael Novikov and Nicolas Heuser May 23, 2006 1 Contents 1 THE TIME BEFORE AGILE SOFTWARE DEVELOPMENT 3 2 ADAPTIVE VERSUS PREDICTIVE SOFTWARE DEVELOPMENT 3 3 WHAT IS AGILITY?
Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal [email protected]
Using Simulation to teach project management skills Dr. Alain April, ÉTS Montréal [email protected] Agenda of the workshop 1 The software project management theory overview (40 minutes) 2 Why use SDLC
Web Application Development Processes: Requirements, Demands and Challenges
Web Application Development Processes: Requirements, Demands and Challenges THAMER AL-ROUSAN 1, BASEM HADIDI 2, SHADI ALJAWARNEH 3 1, 3 Faculty of Science and Information Technology, Isra University, Amman,
Achieving ISO 9001 Certification for an XP Company
Achieving ISO 9001 Certification for an XP Company Graham Wright Development Team Coach Workshare 20 Fashion Street London, E1 6PX (44) 020 7539 1361 [email protected] Abstract It is generally
Extreme Programming, an agile software development process
Extreme Programming, an agile software development process Paul Jackson School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled
Agile Methodologies and Its Processes
International Journal of Computational Engineering Research Vol, 03 Issue, 9 Agile Methodologies and Its Processes 1, Akanksha, 2, Akansha Rakheja, 3, Latika Kapur, 4, Kanika Ahuja 1,2,3,, Information
Classical Software Life Cycle Models
Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation
Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD
Development Techniques CSE301 University of Sunderland Harry R. Erwin, PhD Sources Boehm, 1981, Software Engineering Economics, Prentice- Hall. Stephens and Rosenberg, 2003, Extreme Programming Refactored:
A Capability Maturity Model (CMM)
Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability
The Oregon Software Development Process
The Oregon Software Development Process Till Schümmer 1 and Robert Slagter 2 1 Computer Science Department, FernUniversität in Hagen, Universitätsstrasse 1, 58084 Hagen, Germany [email protected]
Agile Software Development Methodologies and Its Quality Assurance
Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed
Software Engineering
1 Software Engineering Lecture 2: Software Life Cycles Stefan Hallerstede Århus School of Engineering 25 August 2011 2 Contents Naive Software Development Code & Fix Towards A Software Process Software
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT Shivangi Shandilya, Surekha Sangwan, Ritu Yadav Dept. of Computer Science Engineering Dronacharya College Of Engineering, Gurgaon Abstract- Looking at the software
A Survey of Software Development Process Models in Software Engineering
, pp. 55-70 http://dx.doi.org/10.14257/ijseia.2015.9.11.05 A Survey of Software Development Process Models in Software Engineering Iqbal H. Sarker 1, Faisal Faruque 1, Ujjal Hossen 2 and Atikur Rahman
AGILE SOFTWARE DEVELOPMENT A TECHNIQUE
AGILE SOFTWARE DEVELOPMENT A TECHNIQUE Saurav Tiwari 1,Aasheesh Goel 2,Rajeev Sharma 3 1,2 Research Scholar,MCADept.,SRM University,NCRCampus,Modinagar 3 Asst. Prof.,MCADept.,SRM University,NCR Campus
USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS
Journal of Applied Economics and Business USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS Nevenka Kirovska 1, Saso Koceski 2 Faculty of Computer Science, University Goce Delchev, Stip, Macedonia
In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:
In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer
Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem
Agile processes Extreme Programming, an agile software development process Perdita Stevens School of Informatics University of Edinburgh What the spiral models were reaching towards was that software development
PEOPLE INVOLVEMENT AND THEIR COMPETENCE IN QUALITY MANAGEMENT SYSTEMS * Jarmila ŠALGOVIČOVÁ, Matej BÍLÝ
PEOPLE INVOLVEMENT AND THEIR COMPETENCE IN QUALITY MANAGEMENT SYSTEMS * Jarmila ŠALGOVIČOVÁ, Matej BÍLÝ Authors: Workplace: Assoc. Prof. Jarmila Šalgovičová, PhD., Prof. Matej Bílý, DrSC.* Institute of
Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006
Extreme Programming Sergey Konovalov and Stefan Misslinger May 23, 2006 1 Contents 1 Introduction 3 2 Why do we need XP? 3 3 Economics of Software Development 4 4 Extreme Programming Values 4 5 Extreme
Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations
International Journal of Recent Research and Review, Vol. VI, June 2013 Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations Uma Kumari 1, Abhay Upadhyaya
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
Agile processes. Extreme Programming, an agile software development process
Agile processes Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh What the spiral models were reaching towards was that software development
INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal
INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal Research Article ISSN 2277 9140 ABSTRACT Analysis and tabular comparison
Hamid Faridani ([email protected]) March 2011
Hamid Faridani ([email protected]) March 2011 Introduction Methodologies like Waterfall, RUP and Agile have all become key tools for software developers and project manager s to aid them in delivering
Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6
The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses
Large Scale Systems Design G52LSS
G52LSS Lecture 3 Rapid and Agile Development Rapid Application Development Prototyping CASE Tools Agile Development Extreme Programming Learning outcomes: describe main features of methods for RAD and
Ontological Representations of Software Patterns
Ontological Representations of Software Patterns Jean-Marc Rosengard and Marian F. Ursu University of London http://w2.syronex.com/jmr/ Abstract. This paper 1 is based on and advocates the trend in software
Agile and Secure: Can We Be Both?
Agile and Secure: Can We Be Both? OWASP AppSec Seattle Oct 2006 Keith Landrus Director of Technology Denim Group Ltd. [email protected] (210) 572-4400 Copyright 2006 - The OWASP Foundation Permission
Web Applications Development and Software Process Improvement in Small Software Firms: a Review
Web Applications Development and Software Process Improvement in Small Software Firms: a Review Haroon Tarawneh Al-balqa Applied University [email protected] Sattam Allahawiah Al-balqa Applied University
Agile Modeling: A Brief Overview
Agile Modeling: A Brief Overview Scott W. Ambler President, Ronin International [email protected] Abstract: Agile Modeling (AM) is a practice-based methodology for effective modeling of software-based
Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming
Génie Logiciel et Gestion de Projets Software Processes Focus on Extreme Programming 1 Roadmap Process, Method, Methodology?? What is a software process? Software Process Models Methodologies: RUP Focus
Quality Assurance Software Development Processes
Quality Assurance Software Development Processes Part II - Lecture 3 1 The University of Auckland New Zealand 254 12/09/ /2012 The FBI Virtual Case File 254 12/09/ /2012 Database application developed
Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda
Xtreme RUP by Ne t BJECTIVES Lightening Up the Rational Unified Process 2/9/2001 Copyright 2001 Net Objectives 1 RUP Overview Agenda Typical RUP Challenges Xtreme Programming Paradigm Document driven or
The Agile approach Extreme Programming (XP) Implementing XP into a software project Introducing HCI design into agile software development Summary
! " # $%&' ()**+ % The Agile approach Extreme Programming (XP) Implementing XP into a software project Introducing HCI design into agile software development Summary , 75% of the enterprise software products
Recruitment and Selection
Recruitment and Selection The recruitment and selection belongs to value added HR Processes. The recruitment is about: the ability of the organization to source new employees, to keep the organization
A Comparison between Five Models of Software Engineering
International Journal of Research in Information Technology (IJRIT) www.ijrit.com ISSN 2001-5569 A Comparison between Five Models of Software Engineering Surbhi Gupta, Vikrant Dewan CSE, Dronacharya College
Build your Project using Extreme Programming #2 of a Series, by Pavan Kumar Gorakavi, M.S., M.B.A, G.M.C.P, C.A.P.M.
Build your Project using Extreme Programming #2 of a Series, by Pavan Kumar Gorakavi, M.S., M.B.A, G.M.C.P, C.A.P.M. 1. What is Extreme Programming? Extreme Programming is a software development methodology
ASSESSMENT OF SOFTWARE PROCESS MODELS
ASSESSMENT OF SOFTWARE PROCESS MODELS Akhilesh Research Scholar, Department of Computer Science, Manav Bharti University, Solan (H.P.) ABSTRACT The field of software engineering is related to the development
SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar
SAPM Overview Semester Summary Dr. James A. Bednar [email protected] http://homepages.inf.ed.ac.uk/jbednar In this lecture we review the topics we have covered this semester, focusing on what I consider
Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.
An Introduction to extreme Programming Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Extreme Programming (XP) is a (very) lightweight incremental software
Continuous Integration, Delivery and Deployment. Eero Laukkanen T-76.5613 - Software Testing and Quality Assurance P 20.11.2015
Continuous Integration, Delivery and Deployment Eero Laukkanen T-76.5613 - Software Testing and Quality Assurance P 20.11.2015 System Integration In engineering, system integration is defined as the process
AGILE vs. WATERFALL METHODOLOGIES
AGILE vs. WATERFALL METHODOLOGIES Introduction Agile and waterfall are two major methodologies that software developers and project managers have the option of using. Some of the goals of developers and
Agile Software Development
Agile Software Development Application in the Medical Device Industry Kelly Weyrauch Medtronic, Inc. (29 April 2008) Introduction Purpose Provide an introduction to Agile Software Development as it applies
Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering
Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Prof. Dr. Armin B. Cremers Sascha Alda Overview Phases during Software Development
http://www.cisjournal.org Enhancement of XP for Cloud Application Development Sara Tariq, Muhammad Mohsin Nazir, Farhat Saleemi
Enhancement of XP for Cloud Application Development Sara Tariq, Muhammad Mohsin Nazir, Farhat Saleemi Dept. of Computer Science, LCW University Lahore Pakistan Email: [email protected] ABSTRACT The
Software Development Life Cycle Models - Process Models. Week 2, Session 1
Software Development Life Cycle Models - Process Models Week 2, Session 1 PROCESS MODELS Many life cycle models have been proposed } Traditional Models (plan-driven) } Classical waterfall model } Iterative
An Iterative and Agile Process Model for Teaching Software Engineering
An Iterative and Agile Process Model for Teaching Software Engineering Maria Isabel Alfonso and Antonio Botía Dept. of Computer Science and Artificial Intelligence. University of Alicante (Spain) [email protected],
Web Application Development Process
Web Engineering Web Application Development Process Copyright 2013 Ioan Toma & Srdjan Komazec 1 Where we are? # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements
Agile Projects 7. Agile Project Management 21
Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management
SOFTWARE PROCESS MODELS
SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation
The W-MODEL Strengthening the Bond Between Development and Test
Andreas Spillner Dr. Spillner is working as Professor at the Hochschule Bremen (University of Applied Sciences) where he is responsible for software engineering and real time systems. Dr. Spillner has
Title: Topic 3 Software process models (Topic03 Slide 1).
Title: Topic 3 Software process models (Topic03 Slide 1). Topic 3: Lecture Notes (instructions for the lecturer) Author of the topic: Klaus Bothe (Berlin) English version: Katerina Zdravkova, Vangel Ajanovski
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN
CSE 435 Software Engineering. Sept 16, 2015
CSE 435 Software Engineering Sept 16, 2015 2.1 The Meaning of Process A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind A process
ASSESSMENT CENTER FOR IDENTIFYING POTENTIAL PROJECT MANAGERS: A CHANCE FOR SYSTEMATIC HUMAN RESOURCE DEVELOPMENT
ASSESSMENT CENTER FOR IDENTIFYING POTENTIAL PROJECT MANAGERS: A CHANCE FOR SYSTEMATIC HUMAN RESOURCE DEVELOPMENT Dipl. Psych. Ingo Heyn, ALLIANZ LEBENSVERSICHERUNGS-AG, Germany, 1999 Paper for the 6th
SOFTWARE ENGINEERING CSC 423 B - MWF 11-12 EXTREME PROGRAMMING
SOFTWARE ENGINEERING CSC 423 B - MWF 11-12 EXTREME PROGRAMMING TO: Dr. Khaldoun El Khalidi FROM: Lamia Nassif, Jessy, Nadine Ghanem, & Pedro Maroun Eid Due: 20 March 2002 1 Table of Contents I. ABSTRACT...3
Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development
Software development Groupware and Collaborative Interaction Collaborative Software Development M2R Interaction - Université Paris-Sud - Année 2013-2014 Cédric Fleury ([email protected]) Several users
Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology
Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room
Business Modeling with UML
Business Modeling with UML Hans-Erik Eriksson and Magnus Penker, Open Training Hans-Erik In order to keep up and be competitive, all companies Ericsson is and enterprises must assess the quality of their
Agile Software Development in the Large
Agile Software Development in the Large Jutta Eckstein 1 Large Large in... Scope Time People Money Risks We concentrate on Large Teams Large is relative 1, 2, 10, 100, 2000 People 2 Principles behind Agile
Modeling the User Interface of Web Applications with UML
Modeling the User Interface of Web Applications with UML Rolf Hennicker,Nora Koch,2 Institute of Computer Science Ludwig-Maximilians-University Munich Oettingenstr. 67 80538 München, Germany {kochn,hennicke}@informatik.uni-muenchen.de
Software Engineering Practices in Jordan
Software Engineering Practices in Jordan Nuha El-Khalili Faculty of Information Technology, University of Petra, Amman, Jordan [email protected] Dima Damen Faculty of Information Technology, University
Software Development with Agile Methods
Case Study Software Development with Agile Methods Introduction: Web application development is a much studied, heavily practiced activity. That is, capturing and validating user requirements, estimating
The Role of Agile Methodology in Project Management
Edith Cowan University Research Online Australian Information Warfare and Security Conference Security Research Institute Conferences 2010 Success of Agile Environment in Complex Projects Abbass Ghanbary
Agile Models. Software Engineering 2004-2005. Marco Scotto ([email protected]) Software Engineering
Agile Models 2004-2005 Marco Scotto ([email protected]) Content Introduction Tame projects & wicked projects Win-Win Spiral software development model XP software development process Enforcing the
Agile Engineering Introduction of a new Management Concept
Journal of Applied Leadership and Management 4, 39-47 39 Agile Engineering Introduction of a new Management Concept Philipp Hecker ([email protected]) Artur Kolb ([email protected])
Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution
Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Not this life cycle SE, Software Lifecycle, Hans van Vliet, 2008 2 Introduction software development
Agile with XP and Scrum
Agile with XP and Scrum Amit Goel National Agile Software Workshop @ Indore Agile India Conference Agile Software Community of India Disclaimer and Credits Most of material in this presentation has been
Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1
Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of
XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich
XP and TDD Extreme Programming and Test Driven Development Bertrand Meyer, Manuel Oriol Andreas Leitner ETH Zurich October 27, 2006 Outline Development Processes Overview Extreme Programming Test Driven
Agile So)ware Development
Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast
Making Architectural Design Phase Obsolete TDD as a Design Method
HUT / SoberIT 2004 Spring T-76.650 SQA in Agile Software Development 1 Making Architectural Design Phase Obsolete TDD as a Design Method Marc Josefsson T-76.650 Seminar course on SQA in Agile Software
Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods
Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing
Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson
Development Methodologies Development Methodologies Dr. James A. Bednar [email protected] http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson [email protected] http://www.inf.ed.ac.uk/ssp/members/dave.htm
