前几天一个朋友问我一个公司的研发体系怎么管理,所以我随手给他写了点文字。
我说最大不外乎几个二级部门:
平台产品研发中心:做平台
创新原型研发中心:快而脏开发原型,验证用户需求和潜在市场即可,验证完就抛掉
新产品研发中心:拿来创新原型研发中心的遗留资料做正式产品研发样本参考,但要按照正规产品设计方法与流程重新设计重新开发
核心产品研发中心:成熟的、占公司50%以上销售额的产品,在这个研发中心持续打磨,按照严格进度要求进行发版上市
大客户定制开发中心:大客户定制开发,这个部门承担。这个部门不能放在交付序列,而是放在研发序列。因为这个部门做的事,往往是原型性的
一个部门,也不外乎常见几个岗位:
需求分析师、产品设计师
应用架构师、技术架构师
开发Leader、程序员
测试Leader、测试员
但我这篇文章还叙述了两个不是研发体系的部门,一个是UIUE用户体验中心,一个是产品行销部门。因为这两个部门和研发体系关联颇多,所以我也放在一起说了。
(1)程序员
1、按产品功能详细设计规格,按进度时间要求,编码实现。
2、按技术要求规格(高精确、高稳定、高可用、高并发、高性能、高安全、高兼容性),进行代码实现设计,并且编码实现。
3、代码逻辑清晰,方便后来人阅读维护修改。
(2)应用架构师
1、应用模型/算法稳定抽象:不论国内国外、规模、行业、企业性质(国企私企),模型/算法均稳定
(3)技术架构师
1、对产品功能详细设计说明书进行分析,识别出技术要求规格(高精确、高稳定、高可用、高并发、高性能、高安全、高兼容性)。
2、对于外部产品集成,设计统一的稳定的向下持续可兼容的Open API。
3、保证功能点的解耦可解耦性与可组合性:不要引发一个功能的修改引起了另外一个功能的错误。但是也不要解耦太多引发开发复杂,要做到设计平衡
4、保证功能点的可扩展性:精心设计对外暴露的属性Property、方法Method、事件Event
5、保证层与层之间的可解耦性:不要引起修改一个功能业务逻辑,需要在多个层同时做修改
(4)开发Leader
1、理解产品功能详细设计规格、技术要求规格,以便根据组内每个程序员的应用擅长方面、技术能力级别(高级程序员/中级程序员/初级程序员),进行开发任务分配、开发任务排期。并且整合推进协调开发进度。
2、代码审核入代码库、代码集成联调保证
3、对开发组外的其他部门进行对接协调
(5)需求分析师
1、CXO问卷访谈,找出业务痛点/关注点
2、输出信息收集:各个岗位各个部门,在日周月季年各个周期,对上对外的各种报表样式收集。
3、输入信息收集:各个岗位的输入表单单据收集,表单的审批工作流梳理
4、主数据信息收集:组织、岗位、供应商、客户、产品...
(6)产品行销
1、产品竞争规划:产品未来三个连续版本的竞争点规划
2、产品行销解决方案设计:面向不同规模、不同行业、不同客户痛点,设计不同行销方案
3、产品商业模式设计:定价策略/计费模式、销售通路选择、回款模式
4、产品上下架规划:新版上架时间规划,并协调产品研发部门、市场营销部门、一线销售机构。老版下架退市规划
5、产品行销推广:对于新版产品,联动市场营销部门、一线销售机构,进行行销推广、标杆客户试点支持
(7)产品设计
1、产品详细规格书编写:在产品行销竞争规划的指导下,以需求分析师采集到的原始材料为样本参考,按照正规产品设计方法与流程,设计产品功能详细规格。
但最终的产品详细规格书,已经融入了应用架构师的模型/算法。已经融入了技术架构师的技术规格设计和接口设计。也已经融入了UI&UE人员对于交互模式的重新设计图。
(8)UI&UE
1、UI:按照美术专业,进行专业美化和配色方案
2、UE:利用用户体验管理工具理解用户工作流程(工作场景),按照人机工程专业,进行交互模式的重新设计。尤其现在交互技术已经细分为(PC Web、手机App/小程序、传感器、AI识别)
(9)测试员
功能性测试:输入测试(正常值输入、临界值输入、异常值输入),场景流程跑通测试
非功能性测试:高精确、高稳定、高可用、高并发、高性能、高安全、高兼容性
部署测试:集中安装测试、分布式安装测试、版本升级测试
(10)数智工程师
我最后再给大家介绍一类新岗位,这就是数智工程师。因为现在是云SaaS时代,现在是人工智能技术热潮时代,所以现在的软件已经不是一个空壳工具,而是承载了数据和内容,需要依靠人工智能技术,进行天天不断的数据加工(标签/关系图谱)、建模/模型预训练、用户使用行为观察数据统计/模型微调。这个团队尤其在AI驱动计划、AI驱动任务调度、AI搜索与推荐的一些应用场景方面,需要天天持续这样工作。