Catálogo de publicaciones - libros
Extreme Programming and Agile Processes in Software Engineering: 7th International Conference, XP 2006, Oulu, Finland, June 17-22, 2006, Proceedings
Pekka Abrahamsson ; Michele Marchesi ; Giancarlo Succi (eds.)
En conferencia: 7º International Conference on Extreme Programming and Agile Processes in Software Engineering (XP) . Oulu, Finland . June 17, 2006 - June 22, 2006
Resumen/Descripción – provisto por la editorial
No disponible.
Palabras clave – provistas por la editorial
No disponibles.
Disponibilidad
| Institución detectada | Año de publicación | Navegá | Descargá | Solicitá |
|---|---|---|---|---|
| No detectada | 2006 | SpringerLink |
Información
Tipo de recurso:
libros
ISBN impreso
978-3-540-35094-1
ISBN electrónico
978-3-540-35095-8
Editor responsable
Springer Nature
País de edición
Reino Unido
Fecha de publicación
2006
Información sobre derechos de publicación
© Springer-Verlag Berlin Heidelberg 2006
Cobertura temática
Tabla de contenidos
doi: 10.1007/11774129_1
A Distributed Cognition Account of Mature XP Teams
Helen Sharp; Hugh Robinson
Distributed cognition is a framework for analysing collaborative work. It focuses on interactions between people, between people and their environment and between people and artefacts that are created and manipulated in the course of doing work, and it emphasises information flow and information transformation. Analyses conducted using the distributed cognition framework highlight breakdowns and potential problem areas in the collaborative work being studied; distributed cognition has been used to study a wide variety of collaborative work situations. XP teams are highly collaborative, relying heavily on interactions between team members and their environment. In this paper we present accounts of four mature XP teams based on the distributed cognition framework.
Palabras clave: Team Member; Cognitive System; Acceptance Test; Potential Breakdown; Communicative Pathway.
- Foundation and Rationale for Agile Methods | Pp. 1-10
doi: 10.1007/11774129_2
Foundations of Agile Decision Making from Agile Mentors and Developers
Carmen Zannier; Frank Maurer
There are few studies of how software developers make decisions in software design and none that places agile in the context of these decision making processes. In this paper, we present results of interviewing agile software developers and mentors to determine how design decision making aligns with rational decision making or naturalistic decision making. We present results of twelve case studies evaluating how agile professionals make design decisions, comparing mentor perspectives to developer perspectives. We describe our interview technique, content analysis used to analyze interview transcripts, and the interpretation of our results, to answer the question: how do agile designers make design decisions? Our results show that naturalistic decision making dominates design decision making but is supported by rational decision making.
Palabras clave: Time Pressure; Software Design; Design Decision; Rational Decision Making; Developer Perspective.
- Foundation and Rationale for Agile Methods | Pp. 11-20
doi: 10.1007/11774129_3
Software Development as a Collaborative Writing Project
Brian Bussell; Stephen Taylor
Software describes an imagined machine. To be software, the description must be executable, which means written so a computer can animate it. Non-executable descriptions (specifications, designs, &c.) are instrumental to this work; they are intermediate texts. We advance a model of software development as the collaborative writing of a series of descriptions. We propose the chief distinction of agile development to be the exclusion from this process of the human translation of intermediate texts. We distinguish supported and unsupported communication. We analyse the success of Extreme Programming in terms of avoiding unsupported communication and prioritising feedback from executable descriptions. We describe functional programming techniques to construct notations that allow programmers and users to collaborate writing executable system descriptions, collapsing distinctions between analysis, design, coding and testing. We describe a metric of code clarity, semantic density, which has been essential to the success of this work. We report the use of these techniques in the Pensions division of Britain’s largest insurer, and its effect on the business.
Palabras clave: Software Development; Language Game; Software Development Project; Business Problem; Financial Trader.
- Foundation and Rationale for Agile Methods | Pp. 21-31
doi: 10.1007/11774129_4
Comparative Analysis of Job Satisfaction in Agile and Non-agile Software Development Teams
Grigori Melnik; Frank Maurer
Software engineering is fundamentally driven by economics. One of the issues that software teams face is employee turnover which has a serious economic impact. The effect of job dissatisfaction on high turnover is consistently supported by evidence from multiple disciplines. The study investigates if and how job satisfaction relates to development processes that are being used and the determinants of job satisfaction across a wide range of teams, regions and employees. A moderate positive correlation between the level of experience with agile methods and the overall job satisfaction was found. The evidence suggests that there are twice as many members of agile teams who are satisfied with their jobs (vs members of non-agile teams). The ability to influence decisions that affect you, the opportunity to work on interesting projects, and the relationships with users were found to be statisticcally significant satisfiers.
Palabras clave: Moderate Positive Correlation; Agile Method; Main Survey; Practice Agile; Voluntary Turnover.
- Foundation and Rationale for Agile Methods | Pp. 32-42
doi: 10.1007/11774129_5
Investigating the Impact of Personality Types on Communication and Collaboration-Viability in Pair Programming – An Empirical Study
Panagiotis Sfetsos; Ioannis Stamelos; Lefteris Angelis; Ignatios Deligiannis
This paper presents two controlled experiments (a pilot and the main one) investigating the impact of developer personalities and temperaments on communication, collaboration-pair viability and ultimately effectiveness in pair programming. The objective of the experiments was to compare pairs of mixed/ heterogeneous developer personalities and temperaments with pairs of the same personalities and temperaments, in terms of pair effectiveness. Pair effectiveness is expressed in terms of pair performance , measured by communication, velocity, productivity and customer satisfaction, and pair collaboration-viability measured by developers’ satisfaction, knowledge acquisition and participation (collaboration satisfaction ratio, nuisance ratio, voluntary or mandatory preference, and driver or navigator preference). The results have shown that there is significant difference between the two groups, indicating better communication and collaboration-viability for the pairs with mixed personalities/temperaments.
Palabras clave: Communication Mode; Personality Type; Pair Effectiveness; Communication Metrics; Communication Transaction.
- Effects of Pair Programming | Pp. 43-52
doi: 10.1007/11774129_6
The Collaborative Nature of Pair Programming
Sallyann Bryant; Pablo Romero; Benedict du Boulay
This paper considers the nature of pair programming. It focuses on using pair programmers’ verbalizations as an indicator of collaboration. A review of the literature considers the benefits and costs of co-operative and collaborative verbalization. We then report on a set of four one-week studies of commercial pair programmers. From recordings of their conversations we analyze which generic sub-tasks were discussed and use the contribution of new information as a means of discerning the extent to which each pair collaborated. We also consider whether a particular role is more likely to contribute to a particular sub-task. We conclude that pair programming is highly collaborative in nature, however the level of collaboration varies according to task. We also find that tasks do not seem aligned to particular roles, rather the driver tends to contribute slightly more across almost all tasks.
Palabras clave: Computer Support Collaborative Learn; Collaborative Nature; Extreme Program; Agile Process; Verbal Protocol Analysis.
- Effects of Pair Programming | Pp. 53-64
doi: 10.1007/11774129_7
Is External Code Quality Correlated with Programming Experience or Feelgood Factor?
Lech Madeyski
This paper is inspired by an article by Müller and Padberg who study the feelgood factor and programming experience, as candidate drivers for the pair programming performance. We not only reveal a possible threat to validity of empirical results presented by Müller and Padberg but also perform an independent research. Our objective is to provide empirical evidence whether external code quality is correlated with the feelgood factor, or with programming experience. Our empirical study is based on a controlled experiment with MSc students. It appeared that the external code quality is correlated with the feelgood factor, and programming experience, in the case of pairs using a classic (test-last) testing approach. The generalization of the results is limited due to the fact that MSc students participated in the study. The research revealed that both the feelgood factor and programming experience may be the external code quality drivers.
Palabras clave: Programming Experience; Acceptance Test; Laboratory Session; User Story; Pair Performance.
- Effects of Pair Programming | Pp. 65-74
doi: 10.1007/11774129_8
Leveraging Code Smell Detection with Inter-smell Relations
Błażej Pietrzak; Bartosz Walter
The variety of code smells deserves a numerous set of detectors capable of sensing them. There exist several sources of data that may be examined: code metrics, existence of particular elements in an abstract syntax tree, specific code behavior or subsequent changes in the code. Another factor that can be used for this purpose is the knowledge of other, already detected or rejected smells. In the paper we define and analyze different relations that exist among smells and provide tips how they could be exploited to alleviate detection of other smells.
Palabras clave: Refactoring; bad code smells; inter-smell relations.
- Quality in Agile Software Development | Pp. 75-84
doi: 10.1007/11774129_9
Studying the Evolution of Quality Metrics in an Agile/Distributed Project
Walter Ambu; Giulio Concas; Michele Marchesi; Sandro Pinna
This paper analyzes the development of a project initiated by a co-located agile team that subsequently evolved into a distributed context. The project, named JAPS (Java Agile Portal System) [1], has been monitored on a regular basis since it started in January 2005, collecting both process and product metrics. Product metrics have been calculated by checking out the source code history from the CVS repository. By analyzing the evolution of these metrics, it has been possible to evaluate how the distribution of the team has impacted the source code quality.
Palabras clave: Quality Metrics; Agile Practice; Extreme Program; Agile Process; Code Smell.
- Quality in Agile Software Development | Pp. 85-93
doi: 10.1007/11774129_10
The Effect of Test-Driven Development on Program Code
Matthias M. Müller
Usage of test-driven development (TDD) is said to lead to better testable programs. However, no study answers either the question how this better testability can be measured nor whether the feature of better testability exists. To answer both questions we present the concept of the controllability of assignments. We studied this metric on various TDD and conventional projects. Assignment controllability seems to support the rules of thumb for testable code, e.g. small classes with low coupling are better testable than large classes with high coupling. And as opposed to the Chidamber and Kemerer metric suite for object-oriented design, controllability of assignments seems to be an indicator whether a project was developed with TDD or not.
Palabras clave: Program Code; Method Level; Testable Code; Student Project; Object Oriented Design.
- Quality in Agile Software Development | Pp. 94-103