如何提升软件开发速度
(中国计算机世界出版服务公司出品)
在解决方案交付速度方面,IT领导者在这次疫情出现之后正承受着越来越大的压力。许多首席信息官发现自己的迭代速度已无法满足不断增长的业务需求。
作为游戏行业中的初创公司,Polystream主要通过3D互动流媒体平台与其他游戏公司展开激烈竞争。为了获得竞争优势,Polystream需要快速交付新的功能。
该公司的工程副总裁Cheryl Razzell和人才主管Simon Sparks认为,新功能的交付速度也是一项竞争优势。Sparks称:“为了获得竞争优势,我们必须充分利用包括速度在内的一切优势。”
要想获得速度优势,企业必须要采取相应的措施,并展开相应的工作。否则,开发人员可能会陷入官僚主义的泥潭,或是被大量无关紧要的想法和无休止的请求干扰。想法和请求会增加编码的时间,并导致版本和新产品的发布出现延迟。为了更快地满足用户需求,这些首席信息官们承受的压力也变得越来越大。
麦肯锡公司的高级合伙人Aamer Baig称:“对于首席信息官来说,这就像一场完美的风暴。我们已经进入了疫情的首个阶段。在这个阶段,首席信息官是实现远程办公和确保与客户建立稳定联系的明星。管理团队现在也在跟进。他们正在思考在2021年和2022年如何跟上时代的发展步伐,如何弥补之前被浪费掉的时间,以及如何加快业务的发展。如果首席信息官认为以前压力很大,那么现在他们面临的压力只会更大。”
在重压之下,首席信息官和他们的IT团队发现自己的快速迭代速度可能无法满足速度不断增长的业务需求。据项目管理协会(Project Management Institute)的调查显示,86%的IT决策者认为软件开发人员数量过少是数字化转型过程中的最大挑战。
Baig认为,IT领导者可以在不折腾IT团队的情况下,通过部署新的流程和技术来加快开发进度。为此,Baig提出了5个可以在不影响团队士气的情况下加快应用程序开发进度的建议。
将应用程序的开发工作与业务紧密整合在一起
麦肯锡的研究显示,在实施了应用程序开发与业务整合策略的企业当中,47%的公司的收入增长了10%以上,这表明综合程度较高的数字战略可提供更大的价值。
Baig指出,许多技术企业都将技术团队嵌入到了业务流程当中,并创建了联合交付流程,从而便企业能够快速地交付代码。
云解决方案提供商Ahead的首席技术官Joshua Perkins也提出了类似的观点。他认为,团队必须与项目专家进行良好的协作,同时提高自身技能,以确保能够快速交付高质量的代码。
Perkins称:“如果我们想更快地交付应用程序,那么企业就必须调整资源,吸引并留住人才。我们希望创建一个功能全面的团队,以使软件能够正常运行并具有影响力。只有打破传统,让更多的人员参与到流程当中,让他们更好地为业务目标提供信息,这些具备开拓创新精神的首席信息官才能取得成功。”
Perkins举了一家保险公司的例子。他说,这家公司成立了一个包含有熟悉承保和索赔流程的开发人员、数据科学家和业务经理的软件开发小组。公司自一开始就加快了编码进度,从而减少了开发出最终理想产品所需的工作强度和迭代次数。
充分利用工具
尽管许多开发人员在使用大量工具来帮助他们更快地完成工作,但是在整个开发团队中,工具的使用率并不高,自动化等新技术的普及率也不高。
GitLab的2020年DevOps前景调查显示,只有38%的受访者表示他们的devops部署中包含了持续集成/持续交付(CI/CD),只有 29%的受访者表示他们的devops部署中包含了测试自动化。这表明目前这部分仍然有很大的改进和提升空间。
此外,受访者认为扩大对技术的部署可以加快工作进度。因为47%的受访者认为目前最大的瓶颈是测试,但是只有12%的受访者表示已全面实现了测试自动化。
线上旅行社Priceline的首席技术官 Martin Brodbeck表示,为了加快公司内部的应用程序开发速度,公司已经部署了Harness等大量工具,并正在推进部署更多技术来支持公司的开发团队。
Brodbeck说:“我们的目标是让在公司环境中部署代码的工作实现全自动化。从部署的角度看,这一举措可以显著提升部署速度。如果我们能够更快地推出更多功能,如果这些功能可以发挥作用并且受到广泛的欢迎,那么我们可以迅速对其进行扩展。如果存在问题,那么我们可以迅速取消部署。”
Brodbeck称,他自己没空时刻盯着部署的进展情况,因此他也没有办法量化某一具体工具究竟是如何帮助提高开发速度的。不过,Brodbeck说:“我们知道我们的速度会更快。”
实现技术、流程和语言的标准化
尽管部署自动化技术、开发工具以及敏捷开发和devops等流程和方法对于提高应用程序开发速度至关重要,但是专家提醒,使用的方法不要太多太杂。因为从长远来看,方法太多太杂可能会适得其反,导致应用程序的开发速度放慢。
Baig说:“如果你能够与工程师就他们的喜好展开讨论,那么这对于协调使用哪种开发工具和流程会有很大的帮助。”
虽然让不同的开发团队实现标准化会耗费大量的时间和精力,但是这可让开发团队更快地工作,因为如果这些团队都使用相同的工具、流程和语言,那么就可以实现应用程序在项目和部门之间快速且轻松的迁移。当员工在公司内部不同部门调岗时,标准化也可以让员工更快地学习和掌握新工具和流程,从而为公司带来极大的灵活性。
明确关注重点
Polystream的Sparks指出,“作为一个小型团队,我们只能专注于最重要的部分,即那些与众不同的地方和特殊的地方。因此明确关注重点是非常重要的。”
例如,Polystream的开发人员最近的任务是开发一种可以让用户通过链接加入游戏,而不是下载整个游戏的产品。Polystream将这项功能视为让公司在竞争激烈的游戏行业中保持竞争力战略中的一个重要部分。
结果是开发团队的工作进展很快,仅用了两周就交付了产品。对此,Razzell指出,之所以进展迅速,原因在于团队的工作重点清晰明确。她说:“对于自己要构建的内容,有时候我们很容易迷失方向。在开发新产品和追求创新时,我们很难让目标保持清晰明确,这导致我们很容易陷入困境。”Razzell总结经验认为,某些对于核心目标来说并不重要的工作会分散开发人员的注意力。
使用低码/无码平台
一些专家认为,要想提高应用程序的开发速度,选择低代码/无代码平台至关重要。他们指出,低代码/无代码平台技术主要在3个方面提高了速度。首先,IT部门的开发人员可以使用它们更为便捷地创建代码。其次,业务用户本身可以使用该平台快速交付满足需求的应用程序,从而消除了他们与IT部门进行协作的时间。第三,用户可以自己完成一些初级的开发工作,这使得IT部门可以将资源集中在更复杂且价值更高的应用程序的开发工作上,从而提高开发速度。
项目管理协会总裁兼首席执行官Sunil Prashara说:“由于工作流的所有者了解他们自己想要设计的内容,因此他们可以使用低代码/无代码平台进行实时构建。当他们在设计新的工作流时,应用程序可以在后台被实时设计。”
项目管理协会的研究发现,在一家电信公司中,两名使用无代码平台的开发人员开发应用程序所需的时间比由六名Java开发人员组成的团队节约了67%。另一家电信公司也有过类似的成功案例。当时,两名使用无代码平台的开发人员交付应用程序的时间比由6个.NET开发人员组成的团队少了72%。在第三个成功案例中,两名使用无代码平台的开发人员和一名顾问的工作速度比传统开发环境中的两名顾问和四名开发人员的工作快了62%。
这些案例已经引起了首席信息官们的关注,为此首席信息官们增加了对低代码/无代码平台的投资。毕马威(KPMG)在《2020年全球新兴技术调查报告》中指出,近几个月来,首席信息官们增加了对这些平台的投资,有26%的受访者表示他们正在考虑在第二财季中将该技术列为自动化投资中的重中之重,这一比率较第一财季的10%有了较大幅度的提升。