Seminar Paper by Lorenz Hartmann
Seminar Paper by Lorenz Hartmann
Seminar Paper by Lorenz Hartmann
DEVELOPMENT PROJECTS
Seminar paper
Student-ID: 1016673
University Mannheim
Lehrstuhl für ABWL und Wirtschaftsinformatik
D – 68131 Mannheim
Phone: +49 621 1811691, Fax +49 621 1811692
Internet: http://wifo1.bwl.uni-mannheim.de/
Content
5 Discussion.........................................................................................................................22
FiguresY
This paper will give a general introduction to software engineering (cp. 2) and review
the current state of industrialization in software development practice (cp. 3). In the
main part of the paper the issue will be transferred to the global basis. Different
dimensions which influence the current global software development practice will get
introduced (cp. 4.1). Especially the question how to deal with distance will be assessed
by referring to case studies and new findings of research (cp. 4.3.1). The reader will get
to know why there is a strong emphasize for standardization of processes in global
distributed software development. Additionally the reader will also learn that there are
experts who try to change this tendency of standardization towards higher vitality in SE
by using new communication methods (cp. 4.3.2, 4.3.3). Later it will be presented how
global software development might support the tendency for further industrialization in
SE. There will be a final discussion about the current state, the limits and trends of
industrialization in SE (cp. 5).
1
Software engineering (SE) and software development (SD) are used synonymously in the paper.
2 Basics of software engineering 2
But practically the stages show a high level of interdependency (Sommerville 2007). As
an example design problems are found during coding or requirements are identified
during the design phase. Therefore the SDP is done in a sequence of iterations rather
than in theoretically developed linear flow (Sommerville 2007). This involves many
drawbacks. To limit extending costs and time consumption some phases in development
are usually put on hold after some iterations (e.g. requirement analysis, design phase).
This might lead to impractical systems since requirements could have changed in the
meanwhile. “The major problem of the process is its inflexible portioning of the project
into distinct stages. Commitments have to be made at an early stage in process, which
makes it difficult to respond to changing requirements” (Sommerville 2007, p.67) and
lead to the problem that during the maintenance phase previous process stages have to
be repeated. (Sommerville 2007) (Faegri, Hanssen 2007).
2 Basics of software engineering 4
Parallel Gibbs refers to several studies and reports that “the average software
development overshoot is scheduled by half; larger projects generally do worse.” (1994,
p.86). Evidently the plan based approaches with extensive documentation and a
significant overhead in planning, designing and coordination seemed not to be
appropriate for most software development projects any longer. The needs had changed
significantly. Software development had become an ongoing process with shorter life
cycles instead of a process which always starts from scratch (Sommerville 2007). Due
Figure 2: Cost overun in projects (The Standish Group 1994)
to the fact that business needs were rapidly changing there was a demand for fast
product delivery and features which could be integrated steadily into a running system
(Janßen 2005). The previous software development techniques were identified as
inefficient processes and there was an increasing demand for lower software production
and maintenance costs (Sommerville 2007). One proposition to address these new
developments was to extent the degree of industrialized software development which
will be discussed into more detail in the following paragraph (cp. 3.1).
2 Basics of software engineering 5
( 2007, p.440). There are many advantages of developing software in this industrialized
manner:
However the principles of industrialization are not generally applicable to all kind of
software products. Software artifacts differ depending on the number of customers they
are developed for, the product variability and the related ability for
standardization(Taubner 2005, Kilian-Kehr et al. 2007), which is indicated in table 1.
Products Specific solutions
System and Application Enterprise Integration Individual
mass market software software
products
DMS, operating portals, data ERP, SCM, Introduction of sales order
systems, warehouse, inventory enterprise processes,
application CRM management applications, airline booking
server or Integration of system
network components and
software, office specific software
and e-mail extensions
This table shows mass software products like database management systems (DMS),
operating systems, application server or network software at the far left. They offer a
high degree of common functionality (Kilian-Kehr et al. 2007), are widely used, have
stable requirements and are not designed for a particular company. Therefore they are
2 Basics of software engineering 7
well suited for being developed in components (Kilian-Kehr et al. 2007). The other
categories to the right are characterized by increasingly less opportunities for
standardization. The extreme at the far right of the table is represented by individual
customized software solutions. For these kinds of software artifacts standardization is
not meaningful as the requirements of the software are too specific. Even if there would
be components available the extra cost to find, understand and sometimes adapt the
reusable component would be too high and the trade-off between ideal requirement and
available component might not be found (Sommerville 2007).
Addressing the last topic of the previous enumeration agile development will be
introduced in the next paragraph.
The key characteristics of these methods are the focus on incremental delivery: The
system is developed from abstract specifications and then iteratively refined by using
customer input. Well known agile methods are Extreme Programming (XP) (Beck
1999), Crystal (Highsmith, Cockburn 2001), Scrum (Schwaber, Beedle 2001) and FDD
(De Luca 2009). In 2001 the Agile Alliance, a group of the representatives of the
leading agile methods formulated the four basis principles of agile methods:
2 Basics of software engineering 9
According to the first principle programmer following the XP approach work in pairs
which leads to higher involvement, motivation (Fowler 2006) and shows a similar
productivity (due to less rework) as two programmers working separately (Williams et
al. 2000). The fourth principle for instance implies that changes of system requirements
have to be expected and that the system has to be designed to accommodate these
changes (Fowler, Highsmith 2001). The four generative rules of agile methods lead to
higher customer collaboration/user engagement and the distribution of decision making
authority over the whole development team (Highsmith, Cockburn 2001). Advantages
of XP are that the final product is more consistent with the business needs than by using
classic software development methods (Sommerville 2007) and the high applicability to
turbulent, high change environments (Highsmith, Cockburn 2001). However in
literature there dominates the opinion that agile methods are only suited to the
development of small or medium-sized business systems and certain personal computer
products (e.g. computer games) (Williams, Cockburn 2003, Sommerville 2007).
Reasons for this limitation are as followed:
Customer involvement, which can be a critical success factor for the SDP,
depends on the willingness and availability of the right customers who can
represent all system stakeholders (Faegri, Hanssen 2007, Damian 2007).
Through the attempt to deliver running software quickly and with a small amount
of documentation there is strong emphasize on extensive formal and informal
communication and coordination during the SDP. It incurs that programmers
should have suitable personalities for intense involvement and that the project
should be characterized by a low level of employee turnover (Sommerville 2007).
Case studies have shown that projects can collapse when supporters of agile
methods in critical position of the project leave the project team (Faegri, Hanssen
2007).
The missing documentation may make the source code difficult to understand
which might create problems in maintenance and validation (Sommerville 2007).
2 Basics of software engineering 10
There might occur contractual problems. Normal contracting methods are based
on system specifications which are defined at the very beginning of the project.
Using agile methods system requirements are specified only during the
development process and contracting according to system specifications is not
applicable (Sommerville 2007).
Nevertheless agile methods have faced a high level of recognition because they
introduced an alternative methodology to the static plan based development approaches
(Williams, Cockburn 2003). Although they were initially developed to support software
development in a collocated environment since 2003 researchers and practitioners try to
find out possibilities to “blend selected agile practices with the “regular” practices.”
(Williams, Cockburn 2003, p.40, Boehm 2002) Some experts are even convinced that
agile methods are an adequate approach for the software development of large scale
system developments and projects characterized by distributed development teams
(Hildenbrand et al. 2008, Eckstein, Josuttis 2004). One argument is that agile methods
were used in open source software development (OSSD) projects successfully which are
characterized by distributed development teams (see 4.3.2).
main part of the paper it will be investigated how these two trends in software
development are employed in the global context.
2 Basics of software engineering 12
Regarding these goals it seems that the idea of the industrialization of software
development which was introduced before is simply transferred to the global issue:
Nevertheless the practical experiences have shown that the established approaches and
methods of SE are not fully transferable to GSD (cp. 4.2). In GSD many mechanism
and rules are different. SE on a global basis is characterized by a higher distance in
contrast to collocated software development. This refers to its high distribution of
2 Basics of software engineering 13
Faced with these burdens different approaches for efficient GSD were developed which
will be discussed in detail in the next paragraph.
pioneers to develop software globally. Using their experience they refined the way to
deal with GSD. These established approaches of GSD will get introduced in the next
paragraph by referring to experiences from different cases related to GSD (cp. 4.3.1).
The other approach is the application of non-commercial open source practices. These
projects are also characterized by globally distributed developers but distinguish
significantly from commercial approaches. They imply many other aspects and ideas
and will be introduced subsequently (cp. 4.3.2). Later tools which support distributed
collaborative software development will be presented. They have the potential to reduce
distance significantly and start a new phase of GSD (cp. 4.3.3).
There are two main ideas how to deal with distance in GSD. On the one hand you can
try to avoid distance in the development process, on the other hand you can try to
handle distance more efficiently that it becomes less relevant. Since the development of
efficient tools to support collaboration was in its infancy in the beginning of GSD,
primarily tactics that went beyond communication technologies were applied in GSD
“aimed at reducing intensive collaboration, national and organizational cultural
differences and temporal differences” (Carmel, Agarwal 2001, p.22).
The most regarded issue to avoid distance is to reduce intensive collaboration, which is
taken up in every case description regarded for this paper. Carmel states, that most
companies try to engage the foreign entity only in tasks that are well defined and
structured (Carmel, Agarwal 2001). The way how companies act is analogical to the
predication of Carmel. Cusick for example suggests to have concept, analysis and
design nearly 100% onshore and to hand structured tasks like construction and quality
assurance over to the offshore partner (Cusick, Alpana Prasad 2006). Cusick regards
standardization of procedures as a key for a successful project. Having this clear
separation of tasks these projects tend to follow a well structured waterfall approach.
Agile, collaboration intensive methods are not or only rarely regarded (Ebert, De Neve
2001, Cusick, Alpana Prasad 2006, Burger 2007, Kobitzsch et al. 2001, Battin et al.
2001). Some experts verify this proceeding by stating that iterative and incremental
development in distributed environments is difficult (Paasivaara, Iassenius 2004).
Another approach to limit the need for collaboration is to give the foreign entity full
responsibility for a system, system component, product or corporate process. Following
2 Basics of software engineering 16
this CBSE based approach the foreign entity is not using links with the center frequently
and thus the ongoing collaboration is not as intense (Carmel, Agarwal 2001, Battin et al.
2001). The underlying principal for this proceeding in GSD are the experiences of the
past. The company Alcatel studied projects for five years by distinguishing the degree
of collocation. For example they found out that collocated teams needed half of the time
for defect detection in validation activities than a distributed team which works on the
same task (Ebert, De Neve 2001). This was verified by Teasley, who reports that in
collocated teams, productivity and job satisfaction are much higher (Teasley et al.
2002). Therefore Ebert considers team-task collocation in a distributed project as a key
objective. Teams that are assigned across several locations face many challenges that
could impact their ability to work as a team (Ebert, De Neve 2001). These facts lead to
the conclusion that the methodologies applied in GSD are in contrast to the
methodologies applied in collocated software engineering projects more focused on plan
based software engineering approaches. They favor clearly separated tasks.
Although this proceeding reduces distance, many of the prior named problems are not
solved. To alleviate the remaining distance and to handle it more efficiently several best
practices have been developed since the beginning of GSD. A key learning in most case
studies is that there should be an established a relationship between team members of
remote locations (Carmel, Agarwal 2001, Carr 2005). This way they can identify with
the team, feel responsibility for the team, are able to build up trust. As a result of that
the electronic communication becomes effective. To address these findings the concept
of “cultural liaison” is widely used to bridge the cultural gap across sites and
organizations (Carmel, Agarwal 2001, Carr 2005). According to this concept a key
person of the project acts as ambassador and links the different sites of the project.
Besides building up trust, the cultural liaison enables to spread domain expertise
because knowledge can be easily shared using this link (Carmel, Agarwal 2001, Carr
2005). In a large project of Motorola, key engineers of the remote locations moved to
the main US based site of the company and took part in a three month workshop. They
learned the system, helped completing RE and communicated this information back to
their local teams. This measure was considered as a key success factor for the project by
the company (Battin et al. 2001). Corresponding to this results Ebert claims that “one
way to improve is a heavy exchange of teams and management […] which gradually
build mutual understanding.“ (2001, p.68) Moreover he states that mixed teams should
2 Basics of software engineering 17
Summarizing the observations of the different case studies the distance of GSD is still
high and companies adapt their software development practices to this situation.
Companies switch from their partly agile development methods in collocated situations
(Boehm 2002) to strictly plan based approaches in global projects (Cusick, Alpana
Prasad 2006). Most companies prefer to split work according to functional tasks and
2 Basics of software engineering 18
only some are following partly a CBSE approach (Kobitzsch et al. 2001). In GSD
coordination mechanisms like plans, schedules, system-level design and defined
processes are seen as a crucial success factor. They are considered to be more important
in geographically distributed software development than in collocated software
development (Herbsleb, Grinter 1999). But surprisingly this finding seems not to be a
natural law. Open source software development (OSSD), which is also characterized by
geographically distributed development lacks many of the presented coordination
mechanisms but also succeeds in developing software of high quality and functionality
(Mockus et al. 2002). Therefore it will be presented in the following paragraph
OSSD is a way for building, deploying and sustaining large software systems on a
global basis (Sommerville 2007). It is an “alternative community-intensive socio-
technical approach to develop software systems, artifacts and social relationships.”
(Scacchi 2007, p.464). One of the basic principles of this software development style is
that licenses and legal arrangements ensure that the source code of OSSD is generally
available for remote access. Moreover OSSD typically has a central body, consisting of
some of the core developers, who are responsible for guiding the development of the
project (Mockus et al. 2002). These basic arrangements ensure that the development
process of OSSD projects is radically different to traditional SE projects:
In many OSSD projects the systems are build by a large number of volunteers
(Mockus et al. 2002)
The OSSD developers are typically also end users (Mockus et al. 2002)
Work is not assigned. The underlying belief in the freedom of choice ensures that
developers just undertake the tasks they are interested in (Benkler 2006)
There is no explicit system-level design or even detailed design (Vixie 1999)
There is no project plan, schedule or list of deliverables (Mockus et al. 2002)
In OSSD projects software informalisms (Scacchi 2002) take the place of the
formalisms which is typical for traditional SE approaches. The most common types of
informalisms used in OSSD include online discussion forums or threaded email
messages. Some of the other ways to observe and participate in project related topics are
bulletin boards, group blogs as well as to do lists and project wikis (Scacchi 2007).
2 Basics of software engineering 19
These various types of software informalism are accessible through project related
websites and portals. In the interplay with the informalism between different OSSD
projects (e.g.: cross referencing) they form “a web of informal, semi structured and
processable information resources” (Scacchi 2007, p.461). However OSSD do not have
an anarchic attitude. Several mechanisms ensure good software development. Instead of
explicit administrative control OSSD projects rely on “gentle but sufficient” social
control (Scacchi 2007, p.462). OSSD projects are characterized by a skill-based
mediocracy, in which “project participants self-organize around expertise, reputation
and accomplishments of core developers, secondary contributors and tertiary reviewers
as well as other peripheral volunteers” (Scacchi 2007, p.461). This includes voting on
the approval of individual contribution to ongoing project software (Fielding 1999),
shared peer reviewing (Benkler 2006, DiBona et al. 2005) or as well the project’s
recognition of a core developer’s status, reputation and geek fame (Scacchi 2007). This
virtual project management ensures to mobilize, coordinate, control, build and assure
the quality of OSSD activities (Scacchi 2004). But the success of OSSD projects is also
based on the reduction of coordination efforts. The vast majority of source code (~80%)
is created solely by core developers and “most participants typically contribute to just a
single module” (Scacchi 2007, p.460) of the system or tasks like defect reporting
(Mockus et al. 2002). The coordination concerns in the Apache OSSD project for
instance “are sharply limited by the stable asymmetrically controlled interfaces. Any
functionality beyond [the basic development of the Apache server] is added by means of
various ancillary projects that interact with Apache only through Apache’s well defined
interfaces.” (Mockus et al. 2002, p.342) This high interdependency of modules and
components in a OSSD Project and the fact that some “linchpin developers” (Madey et
al. 2005) work simultaneously in several OSSD projects implies the possibility that
OSSD projects are able to grow at a super-linear or exponential rate (Scacchi 2006,
Schach et al. 2002) when modules or even sub systems are integrated into exciting
OSSD projects (Schach et al. 2002).
OSSD has many implications which might be useful for commercial GSD. One is that
industrialization in the sense of CBSE is applicable in global distributed projects. OSSD
shows that coordination efforts are limited by high modularization and stable
asymmetrically controlled interfaces (Mockus et al. 2002). Moreover the evolutionary
characteristic of OSSD through the interrelations between projects might establish the
2 Basics of software engineering 20
view to see GSD more as an opportunity than as a burden. Although meanwhile sharing
and reuse became common in traditional SE software, the efforts of traditional SE
projects are still setup to produce systems whose growth and evolution is limited
(Scacchi 2007). In contrast to that in OSSD the focus is on software evolution which “is
a process of co-evolution of interrelated and independent OSSD projects, people
artifacts, tools code and project specific processes (Capiluppi, Michlmayr 2007, Weiss
et al. 2006). The new types of socio-technical work practices, development processes
and community networking excel traditional SE (Scacchi 2007). Finally the extensive
use of communication tools in OSSD already had and will have significant impact on
SE to reduce distance furthermore and facilitate GSD. Maurer is supporting this
argument by stating that adequate and timely sharing of information and knowledge in
all directions, proactive change, management, and process monitoring are some of the
important factors required for successful project collaboration.(Maurer 1996) Therefore
tools for distributed collaborative development will be discussed in the next paragraph.
In the regarded cases of commercial GSD developers of distributed projects employ two
kinds of tools separately to conduct their work (cp. 4.3.1): On the one hand they use
collaborative software development tools (CSCW-tools) or also known as groupware
and on the other hand they utilize integrated development environments (IDE).
Groupware tools help people to conduct a common task and are the basis for computer
supported cooperative work (Hildenbrand 2008). Some of the already presented tools
like asynchronous messaging systems (e.g. e-mail, web forum) and synchronous
messaging systems (e.g. instant messaging, video-conferencing and telephone-
conferencing, screen sharing) are typical groupware applications (cp. 4.3.1). In contrast
to that IDEs integrate individual software development tools like auto complete
functions, code generators and automatic code documentation (Sommerville 2007)
which support the individual developer into a consistent interface and working
environment (Hildenbrand 2008). They are tailored to achieve better individual
productivity but only rudimentarily support distributed collaboration within teams
(Sommerville 2007). Examples for IDEs are open source solutions like NetBeans or
Eclipse (Hildenbrand 2008). But obviously this separate use of groupware and IDE
applications to conduct a certain task leads to inefficient development in GSD. In order
to tackle this issue the open source community integrated Groupware and IDE
functionality into collaborative software development platforms (CSDP). Later these
CSDP were successfully applied in several OSSD projects (Robbins 2005, Augustin et
al. 2002, Feller, Fitzgerald 2002).
Due to the high performance of CSDP in OSSD projects the platforms were transferred
to the commercial context. The most common CDSP are CodeBeamer, CollabNet
Enterprise and SourgeForge Enterprise. They offer a common set of CSDP features,
have “a considerable market share and […] have been used in multitude distributed
projects.” (Hildenbrand 2008, p.33) According to a study of Rodriguez as well as a
ranking of Hildenbrand CodeBeamer was seen as the best overall platform (Hildenbrand
2008, Rodriguez et al. 2007). Although strictly tool based SE approaches prevail
significantly in terms of frequency and state of elaboration, in 2003 already 65% of
software development companies at least intended to use a CSDP for distributed
projects by the year 2005 (Webster 2003).
The different kind of communication tools were presented here because they have the
high potential to overcome the distance of GSD. Especially CSDP could make GSD
similar to SE in a collocated situation. Due to the complete functionality they even
could make agile software development methods applicable in distributed collaborative
software development.
2 Basics of software engineering 23
5 Discussion
The paper shows the most vital trends and developments in global software
development. It indicates that today the crucial question regarding SE is not about the
possibility of industrialization in software development because there is no doubt that
SE has already reached a certain level of industrialization. The question is what the
(current) limits for industrialization in SE are and how they are influenced by GSD.
support for spatial, temporal and organizational distribution […] and feature a superb
integrity and traceable information supply.” (2008, p.36) Due to these facts CSDP could
decrease distance in GSD significantly and reduce the dilemma of industrialization in a
global context.
Battin, R.D., Crocker, R., Kreidler, J. & Subramanian, K. 2001, "Leveraging resources
in global software development", Software, IEEE, vol. 18, no. 2, pp. 70-77.
Beck, K. 1999, "Embracing change with extreme programming", IEEE Computer, vol.
32, no. 10, pp. 70-77.
Benkler, Y. 2006, The wealth of networks: How social production transforms markets
and freedom, Yale University Press, New Haven.
Boehm, B. 2002, "Get ready for agile methods, with care", IEEE Computer, vol. 35, no.
1; feasible and preferable in some circumstances, pp. 64-69.
Capiluppi, A. & Michlmayr, M. 2007, "From the cathedral to the bazaar: An empirical
study of the lifecycle of volunteer community projects" in Open Source
Development, Adoption and Innovation Springer, Boston, pp. 31-44.
Carmel, E. & Agarwal, R. 2001, "Tactical approaches for alleviating distance in global
software development", Software, IEEE, vol. 18, no. 2, pp. 22-29.
Chen, F., Nunamaker Jr., J.F., Romano Jr., N.C. & Briggs, R.O. 2003, "A collaborative
project management architecture", System Sciences, 2003. Proceedings of the
36th Annual Hawaii International Conference, pp. 12.
Cusick, J. & Alpana Prasad 2006, "A Practical Management and Engineering Approach
to Offshore Collaboration", Software, IEEE, vol. 23, no. 5, pp. 20-29.
DiBona, C., Stone, M. & Cooper, D. 2005, Open sources 2.0, O'Reilly Media.
Faegri, T.E. & Hanssen, G.K. 2007, "Collaboration, Process Control, and Fragility in
Evolutionary Product Development", Software, IEEE, vol. 24, no. 3, pp. 96-104.
Fielding, R.T. 1999, "Shared leadership in the Apache project", Communications of the
ACM, vol. 42, no. 4, pp. 42-43.
Fowler, M. 2006, 18th of July 2006-last update, Using an Agile Software Process with
Offshore Development. Available:
http://www.martinfowler.com/articles/agileOffshore.html [2009, 21st of April] .
Fowler, M. & Highsmith, J. 2001, "The Agile Manifesto", Software development, vol. 9,
no. 8, pp. 28-35.
Herbsleb, J.D. & Grinter, R.E. 1999, "Splitting the organization and integrating the
code: Conway's law revisited", Software Engineering, 1999. Proceedings of the
1999 International Conference on, pp. 85.
Herbsleb, J.D. & Moitra, D. 2001, "Global software development", Software, IEEE, vol.
18, no. 2, pp. 16-20.
Hildenbrand, T., Geisser, M., Kude, T., Bruch, D. & Acker, T. 2008, "Agile
Methodologies for Distributed Collaborative Development of Enterprise
Applications", International Conference on Complex, Intelligent and Software
Intensive Systems, 2008 (CISIS 2008), pp. 540.
Hofstede, G.J. 2005, Cultures and Organizations: Software for the Mind, McGraw-Hill.
Kobitzsch, W., Rombach, D. & Feldmann, R.L. 2001, "Outsourcing in India [software
development]", Software, IEEE, vol. 18, no. 2, pp. 78-86.
Madey, G., Freeh, V. & Tynan, R. 2005, "Modeling the Free/Open Source software
community: A quantitative investigation", Free/Open Source Software
Development, , pp. 203-221.
Mockus, A., Fielding, R. & Herbsleb, J.D. 2002, "Two case studies of open source
software development: Apache and Mozilla", ACM Transactions on Software
Engineering and Methodology, vol. 11, no. 3, pp. 309-346.
Robbins, J. 2005, "Free/Open Source Processes and Tools, chapter Adopting Open
Source Software Engineering (OSSE) Practices by Adopting OSSE Tools", , pp.
245-264.
Rodriguez, F., Geisser, M., Berkling, K. & Hildenbrand, T. 2007, "Evaluating
Collaboration Platforms for Offshore Software Development Scenarios", Lecture
notes in computer science, vol. 4716, pp. 96.
Royce, W.W. Managing the development of large software systems: concepts and
techniques, IEEE Computer Society Press, Monterey, California, United States
1987, .
Scacchi, W. 2007, "Free/open source software development: recent research results and
methods", Advances in Computers: Architectural Advances, vol. 69, pp. 243.
Schach, S.R., Jin, B., Wright, D.R., Heller, G.Z. & Offutt, A.J. 2002, "Maintainability
of the Linux kernel", IEE Proceedings-Software, vol. 149, no. 1, pp. 18-23.
Schwaber, K. & Beedle, M. 2001, Agile Software Development with Scrum, Prentice
Hall PTR, Upper Saddle River, NJ, USA.
Teasley, S.D., Covi, L.A., Krishnan, M.S. & Olson, J.S. 2002, "Rapid software
development through team collocation", Software Engineering, IEEE
Transactions on, vol. 28, no. 7, pp. 671-683.
The Standish Group 1994, The CHAOS Report, The Standish Group International Inc.,
West Yarmouth, USA.
Vixie, P. 1999, "Software engineering" in Open sources: Voices from the open source
revolution, eds. C. DiBona, S. Ockman & M. Stone, O'Reilly & Associates, Inc.
Sebastopol, CA, USA, pp. 91-100.
Walz, D.B., Elam, J.J. & Curtis, B. 1993, "Inside a software design team: knowledge
acquisition, sharing, and integration", Commun.ACM, vol. 36, no. 10, pp. 63-77.
Webster, M. 2003, "An end-user view of the collaborative software development
market", Market Research Report, IDC 30608, vol. 1.
Weiss, M., Moroiu, G. & Zhao, P. 2006, "Evolution of open source communities" in
Open Source Systems, IFIP Springer, , pp. 21-32.
Williams, L. & Cockburn, A. 2003, "Agile software development: it's about feedback
and change", IEEE Computer, vol. 36, no. 6, pp. 39-43.
Williams, L., Kessler, R.R., Cunningham, W. & Jeffries, R. 2000, "Strengthening the
Case for Pair Programming", Software, IEEE, , pp. 19-25.
Ye, Y., Nakakoji, K. & Yamamoto, Y. 2007, "Reducing the Cost of Communication
and Coordination in Distributed Software Development" in Software
Engineering Approaches for Offshore and Outsources Development Springer, ,
pp. 152-169.
Ich versichere, dass ich meine Diplomarbeit ohne Hilfe Dritter und ohne Benutzung
anderer als der angegebenen Quellen und Hilfsmittel angefertigt und die den benutzten
Quellen wörtlich oder inhaltlich entnommenen Stellen als solche kenntlich gemacht
habe. Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde
vorgelegen.
Lorenz Hartmann