| Articles | Papers | Books | Resources |
Abstract:
The transition from a plan-driven to an agile process affects not only the development team members, but also other teams, departments, and management. Any new process will likely attract developers excited to try it while repelling those opposed to change. Thus, how an agile process is introduced into an organization significantly affects its ultimate success.
Abstract:
Extreme Programming (XP) is a software process methodology that nominates writing code as the key activity throughout the development process. While at first glance this sounds chaotic, a disciplined group utilizing XP performs sufficient requirements engineering. This paper describes and evaluates the quality of requirements generated by an ideal group using XP and discusses how the XP process can assist or hinder proper requirements engineering.
Abstract:
Many process-oriented software developers (some of whom use the CMM) think of Extreme Programming (XP) as a "seat-of-the-pants" development method. Many high-speed cutting-edge developers (whether they use XP methods or not) see CMM as a cumbersome unnecessary impediment to developing software quickly. This is the result of a myth: Software development speed must be sacrificed when following a process-disciplined approach (such as CMM). This myth is defeated when we look at two realities: The CMM is tailorable, and XP is disciplined. An alternate look at the realities helps open up a new possible approach so that these methods can work together. This article puts forth ideas to bridge the gap between the two sides using the suggested approach, and concludes that process discipline can be achieved without sacrifice to the speed of development.
Abstract:
Although many view iterative and incremental development as a modern practice, its application dates as far back as the mid-1950s. Prominent software-engineering thought leaders from each succeeding decade supported IID practices, and many large projects used them successfully. These practices may have differed in their details, but all had a common themeˇX to avoid a single-pass sequential, document-driven, gated-step approach.
Abstract:
The world we live in today demands greater availability of decision-making information. The use of cell phones, hand held computers, online banking, and internet stock trading are only a few examples of this demand for timely information. Information Technology organizations are feverishly scrambling in an attempt to gain ground on the ever increasing demand for their services. This article takes a glimpse into the software development methodologies that are being applied in an attempt to catch up in the rapidly changing world in which we live. A brief insight into traditional development methods will be followed by an analysis of the principles underlying the new, less traditional methods. These newer, extreme methodologies share many common characteristics, which will be identified and discussed. An analysis will also be made of the ability of extreme methodologies to meet the rigor demanded by the Software Capability Maturity Model.
Abstract:
In this article, the author shares how ThoughtWorks introduced Extreme programming into an organization and successfully completed a bleeding-edge technology project with client staff that had no previous experience using an Agile development approach. This article illustrates not only how XP helped make the project a success, but also provides other valuable lessons learned regarding the introduction of XP at client sites.
Abstract:
Agile software development methods have caught the attention of software engineers and researchers worldwide. Scientific research is yet scarce. This paper reports results from a study, which aims to organize, analyze and make sense out of the dispersed field of agile software development methods. The comparative analysis performed using the method's life-cycle coverage, project management support, type of practical guidance, fitness-for-use and empirical evidence as the analytical lenses. The results show that agile software development methods, without rationalization, cover certain/different phases of the software development life-cycle and most of them do not offer adequate support for project management. Yet, many methods still attempt to strive for universal solutions (as opposed to situation appropriate) and the empirical evidence is still very limited Based on the results, new directions are suggested In principal it suggested to place emphasis on methodological quality not method quantity.
Abstract:
Agile - denoting "the quality of being agile; readiness for motion; nimbleness, activity, dexterity in motion" - software development methods are attempting to offer an answer to the eager business community asking for lighter weight along with faster nimbler software development processes. This is especially the case with the rapidly growing and volatile Internet software industry as well as for the emerging mobile application environment. The new agile methods ahve evoked a substantial amount of literature and debates. However, academic research on the subject is still scarece, as most of existin publicatons are written by practitioners or consultants.
The aim of this publication is to beginn filling this gap by systematically reviewing the existing literature on agile software development methodologies. This publicatioin has three purposes. First, it roposes a definition and a classifiaction of agile sfotware development approaches. Second, it analyses ten software development methods that can be characterized as being "agile" against the defined criteria. Third, it compares these methods and highlights their similarities and differences. Based on this analysis, future research needs are identified and discussed.
Abstract:
Traditionally, software development teams follow Tayloristic approaches favoring division of labor and, hence, the use of role-based teams. Role-based teams require the transfer of knowledge from one stage of the development process to the next. As multiple stages are involved, the problem of miscommunication due to indirect and long communication path is amplified. Agile development teams address this problem by using cross-functional teams that encourages direct communication and reduces the likelihood of miscommunication. Agile approaches usually require team members to be co-located and only facilitate intra-team learning. To overcome the restriction in colocation and support organizational inter-team learning while supporting the social context critical to the sharing of tacit knowledge is the focus of this paper. We also highlight that humans are good at making sense of incomplete and approximative information.
Abstract:
This paper presents a comparative analysis of knowledge sharing approaches of agile and Tayloristic (traditional) software development teams. Issues of knowledge creation, knowledge conversion and transfer, continuous learning, competence management and team composition are discussed. Experience repositories and other tools for knowledge dissemination are examined.
Abstract:
This paper develops the use of 'guided interviews' and questionnaires in an empirical study of a small software development company. In particular, the study identified a number of human issues in communications, technology, teamwork and political factors that significantly influenced the implementation and evolution of eXtreme programming into a software development team.
Abstract:
This paper reports on experience from teaching basic software engineering concepts by using Extreme Programming in a second year undergraduate course taken by 107students. We describe how this course fits into a wider programme on software engineering and technology and report our experience from running and improv- ing the course. Particularly important aspects of our setup includes team coaching (by older students) and "team- in-one-room "'. Our experience so far is very positive and we see that students get a good basic understanding of the important concepts in software engineering, rooted in their own practical experience.
Abstract:
In recent years, the use of, interest in, and controversy about Agile methodologies have realized dramatic growth. Anecdotal evidence is rising regarding the effectiveness of agile methodologies in certain environments and for specified projects. However, collection and analysis of empirical evidence of this effectiveness and classification of appropriate environments for Agile projects has not been conducted. Researchers from four institutions organized an eWorkshop to synchronously and virtually discuss and gather experiences and knowledge from eighteen Agile experts spread across the globe. These experts characterized Agile Methods and communicated experiences using these methods on small to very large teams. They discussed the importance of staffing Agile teams with highly skilled developers. They shared common success factors and identified warning signs of problems in Agile projects. These and other findings and heuristics gathered through this valuable exchange can be useful to researchers and to practitioners as they establish an experience base for better decision making.
Abstract:
This paper describes the experiences of introducing agile methods in four different academic programs (Diploma, Applied Bachelorˇ¦s, Bachelorˇ¦s and Masterˇ¦s) in two institutions during two academic years. It contains suggestions and techniques for bringing agile methods into curriculum. Based on overwhelmingly positive studentsˇ¦ experiences this report should encourage other academics that are considering introducing agile methods in their software engineering courses.
Abstract:
The paper reports on the results of a recent study on student perceptions on agile practices. The study involved forty-five students enrolled in three different academic programs (Diploma, Bachelorˇ¦s and Masterˇ¦s) in two institutions to determine their perceptions of the use of extreme programming practices in doing their design and coding assignments. Overwhelmingly, studentsˇ¦ experiences were positive and their opinions indicate the preference to continue to use the practices if allowed.
Abstract:
Test-first programming is one of the central techniques of Extreme Programming. Programming test-first means (1) write down a test-case before coding and (2) make all the tests executable for regression testing. Thus far, knowledge about test-first programming is limited to experience reports. Nothing is known about the benefits of test-first compared to traditional programming (design, implementation, test). This paper reports about an experiment comparing test-first to traditional programming. It turns out that test-first does not accelerate the implmeentation and the resulting programs are not more reliable but test-first seems to support better program understanding.
Abstract:
Extreme Programming (XP) is a new and controversial software process for small teams. A practical training course at the university of Karlsruhe led to the following observations about the key practices of XP. First, it is unclear how to reap the potential benefits of pair programming, although pair programming produces high quality code. Second, designing in small increments appears problematic but ensures rapid feedback about the code. Third, while automated testing is helpful, writing test cases before coding is challenge. And last, it is difficult to implement XP without coaching. This paper also provides some guidelines for those starting out with XP.
Abstract:
To address the problems of traditional software devel- opment, recent years have shown the introduction of more light-weight or "agile" development processes (eXtreme Programming being the most prominent one). These pro- cesses are intended to support early and quick production of working code by structuring the development into small release cycles and focus on continual interaction between developers and customers. As such software development processes become more popular, there is a growing demand from industry to introduce agile development practices in tertiary education.
This is not a straightforward task as the corresponding practices may run counter to educational goals or may not be adjusted easily to a learning environment. In this paper, we discuss some of these issues and reflect on the problems of teaching agile processes in tertiary education.
The AgileAlliance is a non-profit organization dedicated to promoting the concepts of agile software development, and helping organizations adopt those concepts.
Agile Modeling (AM) is a practice-based methodology for effective modeling and documentation of software-based systems.
Last updated: June 4, 2004
Comments should be sent to
Richard
Upchurch (rupchurch@umassd.edu)