# A Decentralized Framework for Managing Task Allocation in Distributed Software Engineering
## 1 Introduction  
Developing successful projects where teams are geographically distributed puts pressure on project managers and teams to collaborate and coordinate effectively. This makes distributed software development (DSD) adoption both challenging and complex. Despite numerous advantages in overcoming barriers of geographically distributed teams, such as different time zones, reduction in development cost, time of development, etc., some of the barriers arise in planning and managing task allocation, coordination, communication, handling of strategic issues, knowledge management, interpersonal relationships, technical issues, team roles and responsibilities, efficiency, and trust among team members [1, 2, 3, 4, 5, 6]. Both academia and industry are exploring solutions to these challenges of distributed software development. A significant challenge in DSD is related to handling task allocation--what, when, to whom, and how--to remote teams. Other major issues are related to problems of collaboration and coordination between distributed team members. In DSD, a lack of direct communication leads to non-trustworthy behavior and knowledge vaporization. Studies have acknowledged that many organizations face the challenge of a lack of proper documentation in both agile as well as traditional software development [7, 8, 9, 10, 11]. According to them, much of the knowledge remains in the source code test files, and many times outdated, incomplete, missing, or abstract documents are shared [7, 8, 9, 12]. Another issue that is dominant in DSD is the knowledge vaporization. Due to the lack of face-to-face communication, much of the knowledge exists in the formof electronic media such emails and chats, which makes retrieval of this knowledge difficult [7; 10; 11]. This is due to the fact that teams need to keep themselves updated with emerging software development techniques or strategies. This paper proposes a solution to one of the challenges of allocating tasks in DSD with improved coordination and communication between team members. These two aspects are closely related to each other because efficient task allocation and appropriate communication and coordination confirm smooth development, exclusive of the need for re-allocation, and by ensuring tasks are allocated to the most suitable developers/sites, cogitating the development cost, proficiency, availability, and other geographical challenges. In the past, these two aspects were handled separately. The handling of task allocation among team members or offshore organizations requires effective and efficient collaboration and coordination measures. Deciding what, when, to whom, and how, is one of the biggest challenges that managers face while allocating tasks of geographically separated teams. In general, the task allocation is handled by project managers based on developers' appraisals, expertise, or history of task handling. This ad-hoc or manual allocation does not obey any systematic approach and makes this process non-transparent to a larger extent. The literature lists methods and frameworks independently to address the complexity of inherent task assignment decisions and knowledge management to support adaptability, flexibility, and the existence of a process or flowcharts based on quantitative multi-criteria methods of decision-making and mathematical aspects [3; 4; 5; 6]. Furthermore, the issue of documentation and knowledge vaporization complicates the whole process of knowledge-sharing. In this paper, we argue that both of these aspects are to be considered together for successful software development under the DSD umbrella. The literature presents many studies to handle these challenges but still, there is a need of improvement in a few areas, such as knowledge-sharing combined with task allocation, that is still lacking to some extent in this progressive market-driven and evolving technology-backed industry. One solution to tackle these issues is the adoption of blockchain technology.