UNIVERSITA DEGLI STUDI DEL SANNIO DIPARTIMENTO DI INGEGNERIA

Size: px
Start display at page:

Download "UNIVERSITA DEGLI STUDI DEL SANNIO DIPARTIMENTO DI INGEGNERIA"

Transcription

1 UNIVERSITA DEGLI STUDI DEL SANNIO DIPARTIMENTO DI INGEGNERIA DOTTORATO DI RICERCA IN INGEGNERIA DELL INFORMAZIONE CICLO XVII TESI DI DOTTORATO VALIDAZIONE EMPIRICA DEL PAIR PROGRAMMING RELATORI: CH.MO PROF. ANIELLO CIMITILE CH.MO PROF. GERARDO CANFORA DOTTORANDO: ING. CORRADO AARON VISAGGIO COORDINATORE: CH.MO PROF. MICHELE DI SANTO ANNO ACCADEMICO

2 Acknowledgements I d like to thank prof. Aniello Cimitle and Gerardo Canfora for their helpful leading along the three years of my study, explaining me how to study, how to realize research, how to evaluate my work. I hope they give me the opportunity to follow their steps forever. I d like to thank my father and my mother for staying at my side along all the way and giving me the suggestions and the strength to reach my final goal; they teach me to reject the fear to fall down, but to have ever the will to stand up and go on. I d like to thank also Gioia for her understanding, patience and help during the harder moments of weakness. Without her smile nothing could be done. I d like to thank also Gloria for being every time I needed to discuss with her. I d like to thank prof. Mario Piattini, Felix Garcia, Marcela Genero for their fruitful collaboration. I appreciate them both on the human and on the professional side. The deep relationship linking me to them is based on pure esteem and respect. I d like to thank prof. Giuseppe di Lucca and Emilio Bellini for their collaboration in the research. I d like to thank all the researchers and administrative people of the Research Centre of Software Technology (RCOST) for giving me all the organizational and human support to accomplish my research work in a very pleasant way. I d like to thank University of Sannio to give me the opportunity to take part to PhD program. Benevento, July Corrado Aaron Visaggio

3 ACKNOWLEDGEMENTS 2 ABSTRACT 6 CHAPTER I: INTRODUCTION 8 THE PLAN DRIVEN APPROACH TO SOFTWARE DEVELOPMENT: SOME LIMITS EMERGE 8 THE AGILE METHODS: MOTIVATIONS AND PURPOSE 9 THE INVESTIGATION: PAIR PROGRAMMING UNDER THE LENS 11 THE OVERALL ORGANIZATION OF THE THESIS 13 BIBLIOGRAPHY 14 CHAPTER II: THE DEBATE AROUND AGILE METHODS 16 THE ENTHUSIASM 16 THE SKEPTICISM 21 WHAT IS MISSING IN ORDER TO COMPLETE THE PICTURE? 24 THE STATE OF AGILE METHODS 32 BIBLIOGRAPHY 34 CHAPTER III: THE STATE OF THE ART 38 EMPIRICAL SOFTWARE ENGINEERING: THE IMPORTANCE OF THE EVIDENCE 38 EVIDENCE ON PAIR PROGRAMMING 43 FURTHER INVESTIGATIONS 53 THE RESEARCH PLAN 56 BIBLIOGRAPHY 58 CHAPTER IV: PRODUCTIVITY OF PAIR PROGRAMMING 62 THE EXPERIMENT ON PRODUCTIVITY 62 EXPERIMENT S CHARACTERIZATION 63 ANALYSIS OF DATA 64

4 4 STATISTICAL TESTS 67 THE EXPERIMENT ON STABILITY OF PRODUCTIVITY 67 ANALYSIS OF DATA 69 STATISTICAL TESTS 72 CONCLUSIONS 73 CHAPTER V: PAIR PROGRAMMING AND KNOWLEDGE LEVERAGING 74 THE PROBLEM: WHEN COULD PAIR DESIGNING BE THE PROPER SOLUTION? 74 THE EXPLORATORY EXPERIMENT 76 EXPERIMENT DESCRIPTION 76 THE RESULTS 80 THREATS TO VALIDITY 83 PRELIMINARY CONCLUSIONS 84 THE FOCALIZED EXPERIMENTS 85 INTRODUCTION 85 THE EXPERIMENTS 86 THE REPLICA IN SPAIN 89 ANALYSIS OF DATA 89 THE KNOWLEDGE DIFFUSION 91 THE KNOWLEDGE ENFORCEMENT 95 COMPARING KNOWLEDGE DIFFUSION AND ENFORCEMENT 99 EXPERIMENTAL THREATS 99 THE INDIVIDUAL BACKGROUND AS FACTOR OF SUCCESS OF PAIR DESIGNING 100 DESIGN AND RESULTS 100 CONCLUSIONS 102 BIBLIOGRAPHY 103 CHAPTER VI: PAIR PROGRAMMING AND DISTRIBUTED SOFTWARE DEVELOPMENT 107 INTRODUCTION 107 THE EXPERIMENTS 108 THE FIRST EXPERIMENT 108 QUALITY S RESULTS 116 EXPERIMENT S REPLICA 121 THE DISMISSAL PHENOMENON: CAUSES AND REMEDIES 124 EXPERIMENTAL VALIDITY 126

5 5 CONCLUSIONS 128 BIBLIOGRAPHY 130 CHAPTER VII: CONCLUSIONS 132 THE MAIN CONCERN ABOUT AGILITY 132 PRODUCTIVITY AND STABILITY OF PAIR PROGRAMMING THROUGHPUT 133 KNOWLEDGE TRANSFER WITH PAIR PROGRAMMING 134 DISTRIBUTION CAN AFFECT PAIR PROGRAMMING 134 LIMITS OF THE EXPERIMENTATION 135 FUTURE WORK 136 APPENDIX A 137 FORM FORM FORM APPENDIX B 143 USER_BRENCH REGISTRATION 143 BOOK SEARCH AND SELLING TRANSACTION 148 CLASS DIAGRAM 1: ENTITY CLASSES 152 CLASS DIAGRAM 2: CONTROL CLASSES 154 CLASS DIAGRAM 3: PRESENTATION CLASSES 156 QUESTIONNAIRE QA 158 QUESTIONNAIRE QB 159 APPENDIX C 160 EXTREME PROGRAMMING 160 SCRUM 161 CRYSTAL FAMILY OF METHODOLOGIES 161 DYNAMIC SYSTEMS DEVELOPMENT METHOD 162 FEATURE DRIVEN DEVELOPMENT 163

