scholarly journals Software Developers’ Work Habits and Expertise: Empirical Studies on Sketching, Code Plagiarism, and Expertise Development

Author(s):  
Sebastian Baltes

AbstractAnalyzing and understanding software developers’ work habits and resulting needs is an essential prerequisite to improve software development practice. In our research, we utilize different qualitative and quantitative research methods to empirically investigate three underexplored aspects of software development: First, we analyze how software developers use sketches and diagrams in their daily work and derive requirements for better tool support. Then, we explore to what degree developers copy code from the popular online platform Stack Overflow without adhering to license requirements and motivate why this behavior may lead to legal issues for affected open source software projects. Finally, we describe a novel theory of software development expertise and identify factors fostering or hindering the formation of such expertise. Besides, we report on methodological implications of our research and present the open dataset SOTorrent, which supports researchers in analyzing the origin, evolution, and usage of content on Stack Overflow. The common goal for all studies we conducted was to better understand software developers’ work practices. Our findings support researchers and practitioners in making data-informed decisions when developing new tools or improving processes related to either the specific work habits we studied or expertise development in general.

PLoS ONE ◽  
2020 ◽  
Vol 15 (12) ◽  
pp. e0243852
Author(s):  
Glaucia Melo ◽  
Toacy Oliveira ◽  
Paulo Alencar ◽  
Donald Cowan

Software developers need to cope with a massive amount of knowledge throughout the typical life cycle of modern projects. This knowledge includes expertise related to the software development phases (e.g., programming, testing) using a wide variety of methods and tools, including development methodologies (e.g., waterfall, agile), software tools (e.g., Eclipse), programming languages (e.g., Java, SQL), and deployment strategies (e.g., Docker, Jenkins). However, there is no explicit integration of these various types of knowledge with software development projects so that developers can avoid having to search over and over for similar and recurrent solutions to tasks and reuse this knowledge. Specifically, Q&A sites such as Stack Overflow are used by developers to share software development knowledge through posts published in several categories, but there is no link between these posts and the tasks developers perform. In this paper, we present an approach that (i) allows developers to associate project tasks with Stack Overflow posts, and (ii) recommends which Stack Overflow posts might be reused based on task similarity. We analyze an industry dataset, which contains project tasks associated with Stack Overflow posts, looking for the similarity of project tasks that reuse a Stack Overflow post. The approach indicates that when a software developer is performing a task, and this task is similar to another task that has been associated with a post, the same post can be recommended to the developer and possibly reused. We believe that this approach can significantly advance the state of the art of software knowledge reuse by supporting novel knowledge-project associations.


Author(s):  
Walid Al-Ahmad

Traditionally, project success/failure is considered only after the project is completed or cancelled. Integrating project success and failure factors knowledge and software engineering activities would result in a situation where project success/failure is considered as part of the development process, leading to more successful software projects. This article aims to identify the common issues responsible for IT projects’ success/failure to develop a deeper understanding of these root causes. Knowledge about success can be used to understand failure and vice versa. Therefore, generic taxonomies of the root causes are developed for that purpose. Knowledge of these taxonomies is integrated into software development and management activities to help software developers and project managers complete projects successfully.


2019 ◽  
Vol 892 ◽  
pp. 38-45
Author(s):  
Marzanah A. Jabar ◽  
Norhayati Mohd. Ali ◽  
Yusmadi Yah Jusoh ◽  
Salfarina Abdullah ◽  
S. Mohanarajah

Software developers have shown a lot of interest in using agile approaches and methods to manage projects. The Agile Manifesto in 2001 provided a good basis to use this as it formulated its 4 values and 12 principles. Adaptability was a common feature in the Agile Manifesto to make agility happen and there appears a need to combine dynamism to ensure agility takes a more concrete and effective role. Whilst the term adaptability is discussed more often than dynamism by most researchers, the clarity in its meaning needs improvement as the terms are used interchangeably. This paper proposes a useful clarity on its differences and how it should be used. In addition, this approach would also facilitate the current research interest in mixing and combining software development methodologies to create hybrid versions as pure methods (traditional and agile) have not worked well in most software projects.


2018 ◽  
Vol 52 (2) ◽  
pp. 190-247 ◽  
Author(s):  
Arshad Ahmad ◽  
Chong Feng ◽  
Shi Ge ◽  
Abdallah Yousif

