软件开发行业数字化管理灯下黑的原因及出路

《没有银弹》是布鲁克斯于1986年发表的论文,35年过去了,软件工程似乎依然是“没有银弹”,布鲁克斯当年更多是从软件开发的内在特性出发,通过逻辑分析,通过对各类技术创新实践的判断来说明软件工程的困难,很遗憾的是,他没有从组织管理的角度来更深入地探究行业效率的提升,有些只见树木不见森林的局限。

通常意义上的软件开发是一个组织行为,那一定就涉及到组织管理效率的高低。今天让我们从组织管理的普遍规律来对软件工程进行再认识,或许可以发现更多结构化的问题,以便找到问题的核心,找到提升软件开发效率的出路。

 

一、软件开发效率低源于行业数字化管理水平低

布鲁克斯当年提出的软件开发的内在特性,主要包括“复杂度、一致性、可变性和不可见性”,直到今天依然是准确的。但他没有继续深入分析这些内在特性是如何影响到组织管理,组织又应该如何通过哪些措施来规避这些影响。

从组织管理的角度来看,效率提升的本质是基于人类分工的基础上对规律、规则的流程化,和基于流程化基础上的自动化和信息化,以及基于大量数据积累的智能化,绝大多数行业都能比较容易实现流程化、自动化、信息化和智能化,进而通过数字化管理实现效率的巨大提升。

目前软件开发行业数字化管理水平的现状怎样?先来看看各类开发工具的情况,可以简单分为管理类工具和生产类工具,管理类工具主要包括项目管理工具和知识库管理工具,生产类工具主要包括自动化测试工具、版本管理工具、集成部署工具和自动化文档工具等。从开发管理类工具来看,没有实现对核心业务流程产生的数据进行有效处理,更多依赖人工填报的数据处理,精细化管理没有基于原始真实的流程数据基础,只能起到辅助性作用。从生产类工具来看,自动化效果差,过多依赖专业人员的专业能力,在实践中形同鸡肋,作用不显。

由于以上管理类工具使用效益不明显,不少开发团队还处于比较粗放的人工管理状态,部分团队还处在靠EXCEL管理的水平。另外,由于管理成本太高,加之敏捷开发等一些创新方法的催化,大多数开发团队甚至放弃了基于详细设计的精细化管理的努力,这些都违背了基本的管理学常识,自然问题多多。

可以毫不客气地说,软件是各行各业的效能之母,但软件行业本身的数字化管理却处于灯下黑的状态,管理效能提升的空间巨大。

 

二、软件开发核心业务数字化面临的管理性困难

实际上,任何行业只要完成了核心业务的数字化,就不可能存在软件开发行业普遍存在的“项目靠催、人员靠管、质量靠控”的人工管理状态,从业人员一定是围着信息系统转,大量的操作一定是处于自动化状态。为什么难以对软件开发的核心业务流程化、自动化和信息化?这是由于软件开发中存在诸多管理性困难,大体可以总结为以下三个方面:

第一、任务不能完全分解。由此导致需要大量协作沟通,需要协作沟通的人员数量影响着开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果。任务不能分解导致责任边界不清晰,考核难以落地,上升到组织层面,结果导致整个组织无法实现精细化的分工管理,组织的效率低下也就不难理解。

第二、流程数据不能得到有效处理。对于一行一行代码这样的流程数据,单维度、绝对化的数据处理对其绩效无法有效衡量,单一的代码行数这样的数据是没有管理价值的,这导致管理运营中缺乏可以有效利用的流程数据。

第三、系统性限制导致自动化生产困难。每个项目都有其自身的系统性,在这里称为系统性限制,使得自动化生产必须依赖专业化操作,比如自动化代码生成、自动化测试,都必须根据项目由专业人员处理,结果导致在软件开发的实践中自动化生产形同鸡肋。

产生以上三个方面管理性困难的原因,主要是来源于软件开发内在特性的“复杂度”和“一致性”,如果能很好地解决了“复杂度”和“一致性”,“可变性”和“不可见性”也自然不成为问题。

 

三、人工智能技术创新是消除管理性困难的希望所在

上面三个方面的管理性困难,实际上都是软件开发“复杂度”和“一致性”的叠加导致人脑难以驾驭,多因素、强关联和大量数据直接造成的结果是很容易超出人脑的记忆能力和逻辑思考能力,造成工作效率低下,在多人合作的情况下带给组织的不利影响加剧。一般性的信息系统多是面临的基于时间、空间的线性流程和基于可知性、有限关联因素的逻辑处理,从一行一行代码来看,软件开发工作几乎没有基于时间、空间的线性流程,更要面对众多不可知的、大量关联因素的逻辑处理,一般性的信息系统自然无能为力。