6 6 Abstract In the last decade, the interest toward agile methods has increasingly grown up and several companies have adopted them in software production. However, the agile approach to software process seems to deny and contradict some grounding rules and good practices of software engineering. This motivated the growth of three different positions taken by researchers and practitioners with regard to the agile approach. The first includes the advocates of the agile approach, who think that it is adequate for any context of software production. The second position includes those who think that the agile approach is not suitable at all to software development. The third position considers that the agile approach has advantages and limitations: it is necessary to precisely detect both. The main concerns regards the following issues: Without a definition of a plan to execute and an accurate phase of analysis and design, the performances of the project could deteriorate. The question is: do the costs (and the risk) of the process increase? Without a proper documentation, is it the knowledge about the product and the process transferable, understandable, maintainable? Is the agile approach suitable to all software development contexts, or in some conditions is better to avoid it? The body of knowledge about agile approach lacks of empirical studies, demonstrating which are the positive aspects to save and which are the drawbacks to avoid, with quantitative analysis. The thesis aims at providing empirical evidence about the agile approach with regards to these aspects. In the space of a thesis to study all the agile practices was not feasible; thus, an agile practice was selected: pair programming. This practice was chosen because it seemed to be exemplar of the more general concerns of agile methods. The research on pair programming was developed along three directives: Is pair programming convenient in terms of the ratio costs/benefits? Is pair programming effective for managing knowledge? Is pair programming suitable to every context?

7 7 The research has been conducted throughout an empirical investigation and has produced the results, summarized as follows: Pair programming may lead to an higher productivity if compared with solo programming. Furthermore, the throughput of the practice shows a greater stability and predictability than solo programming. Pair programming has a specific benefit: it supports the diffusion and enforcement of tacit knowledge among project s members. It can not take the place of the documentation as source of knowledge, but it can effectively improve its usage. Pair programming needs a tight collaboration and fluent communication. Without these two conditions the advantages of pair programming are likely to be lost. This is a limitation of the practice and hinders the successful application of the practice in every context. Distributed software development is a case where pair programming did not produce the expected benefits, because collaboration and communication are usually poorer than when the pair s members are co-located.

8 Chapter I: Introduction For long time the plan driven approach to software development was considered the appropriate way to execute a software process. As a matter of fact, this approach brings about many advantages, as well as: ensuring high levels of maturity, obtaining products of quality, controlling and improving the process. The application demonstrated that the plan driven approaches are not successful in every context. They can fail in those environments characterized by a frequent and unpredictable variability. In order to satisfy the need for a proper method to produce software in these contexts, agile methods were introduced. The aim of this thesis is to validate the effectiveness of agile methods. This chapter discusses the goal of research, the method followed in order to achieve the goal, and the motivations which leaded to investigate the effectiveness of agile methods as an alternative to plan-driven processes for software developments. The Plan Driven Approach to Software Development: some limits emerge The term plan-driven refers to a process completely described by a comprehensive definition including the detail of the process model, the procedures to be executed, and the precise responsibilities assigned to the process roles involved. The plan-driven approach for developing software is largely considered as a synonymous for rigor and discipline. The exemplar instance of a plan-driven process is the Waterfall Process Model [9], where the flux of the process is sequential and the execution of each activity depends on the completion of the previous ones. The basic idea of the plan-driven approach is to identify and distinguish clearly the different phases of the process, such as: requirements definition, analysis, design, coding, testing, and installation. The concept of organization s maturity, widespread by the family of the Capability Maturity Models (CMM) [7] from the Canergie Mellon Software Engineering Institute (SEI), emphasized some aspects of process quality such as: comprehensive definition, exact repeatability, continuous monitoring, evaluation of performance through metrics. Consequently, on one hand the quality of a process is considered as tightly dependent on these aspects and thus linked to the organization s maturity, and on the other hand, the respect of these constraints entails a certain stiffness for software production: it is mandatory to execute precise routines to meet certain goals and to produce specific documentation within defined tasks; each deviations from the plan is usually considered a menace to the process quality.

9 9 This approach permits to take processes under control, makes them repeatable and measurable, but also gives the processes a certain rigidity. Consequently, the organization may be not enough flexible to sustain changes in the availability of resources, in the time pressure, in the stability of requirements and so forth. Researchers and practitioners attempted to define methods and process models with a twofold purpose: assuring high levels of quality as well as the plan-driven approach does, and enabling organization to properly respond to the changing of some operative context variables. The continuous proposing of new process models as well as the spiral process of Boehm [2], the Rapid Application Development (RAD), the Rational Unified Process [6], the Prototyping, demonstrated the urgency for finding a trade-off between quality and flexibility. The grounding principles and values of Agile Movement were introduced in the Agile Software Development Manifesto [1], written in the 2001 by a group of practitioners and researchers, who supported the Agile methods since the early nineties. The Agile Manifesto, discussed in the following section, proposes a radical change of direction, with respect to plan driven development, in order to achieve flexibility without deteriorating quality of neither processes nor products. The main concern is that agile manifesto (apparently) contradicts some fundamental propositions of process quality as intended by the plan-driven approach. The Agile Methods: Motivations and Purpose The agile movement was motivated by the need to cope with the turmoil, typical of certain environments of software development, without neither overrunning the schedule nor increasing the budget; the constraints imposed by these situations usually hinder the successful application of plan-driven approaches. The term agility refers to the capability to face a frequently and rapidly changing operative context, without affecting costs and quality of the product in a relevant way. The Manifesto indicates a set of principles, named values, to be followed in order to perform an agile process of software development. In the following, the agile values are discussed, highlighting the differences with the plan-driven s definition of quality. Individuals and interaction over processes and tools. In the plan-driven approach, the knowledge about the process is managed throughout process definitions while collaboration and team coordination is enabled by proper tools, according to precise routines and procedures. In the agile philosophy, the knowledge that each team s member can offer to solve the problems should be available to the overall team; the purpose is to share quickly the knowledge for overcoming pitfalls and remove obstacles as they arise, during the project. The tight collaboration among the people is strongly recommended, relying on the effectiveness of face-to-face communication in terms of bandwidth of the information flux and knowledge transfer. The grounding idea is to gather the best

