|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
为什么要提高研发效能,因为技术本身是为业务服务的,产品的价值体现在业务上,技术的所有价值最终都要通过业务结果来呈现,我们的根本目的是帮助业务成功,促进业务腾飞。- ^0 ^+ O: E# a' J) O
9 S& @' G1 X ^. U q9 t6 Y$ m$ r
那技术就不重要了吗!重要,因为所有的业务价值最终都要通过软件服务来变现,两者相辅相成,互相促进。4 c8 d3 E* _1 M6 @
那如何提高研发效能?1 ^ `1 y( Q4 z" z6 i
一个项目从立项到上线涉及到角色包含客户、运营、客服、产品、技术、测试。 ~& c1 [4 g+ z5 r. G% Z+ E7 f6 \" }
涉及到关键流程如下。8 ~3 i, K1 a% k _ x
* p" H1 c7 A" X需求收集,运营/老板 -> 产品,关键产出:想法/idea/业务需求文档( T2 r9 c. Y( x& x G" N
& J* t2 b5 o0 d9 L4 ]需求评审,产品 -> 运营/老板/技术,关键产出:产品需求文档( t; c% N7 m' P# _" a( ^' f9 V
9 @/ c/ o) T* S- g) L需求内部评审,产品 -> 运营/老板/技术/若干项目负责人,关键产出:产品需求文档9 u" g0 l) w" @ t' ]
% n4 `1 Y1 c1 V( q9 c$ H5 O6 R
需求宣讲,产品 -> 研发/测试,关键产出:大家对于问题,目标,需求的理解达成一致. p* P0 L4 o3 p" @, Y1 d
4 B; Y" A! t3 F: `9 K
技术方案评审,研发 -> 产品/测试,关键产出:技术架构/代码+ u; ]0 D4 `# z( ~+ P. H# Y
& l8 o3 ]! n- u* ]% m; v# y
测试用例评审,测试 -> 研发/产品,关键产出:测试用例/需求逻辑测试case全覆盖, x, o& m+ p0 C+ P
6 G, r9 L) H$ l
系统上线,产品/研发/测试 -> 客户
, A% l5 w- F1 T1 l( d* k需求复盘,客户->运营/老板/产品/技术,关键产出:需求客户满意度6 j1 e# _) t7 L
Do things right还是Do right things?( D$ ]1 }& i h/ o
接下来主要从需求管理,研发,测试三个维度描述,如何Do right things。% S( e* m, s% q3 J4 }+ |
1.需求管理
9 ]- p, r# s! t; s T5 x- _" E5 O7 U* D/ t8 h( ?
团队什么时候对需求的理解最充分、最多?项目结束的时候!但项目中的绝大部分决策是什么时间做出的呢?项目开始的时候,这就导致了一个悖论,我们在最无知的时刻,做出了最重要而且是绝大部分决策,并把它作为随后执行的依据。0 j. o1 u6 o$ c C j# ?3 z
: n; `0 ` U! E; r& M* ]: ]这个需求是运营提的,做!这个需求是老板提的,做!
0 `% K. z7 r4 o7 j' b0 k h: L2 G/ j" p8 O4 N$ \
为什么要提这个需求,这个需求的目的是什么,有什么价值,凭什么这样做可以达到目标,哪些数据可以证明,上线后如何衡量此需求真实效果。
( H) a9 }5 r7 x1 f/ J! d9 S( `) b2 F; Y# }
我们不是乙方外包公司,是和老板站在一条船上的人,有理由有义务搞清楚老板为什么要提这个需求,需求背景是什么,为了解决什么问题,达到什么既定目标,目标结果如何衡量,尝试下”5问法“。
- j! Z$ B$ o4 w- a1 h" ~/ G需求是泥沙俱下,如果不能正确的分析需求,把握需求的本质,就会沉浸在永无止境的接收需求状态,机械的干活却没有结果。
; m6 \7 V& `% a" n
( ]5 N0 }/ |; V: Y7 R- A0 J我们是有思想的手艺人,不是等待老板投食的宠物。6 {% j7 b6 L' [7 ~
运营/老板讲解需求的时候,主要是和产品对接,研发、测试不知情不了解。这就会导致一定的信息误差,最后评审需求的时候,研发、测试是站在产品需求文档的角度考虑问题。如果这个文档自身就和业务的期望有差别呢?( f6 ?) E, S/ k
& Q, a& s9 m. \* M$ I! e2 n我们应该以终为始,聚焦目标,需求前置。在和运营/老板最终需求方案终版的过程中,就应该拉着技术进来,提前介入,预见未来。2 o9 {0 ]0 r, ?! R; ^/ M: E
在很多人的思维里,认为需求评审就是把需求跟开发详细过一遍,就进入开发阶段。
. h9 T p$ q, I+ H严格来讲,这会导致挺多问题,需求逻辑有缺陷,打回重做,浪费大家时间,经常如此造成大家对你个人能力的质疑。
' C, s' Q1 z$ S; a所以内部评审是有必要也非常重要的一个环节,但是很多产品不重视这个环节,甚至还有很多产品经理并不知道有内部评审这个环节的存在。 h' K; M+ g) I, x2 d
产品不需要为单次故障负责,但全年故障数量纳入kpi考核之中,只有屁股在一起,大家才能在一个战壕里更好的思考问题。6 `' A" t) ?" h( {
2.研发环节" L4 |9 e: f; s1 U0 u
4 k o& E& Q- ?* X( s根据二八定律,20%的需求决定了我们80%的业务价值,它决定了我们的成就,客户的直接反馈,市场竞争力。
: O0 K" ^# o5 u2 P3 x$ \9 ?& W( v9 u/ y0 m' [
“持续快速交付价值的能力“,这个价值指的是需求的多寡吗?
2 R% L6 I" Z7 Z! h7 x- j6 Z* ?7 M4 _
我们应该聚焦于单位时间内创造价值的效率,这个价值指的是需求上线后对于用户的实际价值。用户价值的流动串起整个系统,促进整体优化的不二选择。为了提高价值的流动效率,组织就必须关注用户价值在系统中端到端的流动过程,改进整个系统,而不仅仅是局部环节。0 b( _8 b1 T' p9 v2 S$ a' Z t
5 E& p5 E+ ]0 W所以对于大需求,批量性的需求,最好打散拆开,以2-4周作为研发周期,快速迭代,不断打磨优化上线,给予业务以反馈。
* o" e+ I5 E! n) v6 F; c- T) s- h c% b! x
不要给业务surprise,要让业务感知到价值在流动,需求在流动,就像巴普洛夫的狗一样,这群人靠谱,值得信任。
( v5 ?8 j6 c$ N如何保障价值流动的过程质量呢,把交付质量内内建到开发过程中,而不是依赖最后环节的测试。. a" b, R6 G! g) |8 H
首先要保证基本的单元测试,其覆盖率至少到50%,覆盖主流程,保证冒烟case是ok的。
+ f+ T+ @, a& l; L, Y Q; R$ M* i
1 V' T6 I5 v4 t) ~( T代码改动提交触发集成测试,编译是否出错,代码静态分析,单元测试覆盖率报告。
/ P! U0 }, h# B6 f! {2 g! U每月度工程质量梳理,代码缺陷,产品逻辑缺陷梳理,要让光照亮了问题所在,把问题暴露出来,暴露出来的问题,惦记在心里的问题,就不能在叫问题了,叫待优化需求。% n( }3 ?) q3 J% I; v, k
研发对于需求要有一定的预见能力,做好适当的扩展。每半年各系统负责人串讲自己所负责系统设计架构,并提出系统最丑陋的三个地方,开发的时间久了,必然会有灰尘和垃圾,如果一个劲儿堆积需求,垃圾越级越厚,就会积重难返。打扫干净好接客。
3 U6 _2 o4 V' D0 W3.测试环节. ~4 p% N; ]3 f5 {( e% x
+ F% ?+ H: n, ]; u$ Q测试用例评审前置,研发、产品一起参与,把所有的case全部覆盖一遍,对于流程逻辑,直接现场解决,开发在过case的时候,也会不断考虑如何编写更健壮的代码,毕竟我们的目标是提高服务质量,全年无故障,而不是为了给测试冲业绩,比拼bug数量多少。
$ y- r* {3 q% ^
( f# w" ~# w f5 W3 u单元测试,集成测试,接口测试,开发环境,测试环境的搭建,上线前checklist检查点。7 w: q; Y3 T3 Z- o
: j& C& c4 ^& m6 G2 k6 J测试用例的评审,沉淀,积累,不同测试等级下需覆盖功能范围和测试用例。
$ _5 c( \# y" C" R @- L5 \+ h2 @
综上. d% k* @7 v; p% |* G9 F3 A
; s4 L! T5 y+ g! Z8 o% Q1 H7 d y
横截面主要主要聚焦于角色内,产品:搞清楚问题所在,明确的,清晰的,无歧义的,达成一致的需求;研发:代码的健壮性、可维护性、可扩展性;
6 ^8 r" f; i- z Y! w9 H$ u7 m. O5 j& T, R' R4 z& t- o G1 n
测试:多维度的测试用例,测试系统的方方面面。
, \$ D* |; l0 x3 ?/ u: t. c( ~, P! m8 O# J2 W
纵截面,共性就是组织与制度问题、能力问题、沟通问题、选用育留问题。
; @/ D. X3 [9 T1 x4 A2 t# X" |
6 `/ x( t, z" T- C7 t专业培训不足是导致研发效率未达预期的远因之一,既然如此,我们就要在平时加强员工各方面的培训。
& J( s5 ~) J a# }4 I0 `
' l) c! f, t( @4 _& q; l提升人员能力也是提升员工效率的一种方法,能够有效改善部门之间的沟通问题,减少矛盾。4 s; s7 r* j' F9 i3 v9 S
6 A+ I, \ Z# \( [" ~
% h, C/ E- T! U+ `/ a! n
|
|