作者:Matthias Patzak,2024年1月30日发布于 最佳实践, 思想领袖
在快速发展的软件开发领域,提供积极的开发者体验对组织成功至关重要。然而,某些不良实践会阻碍这一体验,影响生产力和创新。IT领导者应采取切实可行的策略,解决这些问题,以确保建立一个充满活力的高效开发生态系统,吸引并留住人才。
手动管理开发、测试和生产环境及其不同、不一致和未文档化的配置会导致极大的挫败感。 在公共云环境时代,基础设施即代码IaC是解决这一问题的有效而可持续的解决方案。IaC将基础设施视为软件,允许开发者通过代码定义和管理其基础设施。使用Terraform或AWS CloudFormation等工具,营造出一种基础设施变更受版本控制、经过测试并无缝集成到开发流程中的文化。这种方法确保了基础设施的可靠性和一致性,降低了错误发生的几率,提高了系统的整体稳定性。
要求开发人员向其他IT运营团队请求开发和测试环境,并承诺30天内完成,不仅效率低下,还会导致不必要的延误,降低开发者的责任感。自动化自助式基础设施使团队能够快速启动和运行环境,促进了责任感和效率的文化。自助式基础设施帮助开发人员轻松创建和管理其开发和测试环境。容器化技术封装了应用程序及其依赖项,促进不同环境间的一致性。该自助式基础设施应完全自动化,类似于生产环境,采用IaC。
锁定的开发环境导致频繁的密码重置请求,是一种常见的挫败感。组织应实施高效的访问协议,以减少中断并最大化开发者的生产力。实施单点登录解决方案,简化对开发环境的访问,同时不妨碍安全性。使用安全的密码管理工具来简化与密码相关的流程。建立自助密码重置机制,减少对IT支持的日常访问问题的依赖。优先考虑便捷的访问协议,以适应开发任务的快速节奏。
由于安全原因禁止开发人员在本地机器上安装软件是妨碍开发者体验的主要障碍。任何更改都必须通过票据从IT支持部申请,这可能需要数周时间。这种官僚程序瓶颈减慢了开发速度。组织应赋予软件开发团队自主权,以在总的治理框架内定义自己的工具选择和安装流程。
拥抱自主文化意味着不仅要给予权限,还要鼓励实验。为开发者提供沙盒或虚拟环境,以自由测试新工具,而不必担心影响生产系统。通过支持黑客马拉松或培训课程等举措来推动持续学习的心态,拓展开发者的工具库。
功能不齐全、界面缓慢、的第三方工具会妨碍开发者的生产力。优先考虑强大的基础设施,以确保开发者拥有所需的资源。良好的工具链对于提升开发者体验具有重要意义。定期评估第三方工具,以确保其满足开发团队不断变化的需求。实施反馈机制,让开发者能够表达他们对所使用工具的看法和偏好。
在选择第三方解决方案时,考虑可扩展性和集成能力,以确保无缝的开发环境。
对小额支出的广泛审批流程创建了不必要的官僚机构。简化采购流程,赋予开发人员在不需繁琐手续的情况下进行必要购买的权力。实施透明和标准化的采购流程,设定预定义的支出阈值。为开发人员提供预先批准工具和服务的目录,从而消除日常采购中单独审批的需要。与供应商建立合作关系,协商有利的条款,确保采购流程高效且成本有效。
等待数月才能获得IT安全审批,往往抑制了热情,阻碍了进展。虽然安全性是绝对必要的,但这些审计必须及时进行。IT经理需要赋予安全团队足够的能力,并在审计过程中尽量自动化和减少官僚程序。简化审批流程确保开发者及时获得所需工具,而不危及组织的安全态势。
建立安全和开发团队之间的协作关系。为开发者提供持续的安全培训,有助于将安全最佳实践嵌入他们的工作流程中。设立安全要求的清晰指引,并确保其符合行业标准。定期审查和更新安全政策,以反映不断变化的威胁环境。
强制性的静态代码审查和严格的测试覆盖要求可能会压制创造力。虽然质量控制至关重要,但僵化的标准会妨碍进展。IT领导者应采用灵活的方法,强调合作与持续改进,而不是强加阻碍开发速度的规则。鼓励以协作为主导的代码审查文化,优先考虑建设性的反馈,而非严格遵循预定义的指标。实施分层测试策略,专注于关键组件,同时为较不重要的部分提供灵活性。为开发者提供自动化测试和代码分析所需的工具,强调质量保证的好处,而不限制敏捷性。
当软件开发团队同时处理太多主题且优先级频繁变动时,会在分支中创建多个代码版本。它们的合并和拉取请求可能漫长、耗时且容易出错。鼓励采用基于主干的开发方法,开发者持续将代码集成到共享库中。实践配对编程和跨职能的代码审查,这使代码质量得到共同拥有并加快更改的整合。利用协作工具促进实时讨论,让开发者在代码审查期间快速解决问题,共同提升代码质量。

组织有时会忘记,功能性软件是进展的主要衡量标准,过于依赖项目管理软件供应商的生产力承诺。不要对某一工具情有独钟,然后无所不用。与其让开发者淹没在文书工作中,不如专注于那些能够促进项目成功而不会让团队感到压垮的有效工具。鼓励探索符合团队工作流程偏好的替代项目管理工具。实施简化项目相关信息收集的流程,以最小化行政负担。营造一种环境,让项目管理工具成为协作的促进者,而不是障碍,让开发者能够专注于核心任务。
在延误期间,招聘额外员工和强制加班似乎是快速解决方案。然而,重点应放在有效的解决方案上,并与团队合作调整交付计划,以避免倦怠并确保持续的生产力。定期进行工作负载评估,以识别潜在瓶颈,并主动分配资源。营造一种文化,让开发者感到舒适,并能对工作负载、日程安排和认知负担表达担忧。实施灵活的工作安排,例如远程工作选项或压缩工作周,以支持健康的工作与生活平衡。
选择开发者无法控制或不理解的指标创造了不必要的混淆。管理者应选择与组织目标一致、赋予开发者权力的指标,并对产品开发产生积极影响。与开发团队共同确定真实而有意义的指标,反映个人和集体贡献。实施与项目目标对齐的关键绩效指标,提供可操作的洞察。定期根据开发人员反馈审查和优化指标,确保它们作为持续改进的有价值工具。
IT领导者在塑造开发者体验和生产力方面扮演着至关重要的角色。随着组织走向快速变化的软件开发环境,整合这些实践不仅是一种优势,也是建立积极和高效的开发者体验的战略必要性。
通过避免常见陷阱并优先采取有效策略,组织可以创建一个促进创新、提高生产力并确保软件开发团队成功的环境。
敏捷,敏捷性,最佳实践,商业价值,文化变革,企业,IT运营
免费国际加速器永久免费版Matthias在2023年初加入了企业战略团队,此前曾担任AWS解决方案架构的首席顾问。在这个角色中,Matthias与高管团队合作,探讨云计算如何帮助提高创新速度、IT效率,以及其技术在人员、流程和技术角度产生的商业价值。在加入AWS之前,Matthias曾担任AutoScout24的IT副总裁和Home Shopping Europe的董事总经理。在这两家公司中,他都实施了规模化的精益敏捷运营模式,并成功领导云转型,从而实现了更短的交付时间、提高的商业价值和更高的公司估值。