
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.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages12 Page
-
File Size-