With over 28 million developers, success of GitHub collaborative platform is highlighted through the abundance of communication channels among contemporary software projects. Knowledge is broken into two forms and its transfer (through communication channels) can be described as externalization or combination by the SECI model of knowledge transfer of an organization. Over the years, such platforms have revolutionized the way developers work, introducing new channels to share knowledge in the form of pull requests, issues and wikis. It is unclear how these channels capture and share knowledge. In this research, our goal is to analyze how communication channels share knowledge over projects. First, using the SECI model, we are able to map how knowledge is transferred through the communication channels. Then in a large-scale topology analysis of seven library package platforms, we extracted insights of how knowledge is shared by different library ecosystems within GitHub. Using topology data analysis, we show that (i) channels tend to evolve over time and (ii) library ecosystems consistently have channels to capture new knowledge (i.e., externalization). Results from the study aid in understanding what channels are important sources of knowledge, also with insights into how projects can attract and sustain developer contributions.
In the field of Software Engineering, research into channels is based on social practices. Social practice characterizes the existence of activities which are related to each other @cite_42 . These collaborative works are conducted through (i) distributed teleo-affective structures for software design and development, (ii) shared common or specific knowledge of the software development requirements, and (iii) clear procedures and regulations governing people to accomplish specific activities https: en.wikipedia.org wiki Practice . Social practices are not confined to only industry-related practices, but more broadly, they can be implemented in open source software projects. In addition to requiring a shared understanding of the requirements to become a project member, a development of open source products performed by complying with common rules as well, and by using a shared teleo-affective. Therefore, the activities of each individual can be connected from the initial of the development to the end of the project. The example of the requirements in the open source projects is also described by Scacchi @cite_38 . This study analyzes channels from a knowledge perspective instead of social collaborations.
@cite_38 @cite_42
2028561093 882857864
Presents an initial set of findings from an empirical study of social processes, technical system configurations, organisational contexts and interrelationships that give rise to open software. The focus is directed at understanding the requirements for open software development efforts, and how the development of these requirements differs from those traditional to software engineering and requirements engineering. Four open software development communities are described, examined and compared to help discover what these differences may be. Eight kinds of software informalisms are found to play a critical role in the elicitation, analysis, specification, validation and management of requirements for developing open software systems. Subsequently, understanding the roles these software informalisms take in a new formulation of the requirements development process for open source software is the focus of the study. This focus enables the consideration of a reformulation of the requirements engineering process and its associated artefacts, or (in)formalisms, to better account for the requirements for developing open source software systems. ContextMethods and processes, along with the tools to support them, are at the heart of software engineering as a discipline. However, as we all know, that often the use of the same method neither impacts software projects in a comparable manner nor the software they result in. What is lacking is an understanding of how methods affect software development. ObjectiveThe article develops a set of concepts based on the practice-concept in philosophy of sociology as a base to describe software development as social practice, and develop an understanding of methods and their application that explains the heterogeneity in the outcome. Practice here is not understood as opposed to theory, but as a commonly agreed upon way of acting that is acknowledged by the team. MethodThe article applies concepts from philosophy of sociology and social theory to describe software development and develops the concepts of method and method usage. The results and steps in the philosophical argumentation are exemplified using published empirical research. ResultsThe article develops a conceptual base for understanding software development as social and epistemic practices, and defines methods as practice patterns that need to be related to, and integrated in, an existing development practice. The application of a method is conceptualized as a development of practice. This practice is in certain aspects aligned with the description of the method, but a method always under-defines practice. The implication for research, industrial software development and teaching are indicated. ConclusionThe theoretical philosophical concepts allow the explaining of heterogeneity in application of software engineering methods in line with empirical research results.