项目流程如何标准化?

282 篇文章 6 订阅
149 篇文章 0 订阅
文章探讨了在团队协作中测试和研发对流程的不同态度,指出流程应是多方共识,解决特定问题的工具,而非责任分割的障碍。流程的制定应基于团队实际问题,持续调整以适应变化,同时强调不应让流程替代思考,而应使其服务于团队目标。
摘要由CSDN通过智能技术生成

前些天有个读者小周私信说在公司推流程遇到了一些阻力,研发团队对自己推行的流程很不满意,但他又认为这些流程都是必须的,于是双方僵持不下,工作没法继续开展。小周碰到的问题我想一定不是个例,作者曾经也遇见过类似的情况,今天就来聊聊流程这个话题。

我们都有这么一种感觉,测试很喜欢流程,研发又很讨厌流程。什么原因?双方的利益诉求点不同。在某种固有的习惯上,我们喜欢用线上问题数去考核测试,用发布需求数去考核研发,站在团队整体的角度上看,目标其实是不一致的。

在这样的背景下,测试只好把流程当成自己的救命稻草,作为一条执法大棒去挥舞,追求过程的绝对正确性。对于测试来说,流程越重、越严,安全感也就越足;对于研发来说,流程越繁、越长,麻烦也就越多。

这是一种责任上的失衡,人为制造角色的对立,造成无谓的团队内耗。这也是很多团队流程难以推进的首要原因。产品也好、研发也好、测试也好,需求的进度和质量是团队一起努力的成果,不是单个角色的责任。

对于测试而言,我们也不应该把流程当做是套给产品、研发的枷锁,而要把流程作为团队的一道保障,给大家一种安全感。因此我们要理解的第一点是:团队协作的意义在于一致性,流程一定是多方共同认定的结果,是为了达成共同的目标

有些测试小伙伴在进入一个新环境之后,喜欢直接照搬之前团队的流程,或参考他人分享的经验,套用到现有的团队中,不去考虑这些流程的意义和目的,这是一些流程无法被接受的另一个重要原因。

举个例子,有个常见的流程是研发自测,由测试提供自测用例,研发按照清单自测过后才能提测。但这个问题并不是所有团队都存在,如果研发的自测习惯本身就已经很好了,我们设定这个流程只会增加多余的负担。

流程的应用,必然有其背景。比如多数团队有个环节是集成回归。设定这个环节的理由是什么?因为代码合并之后,有可能会引入新的缺陷。所以我们要理解的第二点是:流程的存在一定是为了解决特定的问题,它不能凭空产生

好的流程,是能够以最“恰好”的方式,去解决团队的问题的。如果我们总是在犯同样的错误,说明流程存在缺失;如果我们去掉其中一个环节而不影响结果,说明流程存在冗余。流程没有万能的,只有最合适的。

我们在制定流程之前,需要先想清楚几个问题:团队的构成是什么?大家的协作习惯是什么?当前存在哪些问题?主要的薄弱点在哪里?针对这些问题,再去考虑我们的流程应该是什么样。

常见的流程制定的维度有两种:一种是基于角色来确定,比如产品、研发、测试、运维;另一种是基于环境来确定,比如开发环境、预发环境、灰度环境、正式环境。每个单元(某维度下的单个项)有各自的准入标准和准出标准(最后随文附上实例)。

当然,流程既然被制定出来,就需要认真去执行(因此还是那句话,先取得认知的一致很要紧)。正因为每个人都有犯错的可能,所以我们才需要靠流程去保证大家能够把事情做对,而不是在每一次过程中碰运气。

1986 年 1 月,美国挑战者号航天飞天发生重大事故,飞机起飞 73 秒后解体,7 名宇航员全部遇难。事故原因是用于密封右侧固体助推器的 O 形环失效,然而早在之前工程师就预警过该问题,但是管理人员却对此置若罔闻,没有向上汇报。

从以往的经验来看,90% 的错误其实都是可以避免的。历史上多数很严重的事故,往往源于一些微不足道的原因。不是我们没有能力去发现这些问题,而是我们对流程缺乏足够的敬畏。心存侥幸必遭不幸,事出偶然实则必然。

那么流程确定了之后,就万事大吉了吗?肯定不是,流程是会变化的,需要持续精进。我们所处的环境、依赖的因素、团队的要求,无时无刻不在发生变化。因而我们需要定期去审视我们的流程在当下的适合性

有这么一个“不拉马的士兵”的故事,英国一位军官上任伊始,看到一个情况:每门火炮总有一名士兵自始至终站在火炮的炮管下面纹丝不动。后经了解这是炮兵操练条例规定的。该军官回去后查阅军事文献,发现是马车牵引时代制定的规则。

在那个时代,火炮由马车运载到前线,站在炮管下的士兵的任务是负责拉住马的缰绳,以便在发射后调整由于后坐力产生的距离偏差。而现在火炮的自动化程度已经很高,不再需要这样一个角色,可操练条例却没有及时修订,结果就出现了“不拉马的士兵”。

由此可见,流程既是静态的,又是动态的。说它是静态的,因为流程确立之后,就需要共同遵守,不能随意打破;说它是动态的,因为流程不能一成不变,需要审时度势,调整适应。

最后还是要提醒一句,流程终归只是团队意志的文字呈现,更重要的还是自己的判断和决策。我们千万不能让流程代替思考,而要让流程服务于我们的目的,否则便失去了制定流程的最初意义了。


流程的一个实例,再次提醒不要硬套,根据自己的情况灵活运用:

开发环境准入

  • CodeReview 通过

  • 开发环境部署确认

  • 代码扫描通过

  • 研发自测通过

  • 自动化测试通过

开发环境准出

  • 产品验收通过

  • 设计验收通过

  • 测试验收通过

  • 中高优先级缺陷全部解决

预发环境准入

  • 配置提交管理系统

  • 预发环境部署确认

  • 自动化测试通过

预发环境准出

  • 测试验收通过

  • 发布清单准备就绪

  • 数据脚本准备就绪

  • 非体验类缺陷全部解决

灰度环境准入

  • 发布清单已执行

  • 数据脚本已执行

  • 灰度环境部署确认

  • 自动化测试通过

灰度环境准出

  • 测试验收通过

  • 各级监控无异常

  • 灰度比率超过 X%,时长已满 N 小时

  • 非体验类缺陷全部解决

正式环境准入

  • 发布清单已执行

  • 正式环境部署确认

  • 自动化测试通过

正式环境准出

  • 测试验收通过

  • 各级监控无异常

  • 客情监测无异常

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值