10 10 people who know what to do and how, rather than letting everyone to execute a process, relying on a precise and accurate definition of the process and on a large availability of the proper tools to accomplish tasks. The loss of a process definition makes the processes unrepeatable: the agile process means a set of practices, well known to the members of the team, executed in a very simple sequence. The idea of process stability needs to be rethought and tailored to agile processes. Working software over comprehensive documentation. The plan-driven approach requires the production of a bulky documentation (e.g. requirements definition, design, test cases, test report). Furthermore, the implementation of the system begins after a series of activities, which do not produce any code: eliciting and formalizing requirements, defining the architecture to be developed, realizing rigorous estimations of the process performances. This is not negative per se, but in certain situations, characterized by a great time pressure and scarce resources, the managers and the team s members prefer to give the priority to the production of working software. It becomes an effective indicator to evaluate the progress of the project in terms of cost; to increase the confidence of developers, managers, and customers about the goals already reached and the ones to reach; and to identify the problems either defects as soon as possible in order to reduce their impact in scope, schedule, and cost. Documentation usually helps the understanding of the process and the product which the team is developing. Which are the effects on the maintainability and transferability of the process and the product? Customer collaboration over contract negotiation. The plan-driven approach fits very well contexts where the requirements are completely defined at the project s kick off. The customer is able to sign a contract which describes precisely the product the Software Organization is going to release. Otherwise, to produce an up-front design to be respected along all the project is really hard. In such a case, the agile approach prescribes the customer to take part to the development process; the customer should assess the versions produced at each iteration and provide timely useful feedback for properly adjusting the design if the product is not satisfactory. This principle does not focus on analyzing the requirements and establishing an high level architecture, but makes the architecture to emerge from the implementation of the code and the resolution of problems at any iteration. The effects of a top-down view of the product could affect its overall quality. Responding to change over following a plan. When the availability of the resources, the requirements, the schedule change suddenly or frequently, or are particularly poor, following a well defined process model may be infeasible or risky. As a matter of fact, the process definition shows a general model of the project, without dealing with the limitations of the actual contexts in which the project is going to be executed. The agile approach suggests to adopt very lightweight processes, which do not own a rigorous definition, but leave the project team free to make different decisions along the project according to the stimuli and the needs deriving from the external universe. This characteristic is intended as permitting to successfully adapt the team and the project to the unexpected

11 11 limitations or resource scarceness. This principle is a threat to the capability of realizing dependable estimations about the project and hinders project management in different facets. The project leader foresees the costs and time, relying on her exclusive experience and evaluation. Appendix C offers an overview of some of the most widespread agile methods. The investigation: Pair programming under the lens The agile approach does not indicate a precise process definition for developing software, but it focuses on the methods to be used in the process. The agile approach provides the guidelines about the practices to be executed and leaves the organizations free to adopt these practices in accordance to the their own culture, capabilities, business goals, and limitations. The commonalties among the different agile methods are: cycling small iterations, which produce a working software, also if not complete; requiring the customer to actively collaborate by providing timely feedback on the product under construction; and give the priority at the software to be released among all the other process products. The main concern with the agile approach is the following: even if it promises to give a great flexibility to the project team, in order to face a dynamic environment, it seems also to contradict and deny a number or rules and good practices of software engineering. Some questions arise: to which extent can agile methods be adopted in industrial setting? Which are their benefits? Which are their drawbacks? The set of the agile practices is too large for studying all of them in the space of a thesis: one practice was selected and put under a lens, with the aim of studying the greatest numbers of its facets. The selected practice is pair programming. Pair Programming consists of two developers, working at the same code, on the same machine: one develops the code, the other one reviews it. The two roles can be switched during the programming session and usually the switch occurs when one developers can not proceed. The idea of pair programming is that two phases, coding and reviewing, which are usually detached and far from each others in the process, are overlapped. The hypothesis behind is that the instantaneous review permits to detect and remove defects right when they are injected in the system. Currently, the debate around agile methods is focuses around three main concerns and it is largely discussed in the chapter II: Q1: Without proper estimates on the process and on the product, the return of investments of agile processes can be seriously affected. What is the ratio costs/benefits due to the agile methods? Q2: Considered all the points of weakness of the agile processes, are there specific benefits of agile methods?

12 12 Q3: Without an appropriate process definition agile methods can fail in certain contexts. Which are the contexts suitable to the adoption of the agile methods? Pair programming was selected because it could be seen as an exemplification of the concerns expressed by Q1, Q2, and Q3, and related to the overall set of agile practices. Suitable contexts Pair Programming Specific Benefits Costs/Benefits Fig. 1. The three dimensions of investigation about Pair Programming. The purpose of the thesis is to clarify the position of agile methods with respect to the plan driven approach, by focusing on the practice of pair programming. In particular, pair programming will be analyzed from the three viewpoints shown in fig. 1. Q1: A claimed benefit of pair programming is the increasing of quality and productivity. This is due to the continuos review of the code, which let pair to remove defects from the code when they are injected. Moreover, the role switching between the pair s components reduces the latency times. The conjecture is that pair programming should ensure high level of effort s stability and productivity. Q2: Pair programming is supposed to leverage knowledge sharing among team s members. This benefit is specific of the practice and could be the reason why managers decide to adopt it also in other kinds of software process. Q3: Pair programming needs tight collaboration and a fluid communication; these are the necessary conditions to perform successfully the practice. But this suggests that if these conditions are missing the benefits of the practice could be lost. Consequently, some operative contexts which do not allow a tight collaboration and a fluent communication could deteriorate the success of the practice. An example is the distributed software development. The conjecture is that the practice could be not adaptable to every context.

