作者结合自己的实际工作经验,分享了对“平台功能宏”的一些看法,希望能够给你带来一点帮助。
前一段时间在工作时,推动了“平台功能宏”的搭建和需求评估流程,实现了二者的落地,今天着重写一写“平台功能宏”,虽然是一个微小的点,但是运用得当的话,对于需求管控、研发成本都会有一个比较大的提高。
先来说说什么是宏?所谓的宏其实就是用于批量处理的一种规则,而功能宏就是批量处理某种需求或功能的规则,平台功能宏就是全平台开发公用的、用于批量处理跨平台(或项目)功能的规则(大多情况下为开关),涉及到的项目和平台较多,一般也会将开发好的”平台功能宏“分类存储和维护。
不同软件项目基于相同平台或(主分支);
不同的软件项目有针对同一个功能差异化的需求。
解释下2,项目A可能要带上某个功能,但是项目B不希望带上这个功能,还有其他项目也有这一差异化的需求,如果出现了这样的情况就可以使用”平台功能宏“了。
在开发一个共性的平台需求或者客户需求时,研发人员开发功能宏开关或者全平台修改代码,产品经理们收集记录宏开关和log记录,不断维护”平台功能宏“。
举个简单的例子,项目A、项目B、项目C都是基于android L平台的,在做项目时,发现A和B两个项目都想带上功能1,项目C不想带上功能1,那么就可以在android L平台增加关于功能1的“平台功能宏”了,就是直接在平台上修改代码,通过关键字来控制功能,项目A、项目B、项目C自己通过配置文件关键字的值适配就可以了。
在记录时有个基本表格可参考:
序号:编号,不在赘述
模块:平台或客户需求涉及的大模块
细分名称:需求的名称(比如:增加商品歌曲评论功能)
需求描述:需求具体描述(在xxx地方增加xxx,实现xxx功能等具体的描述)
优先级:一般都会给需求分优先级
客户:某某odm客户或者平台需求
补充说明:功能宏的开关或者bug管理系统的记录(比如:cr号)
已完成的平台or项目参考:记录之前已经完成过的代码流、分支、项目等
上述是最基本项目的说明,其实在实际操作中可以针对性增加或删除。
“平台功能宏”有什么意义?当“平台功能宏”逐渐丰满的时候,首先是优化了需求池,更好地梳理需求,其次可以针对不同模块、项目、平台在实现相同功能的差异化需求时,通过控制平台或主分支代码,尽量避免开发人员多次写重复的代码,从而大大降低了开发和沟通的成本。此外,甚至可以对于不同国家的软件版本和项目都能得到有效的控制,为未来的软件国际一体化打下良好的基础,但是同时也会增加平台、主分支的负担,最明显的就是代码会增加,因此也要斟酌运用。