【开源社群建言:中华民国软体自由协会理事长杨宇凡】不只是用程式码,政府拥抱开源还能做的2件事

国际上常见的政府开源专案做法,包括成立开源专案办公室(OSPO)和开源专案程式码两种,来实现内控和外稽。台湾的政府单位虽未有明确的OSPO编制,但有一个政府开源平台,也就是数发部建置的公共程式平台。开源社群认为,卫福部次世代数位医疗平台计划未来若开源,可考虑发布于公共程式平台。

企业拥抱开源稀松平常,但政府要藉开源之力实践国家级IT计划,就是一件大事。

卫福部资讯处主导的次世代数位医疗平台计划就是一例,他们锁定全台医院,要全面导入国际医疗资料交换标准HL7 FHIR、临床品质语言HL7 CQL等国际标准,并透过制定符合台湾医疗情境的FHIR本地化规范(TW Core IG)、发布以CQL编写的健保申报规则库来实现。

这项计划还提出3大差异化策略,针对医学中心要开发一套一条龙工具,来协助转换FHIR、临床医学术语标准SNOMED CT、实验室检验检查编码LOINC和药品编码RxNorm等国际标准,对区域/地区医院则要打造一套数位底盘(PAUL),来升级医院IT系统,对卫生所则要客制化开源电子病历系统OpenEMR,将其在地化为适合台湾医疗流程的公版黑熊医疗资讯系统(HIS)。

