A Survey of Social Software Engineering

Total Page:16

File Type:pdf, Size:1020Kb

A Survey of Social Software Engineering A Survey of Social Software Engineering Navid Ahmadi, Mehdi Jazayeri, Francesco Lelli, Sasa Nesic Faculty of Informatics, University of Lugano {firstname.lastname}@lu.unisi.ch Abstract • Most of the time is spent in the division of the work among the members and in Software engineering is a complex socio- understanding the requirements that a technical activity, due to the need for particular component should meet. discussing and sharing knowledge among team members. This has raised the need for All these activities involve a strong effective ways of sharing ideas, knowledge, interaction between a set of people that and artifacts among groups and their collaborate in order to achieve a common members. The social aspect of software goal: produce an effective, efficient software engineering process also demands computer following the mantra “Maximum Results with support to facilitate the development by Minimum Effort”. means of collaborative tools, applications This raises on the one hand the need for an and environments. effective way of sharing ideas and In this paper, we present a survey of relevant requirements among the group members and works from psychology, mathematics and on the other hand the need to create tools that computer science studies. The combination of can support such collaboration. these fields provides the required Sawyer in [55] mentions that the social infrastructure for engineering social and perspective is more than just aggregation of collaborative applications as well as the individual software developer’s attributes and software engineering process. We also actions, i.e., the team has to be seen as a discuss possible solutions for the single unit of analysis. Studies by DeMarco encountered shortcomings, and how they can and Lister suggest that on large projects improve software development. typical systems developers spend about 70% of their time working with others [41]. Jones reports that team activities account for about 1. Introduction 85% of the costs of large software systems [47]. Therefore, it is clear that the social It is now commonly accepted that software activity represents a substantial part of the programming is a social activity. Today everyday work of programmers. This raises software development is: the question of whether a systematic adoption of methodologies studied in social and • Carried out in teams. psychological disciplines could improve the productivity of a team. • These teams may include domain On the other hand many web based social specific expert. tools have been developed in order to manage, maintain and improve the social 978-1-4244-2776-5 © 2008 IEEE 1 Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. activities of people. These applications have communication plays a key role in software grown in an independent way but they often development [21], [22]. Lui and Chan also share part of their use cases. Therefore there have a human centric approach to software is the need to define techniques and engineering: in [27] they present different guidelines for building such applications. ways to approach collaborative programming Considering this as a relatively new area, and they show how to combine and we have tried to collect the most interesting harmonize these practices. Therefore, they related work that have been done in different can be applied to common software disciplines that could be used as basic management problems such as motivating building blocks for achieving the foreseen programmers, discovering solution patterns, improvements. managing software teams, and rescuing IT The rest of the paper is organized as projects in trouble. Finally, Yourdon in [28] follows: Section 2 presents a set of relevant identifies with the words “death march” a set works from psychological and social areas of software projects that will have almost no that could be integrated in modern software possibility to succeed due to the way they are development. Section 3 presents relevant organized, managed or carried out by works in building collaborative and social programmers. He also proposes a set of tools while Section 4 gives a set of references techniques for a rapid identification of these on mathematical techniques that have been or projects and a few ways to survive inside could be used in order to validate ideas them. around social software engineering. Other useful results coming from the psychology communities [33] can explain: (i) Why in a certain kind of group we have a 2. Software Engineering as Social Activity person/partner that tends to be excluded. (ii) Why in a group we have usually a person that Many works in psychology and sociology keeps fighting against the project leader. (iii) disciplines have attempted to explain and What kind of people should never be grouped classify the social behaviors of human beings. together in order to avoid group Unfortunately the software engineering fragmentation. (iv) Why groups usually community has spent little effort to integrate divide themselves into subgroups and (v) the outcome of these areas in the modern What is the difference between the “real” software development process. In this section chain of command and the formal one. For we present a set of well-established works in example, during its lifetime, a group disciplines like psychology and sociology that encounters 5 different phases that are could be integrated in the software characterized by a different behavior of the development process in order to improve the members and different productivity. This productivity of a team. social behavior is common in every human One of the first promoters of software activity. Knowledge of these phases and the development as a social activity is Gerald M. adoption of techniques that could lead to a Weinberg in 1971 [34]. Most of his work is fast and safe “group cohesion” (last phase) focused on reengineering the software should be adopted in order to improve the development processes from a “people software engineering process. That was just empowering point of view”. In other words, an example; interested readers can refer to he considers software development as a [23],[24],[25], [26] for additional human-centric activity. Therefore, effective information. 2 Authorized licensed use limited to: Universia della Svizzera Italiana. Downloaded on October 21, 2009 at 05:50 from IEEE Xplore. Restrictions apply. Economists are facing the problem of attain their goals. A social application is improving the communication among people software that takes the relationship among the as well. Goleman in [35] puts a lot of effort members of the community into account and into convincing the reader that working skills supports the social activities to the benefit of are fundamental but many other factors the community. With this definition all the influence the success of projects. Successful applications that support communication and people should have social skills as well in collaboration among users can be considered order to allow a good cooperation between as social applications. Such support can be people in the same group. general and domain-independent, such as e- Other branches of psychology and mail and instant messaging, or tailored for a sociology that could be useful in approaching specific domain and related community, the social software engineering problem which models intra-domain communications include the so-called Persuasion field. On one by virtual environments, such as tools that hand, Cialdini in [32] describe how our brain support collaboration in software engineering. is using seven different shortcuts in order to Social Network Services1 (SNSs) [63] simplify the amount of information that we represent a subset of social applications that are receiving and how they are used in order has gained attention recently. In addition to to convince people to share a point of view. the usual collaborative features they also On the other hand, Fogg in [29] shows how explicitly maintain the connection between the adoption of technology modifies the people. These relationships among members behaviors of a single person or of a group. are modeled as a graph that can be used to As final remark we need to point out that analyze and extract useful information to the according to psychologists most of the social benefit of target society. problems can be solved by a critical analysis SNSs are computer models of social of the dynamics between the people involved. networks that have emerged from human Sometime this introspection needs to be studies. For example, in [6] the authors performed with the help of an external entity propose social network analysis as a way to that remains uninfluenced by the dynamics mitigate human health problems. According among people. This idea supports the to [33] if a person is not inserted in a healthy approach of Weinberg [34], [21], [22] to group she/he can experience more diseases. software development. As a mater of fact by Therefore, they propose social network helping programmers to think critically we analysis as a way to detect such problems. In can avoid misunderstanding that could slow [9] the authors identify these techniques as a down the software development. way to understand possible communication The next section will address the problem weaknesses within a company and of engineering social applications by demonstrate that by solving this, productivity presenting the state of the art in relevant can increase. computer science areas like social networks In computer science, techniques on how to and collaborative applications. build social networking website are starting to be consolidated [30], [31]. Nerveless an appropriate visualization of a social network 3. On Engineering of Social Applications is still an open issue; for instance, in [8] the It is commonly accepted that many 1 These links are examples in of Social network Services: communities rely on computer support to http://www.friendster.com/ http://www.myspace.com/ http://www.linkedin.com/ http://www.facebook.com/ 3 Authorized licensed use limited to: Universia della Svizzera Italiana.
Recommended publications
  • A Survey of Collaborative Tools in Software Development
    1 INTRODUCTION A Survey of Collaborative Tools in Software Development Anita Sarma Institute for Software Research Donald Bren School of Information and Computer Sciences University of California, Irvine [email protected] ISR Technical Report # UCI-ISR-05-3 March 22, 2005 1 Introduction Collaboration is at the heart of software development. Virtually all software devel- opment requires collaboration among developers within and outside their project teams, to achieve a common objective. It has in fact been shown that about 70% of a software engineer’s time is spent on collaborative activities [219]. Indeed, col- laboration in software development has been studied by researchers in the fields of Software Engineering and Computer Supported Cooperative Work (CSCW) since the 1980s and has produced a wide range of collaborative tools. Enabling software developers to collaborate effectively and effortlessly is a difficult task. The collaboration needs of the team depend to a large extent on environmental factors such as, the organizational structure of the team, the domain for which the software is produced, the product structure, and individual team members. Accordingly, research in collaborative development has produced a host of tools, each typically focussing on a different aspect of collaboration. Most teams have their favorite repertoire of tools that has been built from historical use. These tools may not always be the best suited for the team, but the team still uses them nevertheless as the inertia and cost of trying out new tools surpasses the benefits. A number of classification frameworks exist that can be used to classify collaborative tools. In addition to placing the various tools in context, developers can use these frameworks to select the right mix of tools fit for their needs.
    [Show full text]
  • Collaborative Education in a Virtual Learning Environment Hani Bani
    Collaborative Education in a Virtual Learning Environment Hani Bani-Salameh Department of Software Engineering, The Hashemite University, Zarqa 13115, Jordan E-mail: [email protected] Jafar Al-Gharaibeh Architecture Technology Corporation, Eden Prairie, MN 55344, United States E-mail: [email protected] Clinton Jeffery Department of Computer Science, University of Idaho, Moscow, ID 83843, USA E-mail: [email protected] Ziad A. Al-Sharif Department of Software Engineering, Jordan University of Sci. & Tech, Irbid, Jordan E-mail: [email protected] Abstract: For the last few decades, there was tremendous interest in harnessing 3D virtual environments for education and training. Multi-user game-like environments make use of non-player characters and quest activities in tutoring and training. This approach incorporates successful active learning and incremental progress. This article presents issues encountered while adapting the multi-user online game genre for educational virtual environments. In this endeavour, non-player characters play a central role in organizing and delivering educational content. Educational virtual environments call for additional kinds of extension beyond generic user content creation as delivered in some virtual worlds like SecondLife. Support for these environments will emphasize the creation of new activities. A set of libraries and techniques named Portable Non-player character tutors and Quests reduces the effort needed to develop and integrate educational non-player characters. These non-player characters are introduced in CVE, a platform for rapidly developing educational virtual environments. The Portable Non-player character tutors and Quests framework enables formatted web-based exercises, quizzes, and educational content to be incorporated into Copyright © 2016 Inderscience Enterprises Ltd.
    [Show full text]
  • Invisible Crowds in Cyberspace
    Invisible Crowds in Cyberspace: Mapping the Social Structure of the Usenet1 Marc A. Smith University of California, Los Angeles Published in: Smith, Marc. “Invisible Crowds in Cyberspace: Measuring and Mapping the Social Structure of USENET” in Communities in Cyberspace: Perspectives on New Forms of Social Organization.. London, Routledge Press, 1999 SURVEYING SOCIAL CYBERSPACES The Usenet is a quintessential Internet social phenomenon: it is huge, global, anarchic and rapidly growing. It is also mostly invisible. Although, it is the largest example of a conferencing or discussion group system,2 the tools generally available to access it only display leaves and branches - chains of messages and responses. None present the trees and forest. With hundreds of thousands of new messages every day, it is impossible to try to read them all to get a sense of the entire place. As a result, an overview of activity in the Usenet has been difficult to assemble and many basic questions about its size, shape, structure and dynamics have gone unanswered. How big is the Usenet? How many people post? Where are they from? When and where do they post? How do groups vary from one another and over time? How many different kinds of groups are there? How many groups successfully thrive and how many die? What do the survivors have that the others lack? How do different social cyberspaces connect and fit together and form a larger ecology? There is no shortage of questions. But we lack a historical record of the transformations of social cyberspaces3 just at the point when network interaction media are being widely adopted.
    [Show full text]
  • Adopting a Collaborative Software Development Process in the Scientific Community
    Adopting a Collaborative Software Development Process in the Scientific Community NOAA's 32nd Climate Diagnostics and Prediction Workshop (CDPW) Mike Charles DOC/NOAA/NWS/NCEP/CPC Motivation To advocate improved software development and project management techniques, including collaborative software development and the use of project management software. Who does this apply to? • Universities • Government • Private sector • Any software developers From now on, for the sake of brevity, "collaborative work" will include use of project management software. Disadvantages of Non- Collaborative Work Non-Collaborative Work A developer works alone • Work goes unchecked by others • If the owner leaves, nobody knows how the software works • There are no ideas contributed by others during development Non-Collaborative Work A developer doesn't log changes • Hard to revert to a previous version of the code • Can't remember what they did last week • Can't tell why a specific change was made Non-Collaborative Work A developer doesn't create documentation • Hard for others to adopt code • Hard for backup code owners to fix bugs and/or run code • Hard to share code with others Advantages of Collaborative Work Collaborative Work How should developers be working? • Collaboration - Working with others leads to more ideas and creativity, and more QCing of code • Tracking Changes - Using revision control software, tracking changes to code and keeping a log makes it easier to revert to older versions of the code, and keep track of work • Documentation - Creating
    [Show full text]
  • WHY USE a WIKI? an Introduction to the Latest Online Publishing Format
    WHY USE A WIKI? An Introduction to the Latest Online Publishing Format A WebWorks.com White Paper Author: Alan J. Porter VP-Operations WebWorks.com a brand of Quadralay Corporation [email protected] WW_WP0309_WIKIpub © 2009 – Quadralay Corporation. All rights reserved. NOTE: Please feel free to redistribute this white paper to anyone you feel may benefit. If you would like an electronic copy for distribution, just send an e-mail to [email protected] CONTENTS Overview................................................................................................................................ 2 What is a Wiki? ...................................................................................................................... 2 Open Editing = Collaborative Authoring .................................................................................. 3 Wikis in More Detail................................................................................................................ 3 Wikis Are Everywhere ............................................................................................................ 4 Why Use a Wiki...................................................................................................................... 5 Getting People to Use Wikis ................................................................................................... 8 Populating the Wiki................................................................................................................. 9 WebWorks ePublisher and Wikis
    [Show full text]
  • Collaborative Software Performance Engineering for Enterprise Applications
    Proceedings of the 50th Hawaii International Conference on System Sciences | 2017 Collaborative Software Performance Engineering for Enterprise Applications Hendrik Müller, Sascha Bosse, Markus Wirth, Klaus Turowski Faculty of Computer Science, Otto-von-Guericke-University, Magdeburg, Germany {hendrik.mueller, sascha.bosse, markus.wirth, klaus.turowski}@ovgu.de Abstract address these challenges from a software engineering perspective under the term DevOps [2], [3]. In the domain of enterprise applications, Corresponding research activities aim at increased organizations usually implement third-party standard flexibility through shorter release cycles in order to software components in order to save costs. Hence, support frequently changing business processes. application performance monitoring activities Therefore, DevOps enables a culture, practices and constantly produce log entries that are comparable to automation that support fast, efficient and reliable a certain extent, holding the potential for valuable software delivery [4]. However, especially for collaboration across organizational borders. Taking enterprise applications, IT departments usually make advantage of this fact, we propose a collaborative use of existing standard software components instead knowledge base, aimed to support decisions of of developing solutions entirely in-house [5]. In such performance engineering activities, carried out cases, activities referred to as Dev, rather include during early design phases of planned enterprise requirements engineering, architectural design, applications. To verify our assumption of cross- customization, testing, performance-tuning and organizational comparability, machine learning deployment [6]. Here, key service levels typically algorithms were trained on monitoring logs of 18,927 include performance objectives, expressed in terms of standard application instances productively running average response times, throughput or latency, in at different organizations around the globe.
    [Show full text]
  • Personalizing the Collaborative Learning Environment with Pictures
    Personalizing the Collaborative Learning Environment with Pictures Brian Mackie OMIS Department, Northern Illinois University DeKalb, IL 60115, USA [email protected] and Charletta F. Gutierrez ABF Department, Northeastern Illinois University 5500 N. St. Louis Avenue Chicago, IL 60625, USA [email protected] ABSTRACT that are geographically and time-dispersed [3]. Making the most efficient use of time is critical in today’s fast-paced world. The Internet and Web-based technologies, as well as rapid Collaborative software can expedite the ability of groups to globalization, are changing the way businesses communicate. develop a shared understanding of a problem or task and move Continuous progress in Information Technology (IT) enables towards a solution. According to [4], new technology should be effective and efficient communication, particularly with the use developed in such a way that it enhances the existing culture. of collaborative systems. Such systems have many different That is, such technology should be developed from within the types of interfaces and attributes, and one such attribute is the use organization, rather than being pushed down from upper of visuals. This research assesses the usefulness of participant management [4]. Technologies should not just adapt to the pictures in a collaborative exchange. To evaluate the usefulness existing culture, but should help the organization change the of such pictures, participants were asked a series of questions existing norms; otherwise such technologies are likely to fail regarding the use of pictures in CAMS, a collaborative [5],[6]. To be effective, these technologies must do more than environment. The results suggest that, in a collaborative setting, automate existing practices; they should improve processes not the use of pictures is valuable in enhancing a “sense of only in the business organization but also in educational settings community,” particularly in cases where participants have not [6],[7].
    [Show full text]
  • Wikis As a Tool for Collaborative Language Learning: Implications for Literacy, Language Education and Multilingualism
    ISSN 2335-2019 (Print), ISSN 2335-2027 (Online) Darnioji daugiakalbystė | Sustainable Multilingualism | 5/2014 http://dx.doi.org/10.7220/2335-2027.5.8 Selami Aydin Balikesir University, Turkey WIKIS AS A TOOL FOR COLLABORATIVE LANGUAGE LEARNING: IMPLICATIONS FOR LITERACY, LANGUAGE EDUCATION AND MULTILINGUALISM Summary. This study presents a review of the literature concerning the use of wikis as a tool for collaborative learning in the second language acquisition and foreign language learning process, as research on the use of wikis is relatively new. The study first introduces the theoretical background behind the use of wikis in the mentioned processes. Then, it reviews the studies concerning wikis as a tool for collaborative language learning. The study concludes that the use of wikis improves basic language skills, encourages positive perceptions of learning, increases motivation, provides opportunities to practice autonomy, and enhances inquiry learning and critical thinking, although they appear to have no effect on cultural proficiency. More importantly, Wikis appear to be an advantageous tool for improving writing, and may have additional benefits in developing literacy in multilingual contexts where access to minor languages in the educational process is limited. The paper ends with practical recommendations for teachers and researchers. Keywords: collaborative learning; collaboration; foreign language learning; learner autonomy; second language learning. Introduction Within the contexts of second language acquisition and foreign language learning, wikis constitute a quickly emerging and popular learning tool. Because research on their efficiency is relatively new, wikis’ efficacy in the language acquisition and learning processes remains an open question. This study aims to review various scientific studies on the use of wikis as a tool for collaborative learning and their role within second language acquisition and foreign language learning contexts.
    [Show full text]
  • Enterprise Collaboration & Social Software
    Enterprise Collaboration & Social Software June 2013 INDUSTRY REPORT INSIDE THIS ISSUE Enterprise Collaboration & Social Software 1. Introduction INTRODUCTION 2. Market Trends This report focuses on technologies for collaboration and socialization within the enterprise. A number of forces are currently playing out in the enterprise IT 3. Competitive Landscape environment that are creating an inflection in the adoption and deployment of social and collaboration technologies. This significant uptrend has provided strong 4. M&A Activity growth for the sector and is driving a substantial amount of M&A and investment activity. This report includes a review of the recent M&A and private investing 5. Private Financings activities in enterprise social and collaboration software, particularly within the areas of group collaboration & workspaces, private social platforms, project and 6. Valution Trends social task management, event scheduling, web collaboration, white boarding & diagramming, and other related technologies. We have also profiled about 50 emerging private players in these subcategories to provide an overview of the 7. Emerging Private Companies breadth and diversity of the players targeting this sector. OVERVIEW Socialization and collaboration technologies are currently reshaping the established enterprise collaboration market as well as creating whole new categories of offerings, especially around private social platforms. In addition, many other enterprise applications such as CRM and unified communications are heavily transformed through the incorporation of new technologies including group messaging & activity feeds, document collaboration, and analytics. Much of this change is being driven by the consumerization of IT and the incorporation of social technologies. As businesses look to leverage the benefits of improved “connecting” and “network building” that employees have experienced with Facebook and other social solutions, a convergence is occurring between the enterprise social software and collaboration markets.
    [Show full text]
  • The Dos and Don'ts of Videoconferencing in Higher
    The Dos and Don’ts of Videoconferencing in Higher Education HUSAT Research Institute Loughborough University of Technology Lindsey Butters Anne Clarke Tim Hewson Sue Pomfrett Contents Acknowledgements .................................................................................................................1 Introduction .............................................................................................................................3 How to use this report ..............................................................................................................3 Chapter 1 Videoconferencing in Higher Education — How to get it right ...................................5 Structure of this chapter ...............................................................................................5 Part 1 — Subject sections ............................................................................................6 Uses of videoconferencing, videoconferencing systems, the environment, funding, management Part 2 — Where are you now? ......................................................................................17 Guidance to individual users or service providers Chapter 2 Videoconferencing Services — What is Available .....................................................30 Structure of this chapter ...............................................................................................30 Overview of currently available services .......................................................................30 Broadcasting
    [Show full text]
  • The Role of Collaborative Software and Decision Support Systems in the Smarter Cities
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Research Papers in Economics THE ROLE OF COLLABORATIVE SOFTWARE AND DECISION SUPPORT SYSTEMS IN THE SMARTER CITIES Virgil Chichernea1 Abstract The transition from the traditional city to the smart city is made by supported efforts regarding the achievement of a more steady, more efficient, more responsible city, through convergent strategies that deal with Smart Transportation Systems, Energy and Utilities Management, Water Management, Smart Public Safety, Healthcare Systems, Environmental Management, Educational Systems, Telecommunications (ITC Support),etc. and Positive Thinking. Service Oriented Architecture (SOA) meets the customers’ needs and the administration, the management of data, information, knowledge and decisions through Collaborative Systems and Decision Support Systems have a major impact both at the level of the smart city and the level of subsystems/services, and the information technology within smart cities becomes a major direction of research in the field of ITC. Keywords: Smart City, Collaborative Systems, Decision Support Systems (DSS), Service Oriented Architecture (SOA), Portal technology Introduction: Collaborative software (also referred to as groupware, workgroup support systems or simply group support systems) is computer software designed to help people involved in a common task achieve their goals. It is usually associated with individuals not physically co-located, but instead working together across an internet connection. It can also include remote access storage systems for archiving common use data files that can be accessed, modified and retrieved by the distributed workgroup members. Collaborative software is a broad concept that greatly overlaps with Computer-supported cooperative work (CSCW).
    [Show full text]
  • Introducing Social Development Environments
    INTRODUCING SOCIAL DEVELOPMENT ENVIRONMENTS Hani Bani-Salameh Clinton Jeffery Iyad Abu Doush Computer Science Department Computer Science Department Computer Science Department University of Idaho University of Idaho Yarmouk University Moscow, ID 83843, USA Moscow, ID 83843, USA Irbid, Jordan [email protected] [email protected] [email protected] “CDEs are essentially team centric, meaning that their primary user experience focuses on the needs of the team (but with points ABSTRACT of entry for different individuals).” A Social Development Environment is a real-time collaborative programming tool with integrated social networking features. Grady Booch [1, 5] stated that the purpose of a CDE is to This emerging technology is important for distributed software create a foundation for environments (tools) that reduces the developers, e-learning and technical communities. Social frictions that have an impact on the daily work of the distributed Development Environments advance the state of the art for software developers and reduces both individual and group collaboration, coordination, and project management in software efficiency, and to support the development process during the development. whole life cycle of the project. Social Development Environments provide a wide range of In contrast with the support that CDEs provide for teams facilities for synchronous and asynchronous collaboration and working closely together, social networks build online information sharing between team members. This paper provides communities of people loosely connected by their common an overview of SDEs and compares state of the art examples with interests or activities. Community is a vital aspect of software our novel solution called SCI (Social Collaborative IDE).
    [Show full text]