那就需要一种特别的信息系统,具备一种多维联动、动态自学习的信息处理能力,而不是简单的存储查找和线性流程化的信息处理能力。什么是多维联动、动态自学习的信息处理能力?简单说就是人工处理其中一个维度或者一个点的信息和事务,系统能动态自学习地自动化处理其它相关联的原来也需要人工处理的信息和事务,极大地降低对人脑处理“复杂度”、“一致性”的要求,这就需要人工智能在软件工程中的创新应用。

针对上面三个方面的管理性困难,人工智能技术的创新应用将能有效消除其不利影响。针对任务不能完全分解,合适的人工智能技术创新能根据开发规范的要求,有效地减少人脑需要关注的过多的关联因素,使得细分任务边界清晰,便于管理考核;针对流程数据不能得到有效处理,合适的人工智能技术创新能有效地判断一行一行的代码是否符合规范要求,基于这个判断的基础上,代码开发工作产生的流程数据就可以作为绩效管理的基础;针对系统性限制导致自动化生产困难,合适的人工智能技术创新能发挥自学习能力的优势,能够根据项目的系统性要求,快速抽取并建立规范,以支持各类自动化生产。

 

四、软件开发核心业务数字化的主要内容

从管理分工的常识出发,要提高生产效率,需要先把软件开发工作分成两大类工作,即必须由人来完成的和可以由系统自动完成的,努力的方向就是尽量多地由系统来自动完成,减少人工开发。鉴于软件开发的内在特性,势必有相当部分的工作需要由人来完成,再把这部分由人来完成的工作分成两类,即核心创造和具体实施,核心创造即为项目的设计工作,在软件开发环节大概就是系统设计师的工作岗位,信息系统要为负责核心创造的人员提供数字化辅助支撑;对负责具体实施的人员进行精细化管理,并将这类工作更多地转变为不需要人的自动化完成。

基于以上思考,软件开发核心业务数字化主要包括以下两方面内容:

自动化生产方面,主要有“文档自动化生成、代码自动化生成、自动化测试和自动化部署等,降低人工所占的比例,脱离专业依赖,实现真正的自动化、无人化;

精细化管理方面,主要有“详细设计数字化、任务可完全分解到小时级颗粒度和流程数据有效数字化”,支持对人工编写代码的精细化绩效管理。

 

五、令人惊喜的技术创新和实践

在众多为了提升软件开发效率而不断探索的团队中,猿开开就是其中一颗亮眼的新星。作为一个目前还不知名的技术创业团队,完成了一项重大技术创新,即面向过程的动态自学习自编程的模式驱动技术,通过这项人工智能技术的应用,开放式地实现了开发规范自动化的全程落地执行。可以说,猿开开第一次实现了软件开发核心业务数字化,实现了对软件开发的高效能数字化管理(以下数据来源于2020年猿开开项目实战数据的估算):

1.不改变开发人员的开发语言、开发环境和开发习惯,支持开放自由的高效能原生开发;

2.每一行代码的数据都得到有效利用,开发流程所产生的数据让精准绩效考核成为现实;

3.任务完全可分解到小时级,从人月到人小时的工时精细化预算管理,越清晰越精细越能挤水份,主开发阶段的工时可达10倍精减;

4.项目可持续性脱离对人员的被动依赖,一般性开发项目普通开发人员1小时接手,技术主管1天接手,技术负责人1周接手;

5.主开发工作完全可以通过高可控的云技术部来完成,常备员工数量可以大幅减少,降低企业运营成本;

6.开发质量和自动化水平显著提升。主开发人员只需要关注业务逻辑层的开发,其它70%的代码自动化生成,自动更新;开发文档100%自动化实时生成,与项目高度对应;自动化测试、自动化部署脱离对专业人员的依赖。

猿开开创造性地实现了通过详细设计驱动开发的全过程,将软件开发的核心价值聚集到详细设计阶段,核心技术人才越显重要价值,牛人干牛事,不陷入大量具体事务,而能牵一发动全身。由于规范严格落地、全程透明和任务分解边界清晰,技术大牛能快速切入对普通开发人员的支持。大量普通程序员则去从事可计量可考核的具体编码工作,越来越多的工作实现自动化,用信息系统来替代人。

 

今天从组织管理出发来看软件开发的数字化管理灯下黑,不是为了寻找布鲁克斯所说的银弹,而是要从数字化时代各个行业效率提升的普遍规律出发,来探究软件开发核心业务的数字化难题;让核心业务数字化、数字化管理成为提升行业效能的正确方向,而不是从某种单纯技术来思考破局之路。我们需要的是有了正确的方向之后,用技术创新来具体清除破局道路上的各种障碍,以使得软件开发效能得到显著提升。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值