13 13 The conjecture underlining the research of this thesis is the following: agile methods are not supposed to be better than the plan-driven approach in all cases, but can be a valid alternative in those contexts where the plan-driven approach fails. The purpose is to understand the actual limits and the actual benefits of agile practices, and in particular, pair programming. The overall Organization of the thesis The thesis is organized in further six Chapters as follows: The Chapter II provides an overview about the three major positions of practitioners and researchers about pair programming. There is not a common agreement about agile methods, because the state of the art is not enough mature and the greatest part of literature consists of either anecdotal experience or qualitative study. The first position considers the agile approach as a suitable solution to certain operative situations: these ones are the advocates of the agile movement. The second position rejects agile methods all together, because its supporters consider agility as too contrasting the good practices of software engineering. The third position suggests to investigate in depth all the aspects of agile methods, in order to save the positive aspects and to avoid the drawbacks. In the second part of this chapter the most relevant knowledge about agile methods is collected, organized as pros, cons, and open issue. The Chapter III focuses on the current body of knowledge about pair programming and illustrates the research plan to be followed in the thesis. The first part provides an accurate examination of the most important studies accomplished on the practice. From such an analysis the motivations for the investigation discussed in this thesis emerges. Basically, what emerges is that the state of the art has a poor evidence of the expected benefits of the practice. The second part describes the plan of the research to execute in the thesis. Chapter IV discusses the experimentation on productivity and quality of pair programming. A concern about pair programming is about the cost of the practice: the organization has to pay two developers for the work of one of them, at least apparently. The advocates of the practice think that pair programming is not the work of one, and, moreover, it is the work of more than a pair of developers. Pair programming should produce better programs, because the review phase occurs at the same time of the development; it shortens the time for delivering the software because it reduces the number of the rework; and, finally, the switch of the pair

14 14 helps avoid the latency time due to the problem which developer ignores how to solve. Chapter V investigates the relationship between pair programming and one specific benefit of the practice itself: the knowledge transfer. Working side by side, at the same piece of code, discussing solutions and alternatives, should foster the knowledge sharing between the two developers. One of the phase which could particularly benefit from an effective knowledge sharing is the design of software system. As a matter of fact, the different levels of abstraction to master when dealing with the software design, make necessary experience and good strategies for successfully operate. This is the reason why, the concept of pair programming was applied to design phase and it was named pair designing. Thus, the chapter investigates to which extent pair designing emphasizes the knowledge transfer among the components of the pair. Chapter VI studies the practice in a particular context for software development, namely distributed teams. In the last decade the distribution of software processes became very widespread, for a number of reason: the need to enlarge the production cycle up to 24 hours a day, the dispersion of kinds of competency, which are required to accomplish the same tasks, projects shared by different organizations on the globe, and so forth. Pair programming requires a strict collaboration and a frequent communication, which are usually poor in distributed teams. Consequently, adopting pair programming in a distributed process could deteriorate the performances of the practice. This chapter investigates how distribution affects the outcomes of pair programming. Chapter VII discusses the conclusions at the three research questions, according with the results of the accomplished experimentation. Furthermore, it offers an overview of the open questions left by this research and the consequent future directions of investigation. Bibliography [1] Beck K., Beedle M., van Bennekum A., Cockburn A., Cunningham W., Fowler M., Grenning J., Highsmith J., Hunt A., Jeffres R., Kern J., Marick B., Martin R., Mellor S., Schwaber K., Sutherland J., and Thomas D. Manifesto for Agile Software Development, 2001, (accesed on the 23 rd of June 2005) [2] Beck K. Extreme Programming explained: Embrace change. Addison-Wesley: Reading, Massachusetts, 1999.

15 15 [3] Boehm B.W. "A Spiral Model of Software Development and Enhancement" Computer, 11(4), 1988, IEEE CS Press, [4] Cockburn A., Writing Effective Use Cases. The Crystal Collection for Software Professionals. Addison-Wesley Professional, Reading, Massachusetts, [5] DSDM Consortium. Dynamic Systems Development Methods, version 3., DSDM Consortium, Ashford, Eng [6] Kruchten P. The Rational Unified Process: An Introduction (2nd Edition). Addison-Wesley Professional: Reading, Massachusetts, [7] Humprey W.S. Characterizing the software Process. IEEE Software, 5(2) 1988,IEEE CS Press, [8] Palmer S.R. and Felsing J.M. A practical Guide to Feature-Driven Development. Prentice Hall: Upper Saddle River, NJ, [9] Rising L. and Jannoff N.S. The scrum software development process for small teams. IEEE Software, 17(4), 2000, IEEE CS Press, [10] Royce W. "Managing Development of Large Scale Software Systems". Proc. of IEEE WESCON, August 1970

16 Chapter II: The Debate around Agile Methods This chapter discusses the different positions of researchers and practitioners on agile methods, with the aim of identifying the most urgent open issues to face and indicating the consolidated body of knowledge. The first section shows the standpoints in favor of agile methods; the second one discusses the points of weakness; and, finally, the third section enumerates the suggestions for successful adoption in real contexts. At the end of the chapter a synoptic table summarizes the three viewpoints, in terms of pros, cons, and open issues about the agile methodologies. This will provide the context and the motivation for the research discussed in this thesis. The enthusiasm Some authors believe that agile approaches are suitable to every context of software development. This section offers a comprehensive view of the most representative motivations of such a position. Agile methods are often considered as contrasting the practices used in the plandriven processes: this is one of the reason why many researchers and some practitioners do not sustain them. Barry Boehm [12] proposes to synthesize the two approaches, agile and plan driven, rather than considering them as polar opposites. The author proposes the planning spectrum, illustrated in the fig.2: unplanned and undisciplined methods occupy the extreme left, whereas the micromilestones planning ones stay at the extreme right. The author compares agile and plan driven approaches in five key areas: Developers. The agility is obtained by relying much more on the tacit knowledge embodied in the team rather than by writing the knowledge down in the plans. When the tacit knowledge is sufficient for the life-cycle needs and it is well communicated or transferred, things work fine. But there is also the risk that the team commits irrecoverable architectural mistakes because of unrecognizable shortfalls in its tacit knowledge. Plan-driven reduces this risk by investing in lifecycle architecture and plans, and using this to facilitate external expert reviews. In this case a risk must be accepted: the changes are so rapid that the plan can not change in perfect accordance with them and they begin obsolete or expensive to keep up to date. Customers. Agile methods are successful when the customers operate in dedicate mode with the development team and their tacit knowledge is sufficient for the full span of the application. These methods risk tacit knowledge shortfalls

