Automatically Prioritizing and Assigning Tasks from Code Repositories in Puzzle Driven Development Yegor Bugayenko Huawei Russia yegor256@huawei.com Ayomide Bakare Arina Cheverda Mirko Farina Artem Kruglov Yaroslav Plaksin Giancarlo Succi * g.succi@innopolis.ru Innopolis University Russia Witold Pedrycz University of Alberta Canada wpedrycz@ualberta.ca ABSTRACT Automatically prioritizing software development tasks extracted from codes could provide signifcant technical and organizational advantages. Tools exist for the automatic extraction of tasks, but they still lack the ability to capture their mutual dependencies; hence, the capability to prioritize them. Solving this important puzzle is the goal of the presented industrial challenge. CCS CONCEPTS Software and its engineering Error handling and recov- ery; Software confguration management and version control systems; Social and professional topics Quality assurance. KEYWORDS task prioritization, text tagging, software development ACM Reference Format: Yegor Bugayenko, Ayomide Bakare, Arina Cheverda, Mirko Farina, Artem Kruglov, Yaroslav Plaksin, Giancarlo Succi, and Witold Pedrycz. 2022. Auto- matically Prioritizing and Assigning Tasks from Code Repositories in Puzzle Driven Development. In 19th International Conference on Mining Software Repositories (MSR ’22), May 23–24, 2022, Pittsburgh, PA, USA. ACM, New York, NY, USA, 2 pages. https://doi.org/10.1145/3524842.3528512 1 MOTIVATION This research focuses on how to automatically assign to develop- ers the tasks that may be extracted from the source code, where they are embedded as todo or fixme markups. This stems from “Puzzle Driven Development” patent, which idea is that most soft- ware algorithms and constructs can be decomposed into smaller elements [1]. Such elements may not necessarily be implemented * corresponding author. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for proft or commercial advantage and that copies bear this notice and the full citation on the frst page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specifc permission and/or a fee. Request permissions from permissions@acm.org. MSR ’22, May 23–24, 2022, Pittsburgh, PA, USA © 2022 Association for Computing Machinery. ACM ISBN 978-1-4503-9303-4/22/05. . . $15.00 https://doi.org/10.1145/3524842.3528512 all at once to make the system work but some of them may be left there in form of stubs, thus being “puzzles” for future iterations. 2 THE PROBLEM There is a rich literature in software engineering describing this process, especially with reference to quality and maintenance [5]. Attempts have also been made to automate or streamline puzzles allocation. For example, Zerocracy 1 created a bot extracting todo from source code and turning them into GitHub tickets; however, neither Zerocracy, nor its current competitors 2 have succeeded in automatic prioritization of puzzle-based tasks. Therefore, the problem of automatic puzzles allocation remains particularly thorny, especially for very large IT companies (such as Huawei). Solving it would constitute a signifcant advance in the feld, because it would: (a) reduce the size of a backlog, thus making projects more manageable [4] (b) allow people identify high priority tasks faster, (c) promote a feeling of fairness and freedom at work, and (d) guarantee that everyone is focused on achieving the key goals of the organization. Recent research in cognitive anthropology and psychology [3] as well as anecdotal evidence from agile approaches [2] evidenced that the allocation of tasks among knowledge workers is more ef- fective if driven—whenever possible—by the developers themselves. 3 OUR SOLUTION Taking this important consideration as our starting point and ex- panding on previous work conducted by Zerocracy we attempted to automate tasks prioritization and allocation from code repositories by using Machine Learning techniques. In our current approach 3 , we represented a puzzle as a vector of numeric properties uniquely available in PDD context and not available for regular GitHub is- sues, such as the depth of the puzzle in a hierarchy, the number of previously closed siblings in the tree, and so on. We predicted the priority of a puzzle by maximizing the distance between the 1 A Project Manager That Never Sleeps (2018) by Yegor Bugayenko; https://www. yegor256.com/2018/03/21/zerocracy-announcement.html; accessed on 11/09/2021 2 See todo and check-todo products at GitHub Marketplace at https://github.com/ marketplace; accessed on 14/02/2022 3 To this end, our entire code-base is available at: https://github.com/InnoPDDTeam/ pdd-data-analysis 722 2022 IEEE/ACM 19th International Conference on Mining Software Repositories (MSR) Authorized licensed use limited to: Universita degli Studi di Bologna. Downloaded on June 30,2022 at 06:51:22 UTC from IEEE Xplore. Restrictions apply.