For Further Review
What would be the problems, if any, in adopting XP to your current workplace. What use would you have to make of the four XP values to help your coworkers make the change?
[Beck00] Beck, Kent, Extreme Programming Explained , Addison-Wesley, 2000.
[Berry02] Berry, Daniel M., The Inevitable Pain of Software Development: Why There Is No Silver Bullet, International Workshop on Time-Constrained Requirements Engineering , 2002.
[Boehm88] Boehm, Barry, A Spiral Model of Software Development and Enhancement, IEEE Computer (May 1988): pp. 61 “72.
[Brooks95] Brooks, Frederick P., Mythical Man-Month , Second Edition, Addison-Wesley, 1995.
[Brooks87] Brooks, Frederick P., No Silver Bullet, Computer 20(4), (1987): pp. 10 “19.
[Jacobson99] Jacobson, Ivar, et al. , The Unified Development Process , Addison-Wesley, Boston, 1999.
[Mindell02] Mindell, David A., Between Human and Machine , Baltimore, Johns Hopkins University Press, 2002.
[Williams and Kessler02] Williams, Laurie, and Kessler, Robert, Pair Programming Illuminated , Addison-Wesley, 2002.
[Tomayko02] Tomayko, James, A Comparison of Pair Programming to Inspections for Software Defect Reduction, Computer Science Education (September 2002): pp. 213 “222.
Chapter 3: Working in Teams
This chapter deals with teamwork ”one of the main characteristics of software development. Teamwork is essential for the development of any sizable software. Specifically, this chapter addresses types of team structures and dilemmas (whose source is in teamwork) that software developers may face during the process of software development.
The first part of the chapter addresses three types of software teams: democratic , hierarchical, and virtual. Each type is discussed from the perspectives of what kinds of team interaction it inspires, what problems it may raise, and in which situations it fits. The second part of this chapter is dedicated to one issue ”rewards ”a topic that may raise dilemmas between one s personal interests and benefits one may gain from one s contribution to the teamwork. Like other chapters of this book, this chapter delivers the message that as soon as we increase our awareness with respect to various aspects of software development and various approaches to deal with dilemmas that our profession raises, the better we may cope.
To widen readers perspective on the topic of teamwork from a theoretical point of view, the chapter ends with a brief explanation of how teamwork in software engineering can be analyzed from a game theory point of view. In addition, issues related to outsourcing in the software industry are discussed.
Readers will be able to differentiate between democratic and hierarchically based teams with respect to structure, benefits, faults, kinds of projects each structure fits, and roles of team members .
Readers will become familiar with the roles of typical eXtreme Programming (XP) and Team Software Process (TSP) team members.
Readers will analyze benefits and pitfalls of different kinds of teams such as jelled teams and virtual teams.
Readers will be able to organize an appropriate team.
Readers will understand how incentives work and influence software teams.
Readers will understand what outsourcing means in the software industry.