17 17 that could be avoided with the plan-driven approaches by producing documentation and review board. Requirements. Plan driven methods work best when requirements can be defined in advance and remain relatively stable with change rates on the order of one percent per month. In the current changing environments the traditional emphasis on having complete, consistent, precise, testable, and traceable requirements encounters difficult to insurmountable requirements-update problems. Architecture. As with requirements, plan driven methods are preferred if the heavyweight architecture can accommodate and anticipate requirement changes. Size. Plan driven methods scale better to large projects. The cost of management for large teams could be not justified for small projects. The author concludes that hybrid approaches combining both methods are feasible and necessary for projects showing a mix of agile and plan-driven foreground characteristics. The agile approaches help to deal with the turmoil in the current technology trends, but the plan driven ones provide the dependability that is strongly requested in many marketplace contexts. The best solution stands in the word balance. Hackers XP Adaptive SW development Milestone Risk-Driven models Milestone Plan-Driven models Inch-pebble ironbound contract Agile methods CMM Software CMM Fig. 2. Boehm s Model. In [18] Cockburn and Highsmith recall that two dominant ideas drive agile development: reduce the cost of moving information between people, and reduce the elapsed time between making a decision and seeing the consequences of that decision. The first goal is met by: (i) placing people physically closer, (ii) replacing documents with talking in person and at whiteboards, and (iii) improving the team s amicability so that people are more inclined to release and spread valuable information quickly. The second goal is reached by: (i) making user experts available to the team or, even better, part of the team, and (ii) working incrementally. Provided that agile methods should respond to turbulent environment, agile teams require responsive people and organizations: in other words, agile teams focus on individual competency as a critical factor in project success.

Software Development Life Cycle (SDLC)

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

More information

Introduction to Agile Software Development

Introduction to Agile Software Development Introduction to Agile Software Development Word Association Write down the first word or phrase that pops in your head when you hear: Extreme Programming (XP) Team (or Personal) Software Process (TSP/PSP)

More information

Software Development Process

Software Development Process Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software

More information

Comparing Agile Software Processes Based on the Software Development Project Requirements

Comparing Agile Software Processes Based on the Software Development Project Requirements CIMCA 2008, IAWTIC 2008, and ISE 2008 Comparing Agile Software Processes Based on the Software Development Project Requirements Malik Qasaimeh, Hossein Mehrfard, Abdelwahab Hamou-Lhadj Department of Electrical

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development Ingegneria del Software Corso di Laurea in Informatica per il Management Agile software development Davide Rossi Dipartimento di Informatica Università di Bologna The problem Efficiency: too much effort

More information

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 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

More information

History of Agile Methods

History of Agile Methods Agile Development Methods: Philosophy and Practice CPSC 315 Programming Studio Fall 2010 History of Agile Methods Particularly in 1990s, some developers reacted against traditional heavyweight software

More information

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: 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

More information

Software Development Process Selection Approaches

Software Development Process Selection Approaches The Journal of Applied Science Vol. 11 No. Vol. 2:45-50 11 No. 2 [2012] ISSN 1513-7805 Printed in Thailand Review Article Software Development Process Selection Approaches Phongphan Danphitsanuphan Department

More information

Agile user-centred design

Agile user-centred design Agile user-centred design Marc McNeill Thoughtworks, 9th Floor Berkshire House 168-173 High Holborn London, WC1V 7AA Agile methods are becoming increasingly common in application design, with their collaborative

More information

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

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

More information

Hamid Faridani (h.faridani@rogers.com) March 2011

Hamid Faridani (h.faridani@rogers.com) March 2011 Hamid Faridani (h.faridani@rogers.com) 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

More information

A Capability Maturity Model (CMM)

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

More information

Software Quality and Agile Methods

Software Quality and Agile Methods Software Quality and Agile Methods Ming Huo, June Verner, Liming Zhu, Muhammad Ali Babar National ICT Australia Ltd. and University of New South Wales, Australia {mhuo, jverner, limingz, malibaba }@cse.unsw.edu.au

More information

COMP 354 Introduction to Software Engineering

COMP 354 Introduction to Software Engineering COMP 354 Introduction to Software Engineering Greg Butler Office: EV 3.219 Computer Science and Software Engineering Concordia University, Montreal, Canada Email: gregb@cs.concordia.ca Winter 2015 Course

More information

CSE 435 Software Engineering. Sept 16, 2015

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

More information

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

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

More information

Advanced Software Engineering. Software Development Processes

Advanced Software Engineering. Software Development Processes Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Advanced Software Engineering Software Development Processes Prof. Agostino Poggi Software Development

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

CS435: Introduction to Software Engineering!  Software Engineering: A Practitioner s Approach, 7/e  by Roger S. Pressman CS435: Introduction to Software Engineering! " " " " " " " "Dr. M. Zhu! Chapter 3! Agile Development! Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

More information

Agile Projects 7. Agile Project Management 21

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

More information

Use and Significance of Agile Software Development

Use and Significance of Agile Software Development Use and Significance of Agile Software Development Manisha Singh M.tech (Computer Science and Engineering) Department of Computer Science Amity University (Lucknow) Anuradha Sharma Senior Lecturer Department

More information

CS4507 Advanced Software Engineering

CS4507 Advanced Software Engineering CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development

More information

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) International Journal of Engineering, Business and Enterprise

