35 research outputs found
Why does site visit matter in global software development: A knowledge-based perspective
Abstract not availableMansooreh Zahedi, Muhammad Ali Baba
A systematic review of knowledge sharing challenges and practices in global software development
Abstract not availableMansooreh Zahedia, Mojtaba Shahinb, Muhammad Ali Baba
An Empirical Study of Security Issues Posted in Open Source Projects
When developers gain thorough understanding and knowledge of software security, they can produce more secure software. This study aims at empirically identifying and understanding the security issues posted on a random sample of GitHub repositories. We tried to understand the presence of security issues and their key themes and topics. We applied a mixed-methods approach, combining topic modeling techniques and qualitative analysis. Our findings have revealed that a) the rate of security-related issues was rather small (approx. 3% of all issues), b) the majority of the security issues were related to identity management and cryptography topics. We present 7 high-level themes of problems that developers face in implementing security features
Collaborative Application Security Testing for DevSecOps: An Empirical Analysis of Challenges, Best Practices and Tool Support
DevSecOps is a software development paradigm that places a high emphasis on
the culture of collaboration between developers (Dev), security (Sec) and
operations (Ops) teams to deliver secure software continuously and rapidly.
Adopting this paradigm effectively, therefore, requires an understanding of the
challenges, best practices and available solutions for collaboration among
these functional teams. However, collaborative aspects related to these teams
have received very little empirical attention in the DevSecOps literature.
Hence, we present a study focusing on a key security activity, Application
Security Testing (AST), in which practitioners face difficulties performing
collaborative work in a DevSecOps environment. Our study made novel use of 48
systematically selected webinars, technical talks and panel discussions as a
data source to qualitatively analyse software practitioner discussions on the
most recent trends and emerging solutions in this highly evolving field. We
find that the lack of features that facilitate collaboration built into the AST
tools themselves is a key tool-related challenge in DevSecOps. In addition, the
lack of clarity related to role definitions, shared goals, and ownership also
hinders Collaborative AST (CoAST). We also captured a range of best practices
for collaboration (e.g., Shift-left security), emerging communication methods
(e.g., ChatOps), and new team structures (e.g., hybrid teams) for CoAST.
Finally, our study identified several requirements for new tool features and
specific gap areas for future research to provide better support for CoAST in
DevSecOps.Comment: Submitted to the Empirical Software Engineering journal_v
An empirical study of architecting for continuous delivery and deployment
Recently, many software organizations have been adopting Continuous Delivery
and Continuous Deployment (CD) practices to develop and deliver quality
software more frequently and reliably. Whilst an increasing amount of the
literature covers different aspects of CD, little is known about the role of
software architecture in CD and how an application should be (re-) architected
to enable and support CD. We have conducted a mixed-methods empirical study
that collected data through in-depth, semi-structured interviews with 21
industrial practitioners from 19 organizations, and a survey of 91 professional
software practitioners. Based on a systematic and rigorous analysis of the
gathered qualitative and quantitative data, we present a conceptual framework
to support the process of (re-) architecting for CD. We provide evidence-based
insights about practicing CD within monolithic systems and characterize the
principle of "small and independent deployment units" as an alternative to the
monoliths. Our framework supplements the architecting process in a CD context
through introducing the quality attributes (e.g., resilience) that require more
attention and demonstrating the strategies (e.g., prioritizing operations
concerns) to design operations-friendly architectures. We discuss the key
insights (e.g., monoliths and CD are not intrinsically oxymoronic) gained from
our study and draw implications for research and practice.Comment: To appear in Empirical Software Engineerin