基于流程管理,提高工作质量和效率
一、背景说明
在软件开发领域中,流程协作一直是热门的话题之一,不同的组织架构中,定义不同角色和人员的职责范围,并且通过流程规范来管理不同角色之间的衔接机制,以求不断提高协作效率。
核心要素
- 角色:不同的组织架构下,角色配置各不相同,角色与人员对应明确;
- 职责:对不同角色的责任定义,用来明确介入流程的阶段与时间;
- 流程:根据场景定义对应的流程中节点顺序,例如开发、测试、部署;
- 节点:明确不同节点中的负责角色,作为节点有序完成的推动者;
合理的流程管理机制,有利于高效的工作;为了避免流程协作过度复杂,同时还要制定协作规则,例如常说的事不过三(或二),第一责任人等手段。
二、常规流程
产品从需求到发布中间经历多个关键节点,在协作的过程中,任何阶段出现问题,都会对整个流程的上下游产生影响,所以对各个节点输出结果的质量需要有适当的要求,避免出现工作反复的低效率情况。
从如下四个方面看具体细节:产品需求、项目管理、研发管理、项目总结,把握好这几个关键阶段对团队的稳定和效率都有巨大的提升。
三、产品需求
- 收集:多方需求的接收,可能是业务侧、产品规划、系统优化、架构升级、等多个来源;
- 整理:对收集的需求分类整理,根据重要紧急的策略做好需求统筹和实现的规划,提供初版文档;
- 业务评审:给到业务(需求)方流程管理,产品初版的操作示意图,对齐心里上的预期;
- 技术评审:完善需求的细节规则,技术评估合理性、可实现性、复杂度、风险等相关问题;
产品需求阶段作为软件开发的最上游节点,这个阶段一定要输出需求明确,符合业务预期,技术可实现的产品文档,多方达成共识之后,邮件的方式通知到相关人员,以表示当前阶段工作完成。
四、项目管理
项目管理是一件繁杂的事情,通常分为:启动、执行、监控、收尾四个阶段,以此实现项目的"质量、成本、时间"的把控,在不降低质量的情况下,同时降低时间和成本是多数公司的追求,故而形成现在互联网的内卷态。
- 启动:启动阶段主要指资源的合理分配,项目工时评估,里程碑节点明确等事项;
- 执行:在软件开发中即指:UI设计,开发实现,测试,线上部署等一系列流程;
- 监控:关键点在于进度与风险,对进度的有节奏跟进,以及可能出现的风险判断和解决方案;
- 收尾:对项目的质量验收,整个流程的复盘总结,以及相关人员的通知;
项目管理作为职场中的基础能力,对于任何人员都是值得用心去积累沉淀的,并且时常思考如何去优化管理策略与方式,以此让做事的效率更加高效和有条理性。
五、研发管理
研发是一个耗时较长且容易出现问题的阶段,所以在这个节点要细致化的管理和推动,对质量的追求要放在绝对首位,避免因为"多-快-好-省"的想法而出现豆腐渣工程,如此返工带来的成本会更加高昂。
- 准备:即在版本开发初期,要精准的理解需求,完成功能模块拆解,以及对应的工时评估;
- 设计:UI界面输出,开发前后端设计,测试用例,各个节点完成设计的评审对齐;
- 编码:前后端代码实现,API对接联调,配置改动、结构脚本、逻辑流程等日常文档记录;
- 测试:开发自测,专业测试,自动化脚本测试,UI视觉验收,产品功能流程验收;
- 发布:预发布环境模拟部署,线上灰度环境发布,正式生产环境上线,完成线上验收;
作为一名多年的开发(后端)选手,这里对开发的过程大致细化如下几个节点,当然这里指的是复杂的业务实现,下述流程执行时极少出现意识偏差的情况:
服务端在面对复杂业务时,将需求落实到设计上至关重要,首先就是对需求有全面细致的理解,很多时候流程中的一个细小规则对应的实现成本都是巨大的,其次就是对于开发流程的构思设计并输出,并完成项目组内开发的评审对齐,这样基本能确保开发的顺利完成。
六、项目总结
在复杂的项目中,最后的总结分析很容易被忽略掉,总是感觉版本正常上线没有问题就可以,当然作为一名开发选手我的内心是支持这个说法的。
复杂的业务对应复杂的产品设计,同时也意味着超长的项目周期,即高昂的成本,线上的正常使用只是意味着研发的质量很高,但是对整体业务的需求和产品设计的合理性是需要基于用户的使用去分析:
- 动作埋点:对业务流程上的各个环节做埋点动作,用来对行为数据的收集;
- 日志采集:关键API的请求做日志记录,用来对系统及业务做分析判断;
- 数据分析:分类汇总业务流程中各个核心节点数据,形成一整套的数据分析结果;
- 总结报告:结合业务的需求,对产品功能做出客观的分析,并输出必要的优化方案;
这里重点说明一下分析报告,在数据分析完成后,给到相应的市场或者业务人员,或者具备专业视角的人员,采集汇总多方的意见或建议,客观的评定落地的产品流程,不管好与差都需要输出关键因素,作为经验的积累和后续的借鉴。
END