More information

Incorporating Agile Methods in Large-Scale Systems

Incorporating Agile Methods in Large-Scale Systems Incorporating Agile Methods in Large-Scale Systems April 30, 2011 Why would a large-scale software development company want to be agile? Agile methods aim to counter the tremendous costs with changes late

More information

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study S. Vijayakumar vijsy003@students.unisa.edu.au School of Computer and Information Science University of South Australia,

More information

D25-2. Agile and Scrum Introduction

D25-2. Agile and Scrum Introduction D25-2 Agile and Scrum Introduction How to Use this Download This download is an overview of a discussion Intertech has with clients on Agile/Scrum This download has an overview of Agile, an overview of

More information

Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations

Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations Mennatallah H. Ibrahim Department of Computers and Information Sciences Institute

More information

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell ATHABASCA UNIVERSITY Selecting a Software Development Methodology based on Organizational Characteristics BY Adrienne Farrell An essay submitted in partial fulfillment Of the requirements for the degree

More information

A Comparison between Five Models of Software Engineering

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

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Jonathan Hoyle Eastman Kodak Thursday, June 2, 2005 Overview Predictive Methodologies Waterfall Other Predictive Methodologies Agile Methodologies Extreme Programming

More information

CRITICAL ANALYSYS OF THE SCRUM PROJECT MANAGEMENT METHODOLOGY

CRITICAL ANALYSYS OF THE SCRUM PROJECT MANAGEMENT METHODOLOGY N ft n il Ionel CRITICAL ANALYSYS OF THE SCRUM PROJECT MANAGEMENT METHODOLOGY The Academy of Economic Studies Bucharest, Management Faculty, 6 Romana Square, Sector 1, Bucharest, Management Chair, E-mail:

More information

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson 23.11.2005 Jyväskylä

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson 23.11.2005 Jyväskylä AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson 23.11.2005 Jyväskylä Fact corner: SME of 250 developers Mobile & desktop sw Products sold globally EXAMPLE OF AN INNOVATIVE

More information

Success Factors of Agile Software Development

Success Factors of Agile Software Development Success Factors of Agile Software Development Subhas C. Misra, Vinod Kumar, and Uma Kumar Carleton University, Ottawa, Canada Abstract Agile software development methodologies have recently gained widespread

More information

www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Created by Stephen Barkar - www.stephenbarkar.se

www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Created by Stephen Barkar - www.stephenbarkar.se 1 www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Purpose with the material 2 This material describes the basics of Agile and Lean and the similarities and differences between

More information

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

Software Quality and Assurance in Waterfall model and XP - A Comparative Study Software Quality and Assurance in Waterfall model and XP - A Comparative Study Dr. Sana a Jawdat Khalaf Sana_j_11@hotmail.com Dr. Mohamed Noor Al-Jedaiah m_aljedaiah@ammanu.edu.jo Abstract: -Dealing with

More information

SOFTWARE PROCESS MODELS

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

More information

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011, 2915-2919

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011, 2915-2919 Software Quality Assurance in CMM and XP- A Comparative Study CH.V. Phani Krishna and Dr. K.Rajasekhara Rao CSE Department, KL University, Guntur dt., India. Abstract Software Quality Assurance is a planned

More information

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations www.ijcsi.org 457 Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations Prakash.V SenthilAnand.N Bhavani.R Assistant

More information

Alternative Development Methodologies

Alternative Development Methodologies Alternative Development Methodologies The Software Development Process described in the course notes and lecture is a generalized process that been in use for decades. Over this time, scholars in the IT

More information

Agile and Secure: Can We Be Both?

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. keith.landrus@denimgroup.com (210) 572-4400 Copyright 2006 - The OWASP Foundation Permission

More information

An Overview of Quality Assurance Practices in Agile Methodologies

An Overview of Quality Assurance Practices in Agile Methodologies T-76.650 SEMINAR IN SOFTWARE ENGINEERING, SPRING 2004 1 An Overview of Quality Assurance Practices in Agile Methodologies Olli P. Timperi Abstract The focus of literature and debates of agile methodologies

More information

Agile Software Development

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

More information

Large Scale Systems Design G52LSS

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

More information

Software Engineering

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

More information

The most suitable system methodology for the proposed system is drawn out.

The most suitable system methodology for the proposed system is drawn out. 3.0 Methodology 3.1 Introduction In this chapter, five software development life cycle models are compared and discussed briefly. The most suitable system methodology for the proposed system is drawn out.

More information

A Cynical View on Agile Software Development from the Perspective of a new Small-Scale Software Industry

A Cynical View on Agile Software Development from the Perspective of a new Small-Scale Software Industry A Cynical View on Agile Software Development from the Perspective of a new Small-Scale Software Industry Apoorva Mishra Computer Science & Engineering C.S.I.T, Durg, India Deepty Dubey Computer Science

More information

Agile Software Engineering, a proposed extension for in-house software development

Agile Software Engineering, a proposed extension for in-house software development Journal of Information & Communication Technology Vol. 5, No. 2, (Fall 2011) 61-73 Agile Software Engineering, a proposed extension for in-house software development Muhammad Misbahuddin * Institute of

More information

Abstract. Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL

Abstract. Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL ISCTE, 15 April 2005 Abstract 2 From anorexic to bulimic Overview of heavy-weight methodologies Origins of light-weight

More information

Transition to Agile Development

Transition to Agile Development 2010 18th IEEE International Requirements Engineering Conference Transition to Agile Development Rediscovery of Important Requirements Engineering Practices Juha Savolainen Nokia Research Center Nokia

More information

Tamanna Assistant Professor Chandigarh University Gharuan, Mohali,India

Tamanna Assistant Professor Chandigarh University Gharuan, Mohali,India Volume 4, Issue 6, June 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com An Agile Methodology

More information

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

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

More information

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

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

More information

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of

More information

USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS

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

More information

Information Systems Development Process (Software Development Life Cycle)

Information Systems Development Process (Software Development Life Cycle) Information Systems Development Process (Software Development Life Cycle) Phase 1 Feasibility Study Concerned with analyzing the benefits and solutions for the identified problem area Includes development

