建立和维护一个高性能的软件开发团队是一项持续的努力。挑战范围从在竞争激烈的市场中吸引优秀人才,到提供有趣和具有挑战性的工作,再到建立团队结构和促进增长。我们很幸运能够在努力提高交付质量和频率的软件开发团队中工作,并且我们发现了一些非常常见的结构和实践,这些结构和实践会阻止团队快速推出高质量的软件:1:“DevOps”孤岛,尤其是随着团队的成长,或者可能是为了填补当前团队技能组合中存在的空白,我们很想在团队内部或团队周围建立个人职能来执行特定的工作角色。我们看到的最常见的表现形式是运营(通常称为DevOps或基础设施),在运营中任何与基础设施相关的任务都需要由单位内的某个人来执行。我们认为这会在软件交付的一个重要部分——部署和操作周围增加不必要的界限。我们宁愿看到真正的DevOps技能嵌入到软件交付团队中,使这些团队能够端到端地交付他们的应用程序并负责任地运行他们的应用程序。2:缺乏动力我们经常看到缺乏动力与表现不佳之间存在高度相关性。团队需要能够管理他们的日常工作量,做出技术决策,并在必要时改变他们的工作方式。一个团队在小单位中获得高调工作的地方,以及自上而下做出决定的地方,很可能会让你感到冷漠。我们发现,如果给团队一个清晰的、以业务为中心的愿景,并授权他们找出最佳的交付方式,那么团队的执行力就会达到最佳。3:隔离利益相关者在一些组织中,可能存在不鼓励或不允许交付团队与利益相关者接触的结构或做法。一个高绩效团队需要与这些软件发布的利益相关者进行定期和公开的沟通。除了可用于促进对话的常规论坛(例如启动会议和案例演示)外,我们还鼓励使用Slack等通信工具来促进利益相关者和开发人员之间的持续讨论。4:单打独斗和人浮于事的团队我们发现最好的团队规模是2到4人。对于大多数人来说,在单人团队中工作比与其他人一起工作更缺乏责任感和社交互动。当团队规模开始超过4人左右时,沟通变得困难,团队的责任感下降。5:质量是每个人的工作对质量挑战的一种非常普遍的反应是尝试通过引入专门的工作来解决问题,或者更糟糕的是,测试。在这些团队和生产中运行的软件之间存在安全网的地方,问责制水平下降,然后质量随之而来。通过鼓励将质量作为团队责任、采用同行评审等做法以及继续采用自动化测试技术,我们取得了更大的成功。6:优先考虑功能而不是技术债务在商业交付截止日期和跟上技术债务之间取得平衡。如果不平衡,技术债务会很快阻碍团队的交付能力。团队愿意积累技术债务,或者充其量对此视而不见,这是我们在开始与软件开发团队合作时可以立即识别并需要改进的一些行为模式。需要授权和鼓励团队向其产品负责人推销偿还技术债务的好处,以便技术债务可以与功能开发一起解决。7:对团队建设投资不足建立一个有凝聚力的团队时,牢记一些基本原则很重要。促进众多社交活动,为团队提供论坛,让他们在彼此工作之外享受公司氛围,同时为个人提供学习和更好地保持自身进步的机会。提高任何团队的幸福感、生产力和凝聚力仍然是一项持续的努力,需要定期修正方向。如果你想建立一个高绩效的软件交付团队,那么我们建议你努力招聘并投资于提供定期反馈循环的实践,以帮助你嵌入一种经常反省和持续改进的文化。翻译链接:http://www.codeceo.com/article/7-problems-to-avoid-build-team.html英文原文:7ProblemstoAvoidWhenBuildingaSoftwareTeam
