Self-assignment, where software developers choose their own tasks, is a common practice in agile teams. However, it is not known why developers select certain tasks. It is important for managers to be aware of these reasons to ensure sustainable self-assignment practices. We investigated developers' preferences while they are choosing tasks for themselves. We collected data from 42 participants working in 25 different software companies. We applied Grounded Theory procedures to study and analyse factors for self-assigning tasks, which we grouped into three categories: task-based, developer-based, and opinion-based. We found that developers have individual preferences and not all factors are important to every developer. Managers share some common and varying perspectives around the identified factors. Most managers want developers to give higher priority to certain factors. Developers often need to balance between task priority and their own individual preferences, and managers facilitate this through a variety of strategies. More risk-averse managers encourage expertise-based self-assignment to ensure tasks are completed quickly. Managers who are risk-balancing encourage developers to choose tasks that provide learning opportunities only when there is little risk of delays or reduced quality. Finally, growth-seeking managers regularly encourage team members to pick tasks outside their comfort zone to encourage growth opportunities. Our findings will help managers to understand what developers consider when self-assigning tasks and help them empower their teams to practice self-assignment in a sustainable manner.
翻译:软件开发者选择自己的任务,这是灵活团队的一种常见做法。然而,尚不清楚开发者为何选择某些任务。管理人员必须了解这些原因,以确保可持续的自派做法。管理人员必须了解这些原因,以确保可持续的自派做法。我们调查开发者在自己选择任务时的偏好。我们收集了在25个不同的软件公司工作的42名参与者的数据。我们运用了基础理论程序来研究和分析自派任务的因素,我们将这些任务分为三类:基于任务、基于开发者、基于见解。我们发现,开发者有个人偏好,而不是所有因素都对每个开发者都很重要。管理人员对所确定的因素有着一些共同和不同的观点。大多数管理人员希望开发者对某些因素给予更高的优先地位。开发者往往需要平衡任务的优先次序和他们自己的个人偏好,管理人员则需要通过多种战略促进这一点。更多的风险管理者鼓励基于专门知识的自派任务,以确保任务迅速完成。风险平衡型的管理人员鼓励开发者选择提供学习机会的任务,但只有在延误或质量降低的风险很小的时候才重要。最后,增长型管理者希望开发者对某些因素给予某些共同选择自我定位。在区域里培养自己的任务。在培养自己的能力。在培养他们时,他们的能力方面会定期鼓励团队如何理解自己选择自己选择自己的能力。