软件的性质永远不会真正改变。正如Capitol Canary公司首席技术官Mikhail Opletayev所说,“软件就是一套告诉计算机该做什么的指令。”
在另一方面,软件开发(开发人员编写和传递这些指令)将会定期变化。随着时间的推移,某些原则或多或少保持不变,但软件如何开发和制作的许多方面都在不断发展,例如语言和库、方法、工具、打包、测试等。
因此,构建和操作软件意味着什么,以及构建和领导软件开发团队意味着什么的现实也发生了变化。以下介绍了成功的IT领导者所理解的现代软件开发的5个现实。
1、开发者的体验就是一切
“开发者的体验就是一切”这个说法有点夸张,但可能比在IT场景中逐字解释还要糟糕。
Shipa.io公司首席技术官Ravi Lachhman说,“如今的首席信息官需要了解这样一个事实,即他们有能力塑造开发人员体验,而这样做可能是吸引和留住开发人才的最关键因素。”
体验不佳的开发人员通常也不会发布出色的软件,虽然这么说有些简单化,但糟糕(或平庸)的开发人员体验带来的问题会更糟糕。
人才方面的竞争是真实存在的,努力填补软件开发职位并不意味着企业管理者的能力不足。但如果在招聘或留住人才时遇到困难,而忽视了开发人员的体验,那就另当别论了。
Lachhman说:“软件开发人员寻求新的挑战以提高他们的技能,扩展他们的领域和技术专长,从而保持相关性,获得更大的职业和经济回报。如果开发商并未能提供这样的机会,软件开发人员可能很容易地离职去另一家公司就职。”
Lachhman分享了一些关于如何优先考虑和优化开发人员体验的示例:
- 实现职责轮换:首席信息官应允许软件开发工程师在数字化转型项目中定期轮换不同的目标或工作流。
- 减少摩擦:首席信息官应设法减少从开发人员的初始想法到生产成品的过程中的障碍。
- 授权开发人员查看结果并在其基础上构建:授权开发人员快速查看和迭代他们的成就也是至关重要的。
- 关注并缓解倦怠:和任何人一样,开发人员的认知负荷有限,很少有人喜欢不断地切换场景。
开发人员体验不仅仅是招聘和保留:它是优秀软件的基石。它现在也是数字化转型成功(或失败)的指标——优先考虑员工体验和减轻倦怠是最近发布的《哈佛商业分析服务报告》保持数字化转型势头的主要建议之一。
Lachhman表示,在这方面,开发人员的寿命通常是一个积极的指标。
Lachhman说,“鉴于随着时间的推移积累了宝贵的知识,软件开发人员的丰富经验是企业实施数字化转型之旅的一项重要优势,而留住软件开发人员意味着让他们保持参与和积极性。开发人员有了积极的体验,就会取得更大的成功,并且在数字化转型过程获得更多的动力。”
2、自动化无处不在
如果说开发人员的经验是软件团队获得成功的核心,那么自动化将为技术成功提供帮助。当今软件开发的速度和频率可能导致即使是优秀软件开发人员也疲于奔命;而自动化是在不破坏团队或系统的情况为开发人员提供帮助。
IT自动化并不是什么新鲜事,但它比以往任何时候都更强大,而且几乎无处不在,从测试和安全到部署和扩展。持续集成(CI)/持续交付(CD)管道体现了这一现实,企业对Kubernetes的大量采用也是如此。
自动化为IT领导者带来了一些担忧,包括随之而来的工作安全方面的恐惧因素。企业的领导者认识到自动化是一种强大的工具,它使软件团队能够用相同的(或更少的)资源做更多的事情,而不是仅仅让团队背负不可持续的压力和工作量。
3、权力下放日益成为常态
软件开发也是IT去中心化趋势的一个纽带:以容器化、微服务架构、开源、混合云和多云为例。
所有这些都反映了当今如何以日益分散的异构方式构建和运行软件的新方法和模式。所有这些都反映了成本、性能、治理、安全等方面的新机遇和新的复杂性。
2022年初,凯捷美洲公司定制软件开发GTM负责人和云计算卓越中心(CoE)负责人副总裁Kaushik De表示,容器化和混合云等模式反映了IT在满足客户、董事会、合作伙伴、投资者和其他利益相关者对数字化转型和创新的巨大需求方面发挥着不可或缺的作用。
混合云和边缘计算之间的关系加深以及边缘应用程序的开发,是这一广泛趋势的新兴例子之一。
但去中心化并不意味着放手。与其相反,随着分布式软件开发和基础设施成为常态,IT领导者需要寻找能够实现控制和灵活性的平台和流程。
De说,“企业领导者应该期望看到一个平台可以控制人们可以提供哪些环境和服务。”
4、安全性至关重要
这应该是显而易见的,但IT专业人员知道现实:长期以来,安全一直被视为软件开发生命周期中的事后考虑,无论是有意、无知还是其他根本原因:这是其他人需要担心的。
这种情况正在改变,很可能永远不会改变。在许多企业中,强大的安全性现在是董事会级别的问题。而威胁太多,没有采取足够的措施来预防和缓解这些威胁的代价太大了,因此不容忽视。,美国银行首席执行官Brian Moynihan在2021年表示,该公司目前每年在网络安全方面的支出超过10亿美元。
虽然这是一个特别大的安全预算,但它是更广泛趋势的一部分:在Red Hat公司的2021年全球技术展望中,安全被列为首要的总体资金优先事项,45%的受访IT领导者将其列为他们的首要优先事项。
正如Red Hat公司技术布道者Gordon Haff当时指出的那样,至少有一部分资金被用于在极其复杂的威胁环境中维持生存。但它也反映了对在整个软件开发管道中嵌入(并尽可能自动化)安全性的更大关注,特别是考虑到去中心化趋势和对外部容器注册表、库和其他软件组件的严重依赖。
Haff写道,“提高对软件供应链安全等问题的认识,了解与库等依赖项相关的来源和漏洞,这是朝着缓解这些问题迈出的重要一步。”
5、软件就是业务
最后一点是,软件开发作为后台IT功能中一个模糊的技术孤岛的时代应该被正式宣告终结。
这一现实可能尚未在每个企业中深入人心,但这并没有让它变得不那么真实。软件开发与顶层和底层有着千丝万缕的联系。没有软件开发,就没有数字化转型。选择商业世界中任何一个主要流行术语(“数字化转型”),软件几乎不可避免地会发挥作用。
这个现实还有另一个层面:它不是魔法。IT和业务领导者需要专注于并有意识地了解他们开发软件的方式、原因、时间和地点,以使IT产生卓越的影响,如创新承诺。
Haff说,“现代软件开发应该为企业的业务做一些与众不同的事情,例如改善客户体验和增加收入,或者可能应该问为什么这样做。”