More information

Agile Software Development Methodologies and Its Quality Assurance

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

More information

LUCID with Scrum in the Software Business

LUCID with Scrum in the Software Business LUCID with Scrum in the Software Business Mikael Blomberg mrblombe@cc.hut.fi Abstract. LUCID (Logical User Centered Interaction Design) (Shneiderman 1998, p. 104) is a methodology, more specifically a

More information

Agile QA s Revolutionary Impact on Project Management

Agile QA s Revolutionary Impact on Project Management Agile QA s Revolutionary Impact on Project Management Introduction & Agenda Rachele Maurer Agile Coach, Platinum Edge Inc. PMP, CSM, PMI-ACP Agenda A quick overview of agile Current QA practices QA using

More information

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development EMC PERSPECTIVE Adopting an Agile Approach to OSS/BSS Development Reader ROI The agile software methodology is different from the traditional approach in that requirements gathering and analysis, design,

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Software process model

Ingegneria del Software Corso di Laurea in Informatica per il Management. Software process model Ingegneria del Software Corso di Laurea in Informatica per il Management Software process model Davide Rossi Dipartimento di Informatica Università di Bologna The task of the software development team

More information

PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS

PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS Martin Tomanek and Tomas Klima Department of Systems Analysis, University of Economics, Prague, Czech Republic ABSTRACT Agile development methods

More information

Software development process

Software development process OpenStax-CNX module: m14619 1 Software development process Trung Hung VO This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 2.0 Abstract A software development

More information

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010 SWEN - Software Engineering Network Donnerstag 06. Mai. 2010 Agile Requirements Engineering Blaise Rey-Mermet, EVOCEAN GmbH, 2010 My background Executive Roles Dept. Head - Requirements Management & Engineering

More information

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL Sanja Vukićević 1, Dražen Drašković 2 1 Faculty of Organizational Sciences, University of Belgrade, vukicevicsanja@yahoo.com 2 Faculty

More information

Scaling Down Large Projects to Meet the Agile Sweet Spot

Scaling Down Large Projects to Meet the Agile Sweet Spot Scaling Down Large Projects to Meet the Agile Sweet Spot Philippe Kruchten Kruchten Engineering Services Ltd Presenter Philippe Kruchten, Ph. D., P. Eng. KESL 2906 West 37 th avenue Vancouver BC V5Z 2M9

More information

Controlling Change on Agile Software Development Projects

Controlling Change on Agile Software Development Projects Universal Journal of Management 4(1): 42-49, 2016 DOI: 10.13189/ujm.2016.040106 http://www.hrpub.org Controlling Change on Agile Software Development Projects Andrew L Ecuyer 1, Syed Adeel Ahmed 2,* 1

