Collaborative Software Engineering

Collaboration among individuals – from users to developers – is central to modern software engineering. It takes many forms: joint activity to solve common problems, negotiation to resolve conflicts, creation of shared definitions, and both social and tec

  • PDF / 7,117,105 Bytes
  • 421 Pages / 439.37 x 666.142 pts Page_size
  • 81 Downloads / 224 Views

DOWNLOAD

REPORT


Ivan Mistrík · John Grundy · André van der Hoek · Jim Whitehead Editors

Collaborative Software Engineering

123

Editors Ivan Mistrík Independent Consultant Werderstr. 45 69120 Heidelberg Germany [email protected]

André van der Hoek University of California, Irvine Donald Bren School of Information & Computer Sciences 5029 Donald Bren Hall Irvine CA 92697-3440 USA [email protected]

John Grundy Centre for Complex Software Systems & Services Swinburne University of Technology Faculty of Information and Communication Technologies PO Box 218 Hawthorn, Victoria Australia 3122 [email protected] Jim Whitehead University of California, Santa Cruz Dept. Computer Science Santa Cruz CA 95064 USA [email protected]

ISBN 978-3-642-10293-6 e-ISBN 978-3-642-10294-3 DOI 10.1007/978-3-642-10294-3 Springer Heidelberg Dordrecht London New York Library of Congress Control Number: 2010921110 ACM Computing Classification (1998): D.2, K.6 © Springer-Verlag Berlin Heidelberg 2010 This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilm or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer. Violations are liable to prosecution under the German Copyright Law. The use of general descriptive names, registered names, trademarks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use. Cover design: KuenkelLopka GmbH, Heidelberg Printed on acid-free paper Springer is part of Springer Science+Business Media (www.springer.com)

Foreword

While many empirical studies over the years have shown that software development skills and aptitude vary between individuals, the reality is that the size, complexity and longevity of software development projects and artefacts far exceed what any individual software developer can manage on her own. Collaboration among individuals – from users to developers – is therefore central to modern day software engineering. Collaboration takes many forms: joint activity to solve common problems, complementary activity to solve diverse problems, and both social and technical perspectives impacting all software development activity. The difficulties of collaboration are also well documented. For example, when managerial instinct in dealing with a problematic software project was to add more developers to the development team, Fred Brooks observed and argued in his classic book The Mythical Man Month (Addison-Wesley, 1975) that such additions impaired rather than speeded up development. Reflecting on Brooks’ observation, one could argue that it is not the addition of developer