• 软件项目研发流程该怎么规范


    在软件项目研发管理过程中,是否经常出现这样的场景:开发人员不知道什么时候转测;项目经理拿个Excel文档群里一发,某任务前天就应该完成的,怎么现在还没开始搞;前端问这部分UI是谁在做,什么时候能做完;测试说线上这个bug又是谁改出来的,这次没转测这模块……等等。整个协作感觉一团乱麻,团队内部充满了甩锅与抱怨的氛围。软件项目的研发流程该怎么规范,让团队成员都能目标明确,步调一致,让产品迭代充满节奏感。本文基于笔者项目研发管理经验整理,希望起到抛砖引玉的作用,探讨高效团队的协作流程模式。

    1. 协作流程图

    协作流程图

    基本原则:

    1. 所有问题可跟踪 (需求、Bug、优化)
    2. 所有工作透明化 (工作量、进展、Block因素)

    2. 各阶段内容详解

    2.1. 需求收集确认

    本阶段主要是与产品经理相关的活动内容:

    1. 产品经理在每次版本开始之前定期收集各方需求,包括客户反馈、领导意见(对很多中小企业来说,老板就是最大的“用户”)、市场调研及技术团队需求等来源,输出需求列表
    2. 在版本开始之前召开版本计划会议,参与者包括项目经理、产品经理,及项目核心成员,按优先级梳理需求列表,输出下次版本的初步任务列表(之所以说初步,是因为该列表后面可能根据评审情况进行调整)
    3. 产品经理基于初步任务列表完成详细需求文档,组织团队成员——包括相关UI、开发、测试,召开 需求评审会议,输出评审意见及修正完成时间
    4. 产品经理针对需求评审会议中团队提出的意见建议,在修正完成时间内及时修正需求文档,并及时通知团队相关成员,输出确定的需求文档

    注:可在需求评审会议后,进行任务的初步认领分配与时间估算,初步确定转测、上线时间节点

    2.2. 设计开发
    1. 项目经理根据需求文档完成任务拆解,并在任务管理系统中创建对应任务单,指定经办人
    2. 各经办人认领任务后,根据自身任务的期限,及时与依赖方沟通,确定依赖任务的完成时间,以免影响自身任务进度,存在问题及时向项目经理反馈。
    3. UI设计完成后,相关开发人员与产品经理需对UI设计进行确认,如果涉及内容较多,可组织UI评审会议(由产品经理或项目经理权衡组织)
    4. 涉及流程的开发任务需要有必要的设计,技术相关负责人负责对设计review,没有review的设计不能开发;任务开发完成需要进行代码review
    5. 项目经理定期组织项目例会(紧急版本建议每天一次,较长期版本建议一周一次或两次),持续跟进任务进度与问题,并及时协调处理,以保障进度预期
    6. 在预定转测时间节点前一天,开发人员编写转测文档,描述本次版本调整内容(附上任务列表)及注意事项,并通知项目相关人员(钉钉群或邮件)
    2.3. 测试
    1. 需求评审会议后,测试人员需对各功能模块编写测试用例文档,并在转测前组织测试评审会议,对各功能各环节进行复核与查漏补缺
    2. 一次版本任务可根据情况分批测试,并确定每轮转测的内容与时间节点;分批测试完成后,需在上线前进行集成测试,注意预留一定的时间用于问题修复
    3. 测试完成,需要将测试结论通报项目相关人员(钉钉群或邮件),包括遗留问题与是否达到上线要求结论

    注:产品经理可在转测后对开发实现进行验收,以确定开发是否符合需求实际,以便及时进行调整

    2.4. 上线
    1. 上线人员需在上线前编写上线方案文档,记录此次上线内容,并对此次上线操作进行推演,对所涉及的所有操作按步骤进行记录,如数据库操作,代码merge,jenkins构建等;对可能存在的问题进行备注及对应的处理方案,并提交技术相关负责人review
    2. 项目经理结合测试结论及其它各方面情况,决策是否上线,并将意见通知到项目相关人员(钉钉群或邮件)
    3. 上线人员按照上线方案文档记录的步骤,依次完成上线操作(上线操作最好至少由两人完成,一人操作,一人检视,避免出错)
    4. 上线完成后,测试人员与产品经理对此次上线进行线上验证,确保线上功能流程无问题
    5. 验证无误后,由项目经理或其他指定负责人将上线通知发布至利益相关者,包括项目团队所有成员及相关合作方,说明上线时间、上线内容、影响因素、注意事项等(即时通讯群或邮件)
    2.5. 复盘
    1. 版本结束后,项目经理根据情况对上个周期组织复盘总结会,总结存在的问题与原因,及后续规避的办法,总结积累的经验等

    以上各阶段并不是完全串行推进的,相互之间存在一些穿插,比如下一版本需求的收集整理与当前版本的开发是并行推进的,开发与测试也可以以分阶段转测的形式并行推进,等等。

    3. 一些常用工具

    1. jira 用于项目任务管理,其中Agile插件可方便查看整体任务面板,对任务状态一目了然,需要求团队成员养成及时更新状态的习惯
    2. confluence 文档管理,用于各类文档的集中化维护,以上所述的如需求文档、开发设计文档、转测文档、上线文档等均可使用confluence以项目空间的形式集中化管理。
    3. gitlab 代码管理
    4. jenkins 项目部署构建工具
    5. nexus 搭建maven私有库

    4. 总结

    团队工作讲求步调与节奏,好的流程与规范可以让一个水平一般的人也能充分发挥其作用,从而让团队整体稳步前进,高效产出。而不好的流程,或根本不重视流程的团队,却往往一盘散沙,甩锅与抱怨充斥,战斗力低下。本文以相对较粗粒度对软件项目的基本流程管理做了介绍,更细节的内容可能需要团队根据内部具体情况进行相应处理与对待。

  • 相关阅读:
    HomeFragment 嵌套关系
    mysql 变量定义 sql查询
    MSSQLSERVER执行计划详解
    数据传输常用的三种格式:XML、JSON(JSONP)、YAML
    数据传输常用的三种格式:XML、JSON(JSONP)、YAML
    C-链表
    C-链表
    JVM+微服务+多线程+锁+高并发性能
    JVM+微服务+多线程+锁+高并发性能
    vba实现字母全部转小写
  • 原文地址:https://www.cnblogs.com/KevinBran/p/11164356.html
Copyright © 2020-2023  润新知