不论是FHIR、CQL还是OpenEMR,都得借助开源专案来执行,也仰赖公私协作。但最近,这个过程出现了争议,承接卫福部该计划的工研院,其生医所工程师在计划官网上公开的健保申报CQL规则原始码,是以美国政府AHRQ开源专案程式码来修改、开发,连同README说明档都支字未提授权声明,遭开源社群工程师质疑。而后,该工研院工程师还在TW Core IG中新增一段补充条款,明确禁止该社群工程师及其公司使用或散布TW Core IG,引发各界热议。(相关报导详见:工研院出面道歉!承包卫福部次世代数位医疗平台计划,引发2大开源授权争议

随后,工研院与卫福部相继发声明、承诺补正授权内容并解除特定个人封锁,卫福部也在第一时间通知美国AHRQ,还将成立由外部专家组成的事件调查委员会来厘清问题、进行后续惩处,但仍衍生出政府拥抱开源的管理问题。对此,iThome专访中华民国软体自由协会理事长杨宇凡,来谈谈开源社群角度的观察与建议。

认同政府拥抱开源,但也需尊重前人贡献

中华民国软体自由协会(简称软自协)成立24年多,长年推动自由软体、软体自由,也就是提倡使用开源软体,且人人都有选择软体的自由。

他们承办过教育部校园自由软体数位资源推广服务中心(OSSACC),将自由软体及开源数位教材带进校园,也于2015年联手国发会,推动开放文件格式ODF,作为政府文件标准格式之一。

2017年,当欧洲自由软体基金会发起「公共出资,公共程式」(Public Money, Public Code)倡议,提倡政府开发的公共程式要自由开源授权、允许重复利用、避免厂商垄断,且民众参与协作时,软自协立即响应,是第一个连署的非欧洲组织,并在台推动PMPC。到了2017、18年,他们也将FHIR这项公开标准纳入推广范围,来协助民间和政府采用。

因此,对于卫福部次世代数位医疗计划大规模拥抱开源和开放标准,「协会是高度肯定的。」杨宇凡指出,政府力拥国际标准,台湾的人才和技术,才有办法与世界接轨、输出到国际。只不过,协会提醒,使用开源专案或标准,也得尊重其开源精神,尤其是开源社群前人的贡献。

举例来说,政府可以表明授权声明,来表彰原作者,或建立回流贡献机制来改善原始专案,比如修复Bug、新增功能等。又或是更进一步,投入维运资源来协助原始专案优化、永续经营,「协会期待政府不只是使用开源,也可以将对开源的态度,提升到更高层次。」他说。

争议事件凸显的3个不足

进一步细看这次争议,杨宇凡除了再次肯定政策方向,也点出政府拥抱开源的3个不足。

首先是对开源软体管理的不足。以符合PMPC的欧美国家为例,其政府在委外打造公共出资软体时,会要求委外单位先盘点现有软体、衡量是否已有类似的开源专案,好来客制化开发、延续开源精神,若无,则另外开发;而后的开源软体采购、合规审查、回馈等一系列流程,也会纳入标案合约中。就这次卫福部计划来说,目前仍停留在「使用开源软体」,而「没有充分的系统性盘点、合规审查与后续回馈等完整的开源软体管理流程。」

另一个不足是缺乏统筹单位,来进行开源软体的授权、审查、管控与协调。尤其,公部门与执行单位的法务、资讯开发和采购等各职类缺乏有效沟通、各自为政,甚至在风险产生时,未能及时察觉,引发公共信任危机。

第三个不足是缺乏统一咨询的管道。杨宇凡表示,此事件显示该工研院工程师,缺乏使用开源软体的正确知识和训练,比如不知何时需要标示授权、正确引用开源专案,事发时也没有统一的咨询管道,提供该工程师、卫福部或承包单位相关资讯。

建议1:成立开源专案办公室

也因此,软自协依PMPC原则,提出内控和外稽2大建议。就内控来说,卫福部可参考国外做法,成立开源专案办公室(OSPO),来提供合规性验证、单一咨询窗口和跨单位协调,甚至是教育训练与社群互动。

杨宇凡解释,因现行标案验收只验功能、不验授权(License)等内容,而OSPO可以早期介入开源专案的合规性验证,避免事后补破网。再来,OSPO也能作为政府单位和承商的单一咨询管道,提供具体建议,比如工程师开发遇到问题,可求助OSPO。此外,OSPO能跨政府局处和承商,来互相协调,让政府在监督标案的过程中更加顺利,而非作为严厉批判的监督者。

甚至,OSPO也能作为与社群双向对话的窗口,比如政府提出专案想与民间合作,OSPO可担任沟通窗口,民间也能透过OSPO来反应专案问题,如程式错误等。OSPO还能提供教育训练,来强化机关内部与承商的开源意识,或进一步将开源受训纳入标案资格或履约条件,就像是将常见的基本法规讲习概念,延伸到开源标案中,来审核厂商开源能力。

OSPO不是新概念,以欧盟为例,早在2020年就已成立跨局处的OSPO专责小组,至今还整合了600多套工具。杨宇凡认为,OSPO能成为政府行政自我约束的实践,以昭公信,对未来推动公私协力开源专案,非常有说服力。未来,不同的OSPO之间,还能共享资源,分享各自的专案程式、准则、政策等,实现资源再利用。

建议2:开源专案与程式码

就外稽而言,软自协建议,政府机关开发的软体、平台,若能开源、受公众监督,「从根本上开放民主参与,就能让政府的平台变得更好。」杨宇凡解释,此次争议是很好的契机,不论黑熊版HIS、TW Core IG还是一条龙工具,未来若开源供大众参与,社群、业者就能贡献其力来改善品质,让工具变得更好用,「会是一个很好的起点。」

更进一步,协会认为,政府可参照PMPC精神,接轨欧美国家公部门开源专案做法,将开源要求写进标案规格中。以义大利数位局(AGID)为例,他们负责推动政府数位转型与创新,早年就发布指引,规定政府专案及程式码必须开源,而且还提出重复使用索引(Reuse index),列出开源成果供各政府单位重复使用、不必重新造轮子,还能节省经费支出;就连负责数位基础建设的德国内政部(BMI)也提出类似政策,来要求政府专案开源。

至于何时该开源,「越早越好。」杨宇凡解释,从风控角度来看,最好在开发初期就能开源供公众检视,才能避免开发单位使用他人成品或半成品改装交差等情况。

「政府机关未必有能力马上识别问题或验收,甚至可能开发下去,才发现承包商开发能量不足而烂尾。」他表示,这些风险可透过早期开源、公共参与来避免,政府也能进一步以开源贡献经验,作为选择标案厂商的参考,或是要求厂商执行标案前,先进行开源PoC概念验证专案来检视。

跟上国际PMPC脚步

这2项内控与外稽建议,都以PMPC为核心。放眼国际,不少组织和国家都遵照PMPC原则,成立专责单位、设置公共程式平台来推动公部门开源专案,除了欧盟OSPO、义大利AGID、德国BMI,法国数位部DINUM也建置一套公共程式平台,来提供政府开源专案程式码,供公众检视。甚至美国还有负责推动政府开源政策的单位18F,提供指引来规范开源内容。

「欧美国家已用这样的高度看待开源,台湾在医疗上接轨国际的同时,是否也要跟进国际开源做法?」杨宇凡提问。

其实在台湾,数发部已根据PMPC精神,建置一套公共程式平台,目前也有不少中央和地方政府在平台上公开程式码,比如数发部网站防窜改侦测系统、环境部电子公文封装档附件名称解析、台南市登革热防疫现场数位工具前台、台南市灾害影响评估平台、台北市政府城市通架构与服务等。杨宇凡建议,未来,卫福部可将次世代数位医疗平台计划的开源专案程式码,上载到公共程式平台。

 更多相关报导