Purpose Software developers extensively use stack overflow (SO) for knowledge sharing on software development. Thus, software engineering researchers have started mining the structured/unstructured data present in certain software repositories including the Q&A software developer community SO, with the aim to improve software development. The purpose of this paper is show that how academics/practitioners can get benefit from the valuable user-generated content shared on various online social networks, specifically from Q&A community SO for software development. Design/methodology/approach A comprehensive literature review was conducted and 166 research papers on SO were categorized about software development from the inception of SO till June 2016. Findings Most of the studies revolve around a limited number of software development tasks; approximately 70 percent of the papers used millions of posts data, applied basic machine learning methods, and conducted investigations semi-automatically and quantitative studies. Thus, future research should focus on the overcoming existing identified challenges and gaps. Practical implications The work on SO is classified into two main categories; “SO design and usage” and “SO content applications.” These categories not only give insights to Q&A forum providers about the shortcomings in design and usage of such forums but also provide ways to overcome them in future. It also enables software developers to exploit such forums for the identified under-utilized tasks of software development. Originality/value The study is the first of its kind to explore the work on SO about software development and makes an original contribution by presenting a comprehensive review, design/usage shortcomings of Q&A sites, and future research challenges.


Author(s):  
Jungil Kim ◽  
Eunjoo Lee

GitHub and Stack Overflow are often used together for software development. GH-SO users, who use both GitHub and Stack Overflow, contribute to the development of various software projects in GitHub and share their knowledge and experience on software development in Stack Overflow. To widely understand the interests and working habits of GH-SO users on software development, it is important to investigate how GH-SO users utilize GitHub and Stack Overflow. In this paper, we present an exploratory study on GitHub commit and Stack Overflow post activities of GH-SO users. Specifically, we investigate the working habits of GH-SO users on GitHub commit and Stack Overflow post activities. We randomly selected 19,756 of GH-SO users as our target sample and collected 2,819,483 and 2,147,317 of commit activity data and post activity data of the GH-SO users. We then categorized the collected commit and post activity datasets into specific categories on programming languages and statistically analyzed the categorized commit and post activity datasets. As the results of our analysis, we found the following: (1) The overall commit and post activities of the GH-SO users share some similarity. (2) The commit activities gradually change while the post activities drastically change over time. (3) The commit activities of the GH-SO users are broadly distributed while the post activities are narrowly distributed and the commit activity can be better predictor for post activity. (4) The commit activity of the GH-SO users tends to be performed prior post activity. We believe that our findings can contribute to finding the ways to better support commit and post activities of GitHub and Stack Overflow users.


Author(s):  
Eliakim Gama ◽  
Sávio Freire ◽  
Manoel Mendonça ◽  
Rodrigo O. Spínola ◽  
Matheus Paixao ◽  
...  

Author(s):  
CUAUHTÉMOC LÓPEZ-MARTÍN ◽  
ALAIN ABRAN

Expert-based effort prediction in software projects can be taught, beginning with the practices learned in an academic environment in courses designed to encourage them. However, the length of such courses is a major concern for both industry and academia. Industry has to work without its employees while they are taking such a course, and academic institutions find it hard to fit the course into an already tight schedule. In this research, the set of Personal Software Process (PSP) practices is reordered and the practices are distributed among fewer assignments, in an attempt to address these concerns. This study involved 148 practitioners taking graduate courses who developed 1,036 software course assignments. The hypothesis on which it is based is the following: When the activities in the original PSP set are reordered into fewer assignments, the result is expert-based effort prediction that is statistically significantly better.


Information ◽  
2018 ◽  
Vol 9 (9) ◽  
pp. 222 ◽  
Author(s):  
Hamzeh Eyal Salman ◽  
Mustafa Hammad ◽  
Abdelhak-Djamel Seriai ◽  
Ahed Al-Sbou

Software applications have become a fundamental part in the daily work of modern society as they meet different needs of users in different domains. Such needs are known as software requirements (SRs) which are separated into functional (software services) and non-functional (quality attributes). The first step of every software development project is SR elicitation. This step is a challenge task for developers as they need to understand and analyze SRs manually. For example, the collected functional SRs need to be categorized into different clusters to break-down the project into a set of sub-projects with related SRs and devote each sub-project to a separate development team. However, functional SRs clustering has never been considered in the literature. Therefore, in this paper, we propose an approach to automatically cluster functional requirements based on semantic measure. An empirical evaluation is conducted using four open-access software projects to evaluate our proposal. The experimental results demonstrate that the proposed approach identifies semantic clusters according to well-known used measures in the subject.


Author(s):  
Mariana Peixoto ◽  
Carla Silva ◽  
Ricarth Lima ◽  
João Araújo ◽  
Tony Gorschek ◽  
...  

Recent research has pointed out that software developers face difficulties to specify requirements for privacy-sensitive systems. To help addressing this issue, this paper presents a tool, called PCM Tool, that supports the Privacy Criteria Method (PCM) - an approach designed to guide the specification of privacy requirements in agile software development.


Sign in / Sign up

Export Citation Format

Share Document