More information

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986) Agile Methods Barry Boehm, CS 510 Lecture Fall 2001 (boehm@sunset.usc.edu) (http://sunset.usc.edu) Outline Silver bullets and lead bullets Information technology trends The dwindling lead-bullet niche

More information

Agile methods. Objectives

Agile methods. Objectives Agile methods CMSC435-1 Objectives To explain how an iterative, incremental development process leads to faster delivery of more useful software To discuss the essence of agile development methods To explain

More information

Experiences of Using Extreme Programming to Support a Legacy Information System Migration Project

Experiences of Using Extreme Programming to Support a Legacy Information System Migration Project Experiences of Using Extreme Programming to Support a Legacy Information System Migration Project Juha Koskela 1, Mauri Myllyaho 2, Jukka Kääriäinen 1, Dan Bendas 2, Jarkko Hyysalo 2, Anne Virta 2 1 VTT

More information

Software Development with Agile Methods

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

More information

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development Third 21st CAF Conference at Harvard, in Boston, USA. September 2015, Vol. 6, Nr. 1 ISSN: 2330-1236 A Software Project Management Innovation (SPM) Methodology: A vel Method for Agile Software Development

More information

Neglecting Agile Principles and Practices: A Case Study

Neglecting Agile Principles and Practices: A Case Study Neglecting Agile Principles and Practices: A Case Study Patrícia Vilain Departament de Informatics and Statistics (INE) Federal University of Santa Catarina Florianópolis, Brazil vilain@inf.ufsc.br Alexandre

More information

Software Development Life Cycle Models - Process Models. Week 2, Session 1

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

More information

New Developments in an Agile World: Drafting Software Development Agreements. By: Paul H. Arne 1,2

New Developments in an Agile World: Drafting Software Development Agreements. By: Paul H. Arne 1,2 New Developments in an Agile World: Drafting Software Development Agreements By: Paul H. Arne 1,2 A few months before this article was prepared, a group of senior IT professionals from some of the largest

More information

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca Using Simulation to teach project management skills Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca Agenda of the workshop 1 The software project management theory overview (40 minutes) 2 Why use SDLC

More information

Akhil Kumar 1, Bindu Goel 2

Akhil Kumar 1, Bindu Goel 2 Factors Influencing Agile Practices: A Survey Akhil Kumar 1, Bindu Goel 2 1 (University School of Information Technology, GGS Indraprastha University, New Delhi-110075) 2 (University School of Information

More information

Publication I. 2005 International Society of Agile Manufacturing (ISAM) Reprinted by permission of International Society of Agile Manufacturing.

Publication I. 2005 International Society of Agile Manufacturing (ISAM) Reprinted by permission of International Society of Agile Manufacturing. Publication I Juha Itkonen, Kristian Rautiainen, and Casper Lassenius. 2005. Toward an understanding of quality assurance in agile software development. International Journal of Agile Manufacturing, volume

More information

Lifecycle Models: Waterfall / Spiral / EVO

Lifecycle Models: Waterfall / Spiral / EVO Lifecycle Models: Waterfall / Spiral / EVO Dror Feitelson Basic Seminar on Software Engineering Hebrew University 2011 Lifecycle The sequence of actions that must be performed in order to build a software

More information

ASSESSMENT OF SOFTWARE PROCESS MODELS

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

More information

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology Process Methodology for Wegmans Deli Kiosk Version 1.0 Prepared by DELI-cious Developers Rochester Institute of Technology September 15, 2013 1 Table of Contents 1. Process... 3 1.1 Choice... 3 1.2 Description...

More information

Software Development Processes. Software Life-Cycle Models

Software Development Processes. Software Life-Cycle Models 1 Software Development Processes Sequential, Prototype-based RAD, Phased, Risk-based Spiral (c) 1998 M Young CIS 422/522 4/3/98 1 Software Life-Cycle Models Breaking projects down into pieces for... Planning

More information

Computer Science Department CS 470 Fall I

Computer Science Department CS 470 Fall I Computer Science Department CS 470 Fall I RAD: Rapid Application Development By Sheldon Liang CS 470 Handouts Rapid Application Development Pg 1 / 5 0. INTRODUCTION RAD: Rapid Application Development By

More information

A comparative study on usage of traditional and agile software development methodologies in software industry of Asia

A comparative study on usage of traditional and agile software development methodologies in software industry of Asia A comparative study on usage of traditional and agile software development methodologies in software industry of Asia Syed Faisal Ahmed Bukhari and Hira Khan Department of Computer Engineering, Sir Syed

More information

Agile in Financial Services A Framework in Focus

Agile in Financial Services A Framework in Focus Agile in Financial Services A Framework in Focus John B. Hudson, B.Sc, PMP, CSM PMI NJ Chapter February 19, 2013 19 Feb 2013 1 Objectives 1. Agile Development an Overview 2. The Agile Enterprise Infrastructure

More information

Software processes that are:

Software processes that are: Agile Processes Software processes that are: Incremental (small software releases with rapid cycles) Cooperative (customer and developer working together with close communication) Straightforward (method

More information

Comparison between Agile and Traditional software development methodologies

Comparison between Agile and Traditional software development methodologies Cumhuriyet Üniversitesi Fen Fakültesi Fen Bilimleri Dergisi (CFD), Cilt:36, No: 3 Özel Sayı (2015) ISSN: 1300-1949 Cumhuriyet University Faculty of Science Science Journal (CSJ), Vol. 36, No: 3 Special

More information

Introduction to Agile Software Development. EECS 690 Agile Software Development

Introduction to Agile Software Development. EECS 690 Agile Software Development Introduction to Agile Software Development EECS 690 Agile Software Development Agenda Research Consent Forms Problem with Software Engineering Motivation for Agile Methods Agile Manifesto Principles into

More information

Software Engineering Compiled By: Roshani Ghimire Page 1

Software Engineering Compiled By: Roshani Ghimire Page 1 Unit 7: Metric for Process and Product 7.1 Software Measurement Measurement is the process by which numbers or symbols are assigned to the attributes of entities in the real world in such a way as to define

More information

Agile Engineering Introduction of a new Management Concept

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 (philipp.hecker_ch@bluewin.ch) Artur Kolb (arthur.kolb@hs-kempten.de)

More information

Extreme Programming, an agile software development process

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

More information

Non-Technical Issues in Software Development

Non-Technical Issues in Software Development Non-Technical Issues in Software Development David E. Kieras! University of Michigan 1 Introduction Question: Why isn't software of higher quality?! More useful, more usable, more reliable?! Many large

More information

Automated Acceptance Testing of High Capacity Network Gateway

Automated Acceptance Testing of High Capacity Network Gateway Automated Acceptance Testing of High Capacity Network Gateway Ran Nyman 1, Ismo Aro 2, Roland Wagner 3, 1,2,3 Nokia Siemens Network, PO Box 1 FI-02022 Nokia Siemens Networks 1 ran@rannicon.com, 2 ismo.aro@nsn.com,

More information

CMMI - The AGILE Way By Hitesh Sanghavi

CMMI - The AGILE Way By Hitesh Sanghavi CMMI - The AGILE Way By Hitesh Sanghavi 1 The Maturity Levels 5 Focus on process improvement Optimizing 3 4 2 Process measured and controlled Process characterized for the organization and is proactive

More information

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler Best-Practice Software Engineering: Software Processes to Support Project Success Dietmar Winkler Vienna University of Technology Institute of Software Technology and Interactive Systems Dietmar.Winkler@qse.ifs.tuwien.ac.at

More information

Framework for Agile Methods Classification

Framework for Agile Methods Classification Framework for Agile Methods Classification Adrian Iacovelli and Carine Souveyet Centre de Recherche en Informatique (CRI), Université Paris 1 - Panthon Sorbonne, 90 rue Tolbiac, 75013 Paris {adrian.iacovelli,carine.souveyet}@univ-paris1.fr

More information

Agile Software Development compliant to Safety Standards?

Agile Software Development compliant to Safety Standards? DB AG/Christian Bedeschinski www.thalesgroup.com/germany Agile Software Development compliant to Safety Standards? Christian Scholz Thales Transportation Systems 2 / Content Motivation Agile Software Development

More information

SAFETY & RESILIENCE ISSUES IN AUTOMOTIVE SOFTWARE DEVELOPMENT PANEL

SAFETY & RESILIENCE ISSUES IN AUTOMOTIVE SOFTWARE DEVELOPMENT PANEL SAFETY & RESILIENCE ISSUES IN AUTOMOTIVE SOFTWARE DEVELOPMENT PANEL 1 Safety Panel when 26262 will be issued, enforced? What about 61508? by whom, which authorities? who and how will verify conformance?

More information

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring 1998 1

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring 1998 1 1 Software Development Processes Sequential, Prototype-based RAD, Phased, Risk-based Spiral (c) 1998 M Young CIS 422/522 1/10/99 1 Software Life-Cycle Models Breaking projects down into pieces for... Planning

More information

Agile Software Engineering Practice to Improve Project Success

Agile Software Engineering Practice to Improve Project Success Agile Software Engineering Practice to Improve Project Success Dietmar Winkler Vienna University of Technology Institute of Software Technology and Interactive Systems dietmar.winkler@qse.ifs.tuwien.ac.at

More information