H7 - 1
2011 International Conference on Electrical Engineering and Informatics
17-19 July 2011, Bandung, Indonesia
Collaboration Model of Software Development
Tien Fabrianti Kusumasari#1, Iping Supriana#2, Kridanto Surendro#3, Husni Sastramihardja#4
#1
Information System Program Study, STMIK IM Bandung
Jl.Jakarta No.79 Bandung, Indonesia
1
tien_kusumasari@yahoo.com
#
School of Electrical Engineering and Informatics, Bandung Institute of Technology
Jl. Ganessa No.10 Bandung, Indonesia
2
iping@informatika.org
endro@informatika.org
4
husni@informatika.org
3
Abstract— Software development is a series of processes activity
involving more than one person, especially in medium to large
software projects. Each activity of software development is
carried out by various combination of different individual.
Collaboration occurs in every phase of the process software
development. The right team collaboration method is one of the
important things in success software development. This research
is focused to develop collaboration model of software
development to meet time schedule, budget, scope, and software
quality.
The collaboration model of software development is generated
from survey of collaboration method (about face to face and
virtual collaboration) and software development methodology
especially agile methodology. The direct collaboration was used
in the software specification processes, and combination (with a
direct and virtual) collaboration was used during software
design, implementation, and validation. Team coordination in
every process of software development was done with face to face
method. The same artifacts were used in this collaboration model
with some collaboration software tools. Combination between
face to face and virtual communication was used in this model.
The model is implemented in small case software development
project. During the software development, some measurement is
carried out. The measurement included the measurement of
project completion time, cost, software specification, and
software quality. The software is developed in time schedule (two
months), cost under budged, and meet specification. In addition,
the software has built a fairly good quality. Thus, this
collaboration model good use in software development to
achieved accuracy of schedule, cost, scope, and quality.
Keywords— software development, collaboration, collaboration
model, software process, collaboration method.
I. INTRODUCTION
A software project is a project with high uncertainty, so
that software project success is relatively low. [12] notes,
software development is a highly complex and unpredictable
task since many specialized groups are typically required to
collaborate on one project. According to the Standish Group
in 2009 [13] , 32% of all software project succeeding which
are delivered on time, on budget, with required features and
functions. And then 44% of it were challenged which are late,
978-1-4577-0751-3/11/$26.00 ©2011 IEEE
over budget, and/or with less than the required features and
functions and 24% failed which are cancelled prior to
completion or delivered and never used. The top six reason for
software project failure were
• incomplete requirement,
• lack of user involvement,
• lack of resources,
• unrealistic expectations,
• lack of executive support, and
• changing requirements and specifications.
Note that none of these reasons speak to languages, or
development environment, or hardware choices. Five of the
six have to do with communications between builders and
stakeholders ("Clients" or "Users") [2]. Beside that, software
development activity such as analysis, design, testing, and
coding may be carried out by different combinations of
individuals [4]. Therefore, collaboration and coordination in
software development project play an important
role in determining the success of a software project. So, this
paper will discuss more about collaboration model
contribution in software development.
Some collaborative model researches in software
development have been done, including relation between
collaboration model and tool with software result and process
development. In this paper will be more discuss about
collaboration model and tool collaborative selection to support
the model. And the final goal of the model in this paper is gain
successful of software project development, to meet time,
budget, scop, and product quality.
Research conducted by [9] concerning the relationship
collaboration model and tool with collaborative problem
solving and program development. The study showed a
positive relationship between collaborative model with
collaborative problem solving and program development.
Based on research conducted by [7], there is positive
relationship between virtual communication medium with
three components of the software project successes (team
productivity, interaction quality, and satisfaction process).
Research on the relationship between group interaction (face
to face interaction and combine method) with group
effectiveness conducted by [18] suggest a positive relationship
between group interactions (combine face to face and virtual)
with the effectiveness of group.
This paper is organized as six sections. In the following
section will be discus about collaboration concept in agile
methodology and the prior works. The third section reviews
collaboration model design, and case study in section four. In
the fifth section is discus about collaboration model and the
result of case study. And the final section is conclusion and
the future work.
II. THEORY AND RELATED WORK
Collaboration is the basis for bringing together the
knowledge, experience and skills of multiple team members to
contribute to the development of a new product more
effectively than individual team members performing their
narrow tasks in support of product development [11].
Software development has been described as a collaborative
problem-solving activity where success is dependent upon
knowledge acquisition, information sharing and integration,
and the minimization of communication breakdowns [16]. In a
typical software development process, developers perform
several different activities: they use numerous tools to develop
software artefacts ranging from source code and models to
documentation and test scenarios, they use other tools to
manage and coordinate their development work, and they
spend a lot of time communicating with other members on
their team [5]. In this section will be discus about
collaboration model in software methodology (agile
methodology) and prior research about collaboration method
in software development.
A. Collaboration in Agile Methodology
There so many methodologies is introduced in software
development. Indeed, 25 years, a large number of different
approach to software development have been introduced, of
which only few have survived to used today [17]. Right now,
agile methodology is the most popular methodology in
software development. The popularity of agile methodology is
increase with increasing success of the implementation of this
method. The ITEA AGILE project shows that the application
of agile software development methods and processes can
offer an up to 70% reduction in lead time and costs in a wide
range of different industry sectors [16].
Agile methodology emerged due to evolving and changing
software requirements changing software requirements [14].
As this approach the requirement is not always feasible there
is also a need for flexible, adaptable and agile method, which
allow the developers to make late change in the specifications
[17]. Agile principle in software first put forward in agile
software development manifesto in 2001. The twelve
principles of agile manifesto are [1] :
• Our highest priority is to satisfy the customer through
early and continuous delivery of valuable software.
• Welcome changing requirements, even late in
development. Agile processes harness change for the
customer's competitive advantage.
• Deliver working software frequently, from a couple of
weeks to a couple of months, with a preference to the
shorter timescale.
• Business people and developers must work together
daily throughout the project.
• Build projects around motivated individuals. Give them
the environment and support they need, and trust them
to get the job done.
• The most efficient and effective method of conveying
information to and within a development team is faceto-face conversation.
• Working software is the primary measure of progress.
• Agile processes promote sustainable development. The
sponsors, developers, and users should be able to
maintain a constant pace indefinitely.
• Continuous attention to technical excellence and good
design enhances agility.
• Simplicity--the art of maximizing the amount of work
not done--is essential.
• The best architectures, requirements, and designs
emerge from self-organizing teams.
• At regular intervals, the team reflects on how to become
more effective, then tunes and adjusts its behavior
accordingly.
The focal values honoured by the agilists are presented in
following [17] :
• individual and interaction over processes and tools
• working software over comprehensive documentation
• customer collaboration over contract negotiation
• responding to change over following a plan
Effective communication, collaboration, and coordination
are the main contributing factors for success in agile methods
[6]. Research have been conducted by [6] shows following :
• Physical environment and the effective use of tools like
whiteboards, status boards, and so forth, played an
important role in communication and collaboration.
• Separate cubicle areas helped in performing tasks that
require considerable focus and attention, whereas halfheight glass barriers between these cubicles made their
occupants visible and reachable to each other and also
facilitated in communication, coordination, and
collaboration.
• Close proximity of business experts and separate but
adjacent rooms for two different teams working on the
same project also helped in inter- and intra-team
communication, collaboration, and coordination
• Agile method is valuable for small organization.
[16] propose the following ‘‘sweet spots’’ the presence of
which in software development work enhance the prospect for
a successful project outcome :
• Two to eight people in one room : communication and
community
• Onsite usage experts : short and continuous feedback
cycles
• Short increments : in one to three month, allows quick
testing and repairing
• Fully automated regression test : unit and functional test
stabilize code and allow continuous improvement
• Experienced developers : experience speed up the
development time from 2 to 10 time compare to slower
team members
Research conducted by [8] to comparison of three
developer team with XP method. These teams rely on two
apparently simple mechanisms of co-ordination and
collaboration: story cards and the Wall. They use different
way of story card and the wall in mature XP team developer.
The teams work in different commercial organizations
developing different systems, yet we find significant
similarities between their used of these two artifacts.
B. Collaboration Model
There have been various models of team collaboration.
The models focusing on various aspects while describing
those aspects at different levels of detail. However, for a
model of collaboration to be an effective mechanism for
understanding the operating cognitive mechanisms underlying
collaborative team behaviour the model needs to be defined at
a level of granularity, which covers all the major components
and mechanisms of team collaboration [15].
[9] said that comprehensive model that took into
consideration cognitive issues involved in a group
development is missing. Because of that, he developed the
collaborative problem solving model for software
development. This collaborative model is based on the Dual
Common Model that focuses on individual cognitive aspects
of problem solving and programming. Experiment conduct by
[9], show positive correlation collaborative model and
problem solving and program development. Groupware tool
had negative correlation with overall problem solving and
program development.
According [15], collaboration model is defined by the
problem area characteristics. The model consists of general
inputs (e.g. task description, team roles), collaboration stages
that the team goes through during the problem-solving task,
the cognitive processes used by the team and final team
output(s) (e.g. selected course of action, recommendations,
products). The four cognitive processes include:
• the meta-cognitive processes,
• the information processing tasks,
• the knowledge required to support the information tasks,
• the communication mechanisms for knowledge building
and information processing.
Communication is important for collaboration in many
ways of team work. Software project success is highly
dependent upon knowledge acquisition, information sharing,
and integration [7]. These issues suggest that the
communication medium utilized to support the software
development activity must adequately facilitate uncertainty
reduction and, more important, equivocality reduction [7].
Research conducted by [18] indicated that :
• Combined group (face to face and virtual
communication) reach a higher level of development
than virtual group.
• There was a positive relationship between the level of
group development, the quality of work product, and
the degree of satisfactions.
• There was a negative relationship between group
development level and creativity
Experiment about correlation of medium communication
(face to face and virtual) and software project success
(interaction quality, process satisfaction, and team
productivity) conduct by [7]. The results of his experiment
indicated :
• Face to face medium communication have positive
correlation with team productivity
• There no significant differences between the face to
face and videoconferencing setting for group process
satisfaction.
III. COLLABORATION MODEL DESIGN
Based on previous researches that have been done,
collaboration conducted by team collaboration in agile
methodology are :
• Business people and developers must work together
daily throughout the project [1].
• The most efficient and effective method of conveying
information to and within a development team is faceto-face conversation [1]
• individual and interaction over processes and tools [17]
While the factors that determine the success of software
projects using agile methodologies are [16]:
Direct communication and small community
• Onsite usage experts
• Short increments
• Fully automated regression test
• Experienced developers
Some researches state that direct communication (face to face)
would be more effective in the development team [7],[18],
and determination of the collaboration model will have a
positive impact in the team development [9].
Therefore, based on communication and collaboration in
agile methodology [1],[16], [17] and the results of
research about communication and collaboration [7], [9], [18]
proposed a model of collaboration in software development.
The model is placed in the five generic framework software
engineering. According [19], there are generic process
framework for software engineering encompasses five
activities : communication (with the customer and
stakeholders), planning, modelling, construction, and
deployment. These five generic framework activities can be
used during the development of small, simple program, the
creation of large web application, and for engineering of large,
computer complex-computer based system. Broadly speaking
the model was illustrated in the Fig. 1.
Collaboration and communication of software requirements
was done by face to face communication and story card.
Requirements understanding would be more effective if the
analyst has knowledge in the system domain area.
Collaboration between developer and customer does not like
agile software methodology when one of developers has
knowledge in that domain area. Collaboration tool
between developer and customer can use the paper contains a
form of input, process, and output of the system software will
be made.
Deployment process is a process involving developer and
customers. Collaboration and communication in this process is
done by face to face. While collaboration tools are used for
coordination and repository.
IV. CASE STUDY
Fig. 1 Collaboration model of software development
Collaboration in the planning process conducted between
project leader, analyst, and architect with combine medium
face to face and collaboration tools. Collaboration tool used
to help documentation of the story cards, knowledge sharing,
tool selection, and tasks assignment. The maximum results, if
all three actors in the planning process must understand
the domain system.
Collaboration on modelling was conducted among analyst,
project leader, and software architect to design the outline of
the software architecture of system and possible changes.
Collaboration tools necessary to assist the model design of
software system. And the design of structure program is made
directly using a programming language used in developing
system. Collaboration tools needed to help explain the logic
processing system on GUI and program structure. Medium
communication used in this process is a face to face
and virtual (chat and email).
Construction process involves coding, create automated test,
and validation. Collaboration in construction process is done
by using collaboration tools and software configuration
management tool. Collaboration tool is used for coordination
knowledge sharing, and repository. Software Configuration
management (SCM) tool is used for programming by all
programmers (programmers and testers). SCM is a set of
activities designed to control change by identifying the work
products that are likely to change, establishing relationships
among them, defining mechanisms for managing different
versions of these work products, controlling the changes
imposed, and auditing and reporting on the changes made [19].
SCM tool provides construction services in both system and
unit tests. Medium communication that used in the
construction process is a combination of face to face and
virtual communication.
A. Project Software Case
Collaboration model of software development model is
applied in one case of software project, with a small team and
small sized software in 2 months. Software project that was
built is a web-based application in the industry processes
domain.
Development team consists of 6 persons with the following
composition:
• A project leader concurrently analyst
• An architecture concurrently software programmer
• Three of the programmers
• A technical support
In this team, the analyst is to understand the domain industry
processes (chemical engineer). Software architect is an
experienced software architect and programmer. The
programmers consist of two beginners and an experienced
programmer. In this case programmers develop software as
well as automated unit testing. Technical support served as
data entry and technical writer. Software development in
object oriented programming paradigm with php language and
MySQL Data Base Management System (DBMS).
Collaboration in software development project was
conducted in accordance with the model that has been
determined (Fig. 1) with the selection of collaboration tools
such as in Fig. 2 Collaboration tools selected are freeware
software tools. For selected wiki collaboration tool is PBwork,
SCM tool chosen is mercurial, and user interface design by
using mocking bird. While a virtual communication medium
by using email and instant messenger (google talk).
Fig. 2 Implemented Collaboration Model of Software Development
B. Result
The result of the implementation of collaborative models in
software project case is measured by the accuracy of cost,
time, scope of the software, and software quality. This
software project with the collaboration model was conducted
meet in budget, appropriate time, scope, and software quality.
Software quality was measured by complexity with sonar tool.
Complexity of the software project case explained in TABLE
I.
TABLE I
SOFTWARE QUALITY
Item
Software size
Comment
Complexity
Violations
Rules compliance
Value
• 15 936 line of code
• 481 files
• 115 classes
• 1012 methods
24,3%
• 2.8 / method
• 27.1 / class
797
87.8 %
V. DISCUSSION
Collaboration model adopts from agile methodology and
combined with a few adjustments to the conditions that may
occur in environment business. In agile methodologies
principles [1] define business people and developers must
work together daily throughout the project. Sometime, it is not
possible. Therefore, this collaboration model offers a solution.
Requirement phase is about understanding requirement and
system. By hiring software analyst who understand the
domain system, but still understand of software engineering
principles.
Collaboration of the model is done by combining
collaboration between virtual (software tool) and face to face.
This is in accordance with the agile methodology that
collaboration between developers should be done with the
help of tools and direct collaboration [1], [6], [17], [18].
Selection of software tools in the implementation tailored to
the software development needed. In this case of software
project software tool selection is done by following
considerations:
• Communication tools: instant messenger (gtalk) and em
ail, because at that moment all teams members are
available and familiar with this tool.
• Mocking bird is a collaboration tool to create Graphical
User Interface (GUI) design. This tool is adequate to the
needs of user interface design and easy to use by the
analyst on the team.
• Collaboration tools use in this software project is
wiki (PBwork). In software development communities,
especially open source and global software
development teams, wiki is already widely used for
documentation and coordination purpose but not
programming purpose [20].
• SCM tool used is mercurial, because mercurial SCM is
adequate for software development needed, freeware,
windows platform support, and familiar with
architect in this team.
Selection team members become essential in this
collaboration model. Some special analyst may be hired and
experienced programmer and architect mandatory presence
[16], [18]. In addition, this collaboration model also
requires automated testing like expressed by Cookburn [16].
Implementation this collaboration model in small software
project mentioned above, provide positive results: on
time, schedule, scope, and meet
the quality
software.
Measuring software quality is measured in this case is
the complexity, comments, and violations. Based on quality
measurement, it is stated that the source code generated has a
low complexity, with comments as necessary to explain the
source code. Rules compliance of source code is 87.8%. The
biggest violation occurred because they use of already
available components made by other developers.
VI. CONCLUSION AND FUTURE WORK
Collaboration in software development occurs in every
phase of development process, between customers, developers,
and stakeholders. Collaboration suggested in this model is a
combination of face to face and collaboration software tools.
Selection of software tools depending on the needs of
software development and mastery of the tool. Ability and
knowledge of developers in domain areas of the system which
will be made is one factor determining the success of software
projects. The presence of experienced developers is
determines project software success.
This research can be developed even further by doing a
statistical analysis of many sizes of software projects. Then do
a more in-depth study and research of the relationship
between ways of collaboration, software tool selection, the
ability of developers, software development method with
success and quality of software projects.
ACKNOWLEDGMENT
We’d like to thank all of our team members of “web emisi”
project for our collaboration to success software project. We’d
also like to thank Operator Training Simulator (OTS) team
members for their support.
REFERENCES
[1]
[2]
[3]
[4]
[5]
(2011)
Agile
Alliance
website.
[Online].
Available:
http://www.agilealliance.org/the-alliance/the-agile-manifesto/thetwelve-principles-of-agile-software/
B. Boehm. (2002) IEEE Software on Slideshare homepage. [Online].
Available : http://www.slideshare.net/bstaud/six-reasons-for-softwareproject-failure-presentation
B. Crawford and C. Le´on de la Barra, “Does eXtreme Programming
support Collaborative Creativity?,” in Proc. IMECS Vo.01, 2008.
C. Cook, and N. Churcher, “Modeling and measuring collaborative
software engineering,” in Proc. ACSC, 2005, Vol.38. p. 267--277.
C. Treude and M. A. Storey. (2010) IEEEtran homepage. [Online].
Available:
http://csdl.computer.org/dl/trans/ts/5555/01/tts2010990059.pdf
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
D. Mishra and A. Mishra, “Effective communication, collaboration,
and coordination in eXtreme Programming: human-centric perspective
in a small organization,” Human Factors and Ergonomics in
Manufacturing, Vol. 19, pp. 438–456, 2009.
H. P. Andres, “A comparison of face-to-face and virtual software
development team,” Team Performance Management., vol. 8, pp. 39–
48, Number 1/2. 2002.
H. Sharp and H. Robinson, “Collaboration and co-ordination in mature
eXtreme Programming teams,” Int. J. Human–Computer Studies, vol.
66(7), pp. 506–518, Oct. 2007.
J. D. Tommarello, S. R. Hiltz, C. Perez, F. P. Deek, and J. P . Keen,
“Collaborative software development : experimental result,” in Proc.
HICSS’03, 2002, p.10.
J. Whitehead, “Collaboration in software engineering : a roadmap,”
IEEE FOSE’07., pp. 214–255, May. 2007.
K. Crow. (2002) Collaboration on DRM Associates. [Online].
Available: http://www.npd-solutions.com/collaboration.html
K. S. Na, X. Li, J. T. O. Simson, and K. Y. Kim, “Uncertainty profile
and software project performance : A cross-national comparation,” The
Journalof system and software ., vol.70, pp. 155-163, 2004.
M. Bishop. (2009) irise homepage on irise blog. [Online]. Available :
http://www.irise.com/blog/index.php/2009/06/08/2009-standish-groupchaos-report-worst-project-failure-rate-in-a-decade/
[14]
[15]
[16]
[17]
[18]
[19]
[20]
M. Omar, S. L. Syed-Abdullah, and A. Yasin, “The impact of agile
approach on software engineering teams,” American Journal of
Economics and Business Administration 3, pp.12-17, 2011.
N. Warner, M. Letsky, and M. Cowen. (2003) [Online]. Available:
www.au.af.mil/au/awc/awcgate/navy/model_of_team_collab.doc
P. Abrahamsson. (2007) ITEA homepage on Innovation Report.
modeling,.
[Online].
Available:
ww.itea2.org/project/result/download/result/5583
P. Abrahamsson, O. Salo, J. Ronkainen, and J. Warsta. (2002) VTT
homepage on Agile software development method (review and
analysis).
[Online].
Available:
http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf
R. J. Ocker, “The relationship between interaction, group development,
and outcome : a study of virtual communication,” in Proc.IEEE
HICSS’01, 2001, p. 10
R. Pressman, Software Engineering (a practitioner’s approach), 7th
ed., Singapore: Mc Graw Hill International, 2010.
W. P. Xiao, C. Y. Chi, and M. Yang, “On-line collaborative software
development via wiki,” in Proc. of International symposium on Wikis
WikiSym 07, 2007, p. 177-183.