新经济导刊|王怀民院士:软件开发将从开源范式转向群智范式
在“软件定义一切”的时代,软件成为新型基础设施。过去我们在计算机上开发和运行软件,后来发展到互联网时代,通过网络开发软件,通过网络运行和提供软件服务。而到了今天,当数字产业化、产业数字化渗透到更多领域时,“软件定义一切”。
《新经济导刊》第4期刊发中国科学院院士、分布计算领域专家王怀民的文章《软件开发范式变革:群智范式的到来》。文章结合软件开发的长期实践,梳理了软件开发从过去到现在的范式变革,即“自上而下,逐步求精”工程范式,“自下而上,关联涌现”开源范式,到今天转变为“宏观演化,微观求精”的群智范式。面对越来越复杂的软件需求,在更加不确定的人机物三元融合、万物智联时代,本文详细阐释了群智范式的理念和方法,以期为未来软件开发提供新思路。
|群智范式的理念
群智范式是集开源范式和工程范式的优点,在一个不确定性的世界,根据每一个核心团队对世界的认知选择推进工作的基本方法。群智范式开发的软件,其用户是潜在的,软件则通过原型版本的快速迭代来吸引开发者和用户。因此,理解群智范式中的软件质量问题,要看核心团队围绕开源软件构建的社区,看开发效率,还要看如何吸引更多的参与者进入社区并作出贡献。群智激发和汇聚的手段,如汇聚同样感兴趣的群体的感知,支持长效性的工作,支持保证质量和效率的开发流程机制,就是在工具上给予更好的支持。
|群智范式软件开发方法
群智范式软件开发方法可以简单概括为“两个联接,一个转化”,即联接核心团队与外围群体,联接自由创作与规范生产,实现原型作品与原型版本之间的转化。今天我们可以从开源范式中借鉴的方法是,通过里程碑这个需求表述的集合明确需求。在此基础上,鼓励协同开发和快速迭代,尽快把原型版本释放出去,让更多外围群体参与到软件开发创作中来,贡献个体或群体的新需求、新代码。例如,在GitHub协同创作中,参与者可以自由地根据其需求修改某一软件原型版本后再提交回来,核心开发团队进行评估后,再将其集成合并到原型版本中。在这个过程中,核心开发团队可以按工程化方法或敏捷开发方法控制产品开发进程,同时开放出来的代码也允许外围开发者在此基础上自由创作,再提交反馈。如果提交的反馈版本不被核心开发团队接受,那么外围开发提交者还可以自由地让这个产品分叉,并按照其自主意愿开发新的分支版本,这是被允许的。
(整理/徐静)