| 
 | 
	
    
 
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册  
 
x
 
为什么要提高研发效能,因为技术本身是为业务服务的,产品的价值体现在业务上,技术的所有价值最终都要通过业务结果来呈现,我们的根本目的是帮助业务成功,促进业务腾飞。 
7 J+ Y6 M# D& [+ s9 }/ ^% k: M/ g# f4 \6 _7 p% P3 T 
那技术就不重要了吗!重要,因为所有的业务价值最终都要通过软件服务来变现,两者相辅相成,互相促进。  C: o' y1 L6 A$ ^8 }- T 
. w4 }" T+ R% T+ m 
 那如何提高研发效能?7 L9 u9 L! F* g; R" I4 q 
& S2 N! ]0 y1 y; Q; }$ V8 O$ u' m 
 一个项目从立项到上线涉及到角色包含客户、运营、客服、产品、技术、测试。: h. ^5 y6 H3 Q, I3 f; [1 W& H 
7 U- V" i, w0 k$ c, @5 S 
 涉及到关键流程如下。; \" Y) w* \- @0 m! h  h0 z 
* E& h1 Q, w0 E) T" x 
需求收集,运营/老板 -> 产品,关键产出:想法/idea/业务需求文档& {9 M' l1 R4 D) e 
; z: ^% H. Z' | 
需求评审,产品 -> 运营/老板/技术,关键产出:产品需求文档 
9 ?2 g' W: E2 I& C0 z0 c* H. k4 h% S" t& i* [! h3 s5 j: o, Z* [ 
需求内部评审,产品 -> 运营/老板/技术/若干项目负责人,关键产出:产品需求文档 
1 \% i6 J1 h( m2 S- Q# ~$ b5 _5 e8 A# ]& g; U8 R 
需求宣讲,产品 -> 研发/测试,关键产出:大家对于问题,目标,需求的理解达成一致 
8 f% K6 u8 w5 l1 e# T5 _5 k- B# K3 l  M  W8 _3 \3 V% M 
技术方案评审,研发 -> 产品/测试,关键产出:技术架构/代码 
, b, l& c2 I* h# x0 R2 e& w1 j0 d( F' S3 J. b" b% _ 
测试用例评审,测试 -> 研发/产品,关键产出:测试用例/需求逻辑测试case全覆盖( N  k5 c8 N% s/ l/ U; z 
  `) L( s0 {  r& W, o 
系统上线,产品/研发/测试 -> 客户/ _7 l+ N+ |; U 
 
. q" ]* G9 H+ X需求复盘,客户->运营/老板/产品/技术,关键产出:需求客户满意度; L$ \& b+ X. t. ], _ 
 
3 t) s! |1 K7 i$ {0 @ 
1 H4 n) A+ m' Y# PDo things right还是Do right things?8 ]. i- E+ ?9 v5 M' {" x/ V 
# c6 x& r* F, F" C0 B% D  X; f# J 
 1 x! p2 b% D' m/ ?6 l5 S- T) P 
接下来主要从需求管理,研发,测试三个维度描述,如何Do right things。 
! q" Q% ~. ^) E% m 
$ r1 M" V& Z$ o! L ' I/ O: H7 ^2 k0 m( S( \+ n1 O9 n 
1.需求管理+ j' j. f7 F- x" P 
& B  S% a1 M$ M% z! h$ ~ 
团队什么时候对需求的理解最充分、最多?项目结束的时候!但项目中的绝大部分决策是什么时间做出的呢?项目开始的时候,这就导致了一个悖论,我们在最无知的时刻,做出了最重要而且是绝大部分决策,并把它作为随后执行的依据。* R1 z, p' M; q. F( F, o" v' F4 \ 
 
4 o: y/ D5 ]9 V- c1 x5 R% O5 f这个需求是运营提的,做!这个需求是老板提的,做!# T$ g9 [' I# U" I# \/ T 
4 T0 k7 Q9 k, d8 s 
为什么要提这个需求,这个需求的目的是什么,有什么价值,凭什么这样做可以达到目标,哪些数据可以证明,上线后如何衡量此需求真实效果。 
" G' e0 f) p) [) b. [ 
  F9 }1 O2 g. y/ b我们不是乙方外包公司,是和老板站在一条船上的人,有理由有义务搞清楚老板为什么要提这个需求,需求背景是什么,为了解决什么问题,达到什么既定目标,目标结果如何衡量,尝试下”5问法“。( }# Y* y* p2 L5 U1 |( S 
 
4 h$ o4 _! k, K$ P 
; F: Q/ v1 Z+ I$ P需求是泥沙俱下,如果不能正确的分析需求,把握需求的本质,就会沉浸在永无止境的接收需求状态,机械的干活却没有结果。# {% v' _) j) u  X) I- i/ H6 J 
 
+ L* ~7 W8 A. w" u9 ]3 T, p: m我们是有思想的手艺人,不是等待老板投食的宠物。1 w. f+ F, U* f- @2 | 
 
3 E. z/ m8 I4 z& c 
2 T# s  k! l0 S- V6 X& s3 t运营/老板讲解需求的时候,主要是和产品对接,研发、测试不知情不了解。这就会导致一定的信息误差,最后评审需求的时候,研发、测试是站在产品需求文档的角度考虑问题。如果这个文档自身就和业务的期望有差别呢? 
+ V& o5 m5 r' ]- m* M* o, f: }& C; b) `: G4 n7 P, q8 L 
我们应该以终为始,聚焦目标,需求前置。在和运营/老板最终需求方案终版的过程中,就应该拉着技术进来,提前介入,预见未来。. Y# E; o& K" R1 {  d 
 
: q9 i/ c' u- U: S2 r 在很多人的思维里,认为需求评审就是把需求跟开发详细过一遍,就进入开发阶段。 
. h. p; Q+ q+ r& z  h. i, k8 M( O. x3 K5 k. g5 ?1 v; @- r2 e 
严格来讲,这会导致挺多问题,需求逻辑有缺陷,打回重做,浪费大家时间,经常如此造成大家对你个人能力的质疑。 
+ b, [6 `* X# w1 w7 `6 u+ n0 R; ~( r, S/ J 
所以内部评审是有必要也非常重要的一个环节,但是很多产品不重视这个环节,甚至还有很多产品经理并不知道有内部评审这个环节的存在。: o( v/ x: H& l 
0 ~. G7 I7 m3 @3 U1 \" X9 A% _: F 
 产品不需要为单次故障负责,但全年故障数量纳入kpi考核之中,只有屁股在一起,大家才能在一个战壕里更好的思考问题。 
: c1 q0 h) V; T8 S& S9 A* S 
3 u; y( k# \  U 2.研发环节" x9 R( p- ]6 @: [' j9 S* J 
 
: t( _, [* o4 k6 v$ c: ~根据二八定律,20%的需求决定了我们80%的业务价值,它决定了我们的成就,客户的直接反馈,市场竞争力。) A3 t2 N) C6 d4 M6 w& E 
" m3 ?- z  ^' P  w, H 
“持续快速交付价值的能力“,这个价值指的是需求的多寡吗? 
8 p9 Q0 j$ i! k6 O1 S: F2 z' l9 G( J9 K9 d 
我们应该聚焦于单位时间内创造价值的效率,这个价值指的是需求上线后对于用户的实际价值。用户价值的流动串起整个系统,促进整体优化的不二选择。为了提高价值的流动效率,组织就必须关注用户价值在系统中端到端的流动过程,改进整个系统,而不仅仅是局部环节。3 F  }, z, C( M! n- K! G 
 
5 v. Z7 J! q$ m5 J) p+ O( i所以对于大需求,批量性的需求,最好打散拆开,以2-4周作为研发周期,快速迭代,不断打磨优化上线,给予业务以反馈。 
: K0 f. _) f8 v# z5 C3 B4 b 
; ^" _5 z! U! X) {3 _% z2 Z不要给业务surprise,要让业务感知到价值在流动,需求在流动,就像巴普洛夫的狗一样,这群人靠谱,值得信任。 
. `2 H0 Q% s! _! i! x4 P 
: O  r( i% M8 x8 Q! X* f+ W' j  
4 k) ^$ {) X7 `如何保障价值流动的过程质量呢,把交付质量内内建到开发过程中,而不是依赖最后环节的测试。$ H0 p' D/ h; O! s 
 
. w; C4 }4 ~- C, a' Y8 n首先要保证基本的单元测试,其覆盖率至少到50%,覆盖主流程,保证冒烟case是ok的。 
; ~) D0 M6 j  U% }9 @+ |0 P1 @0 ]$ b 
0 g0 J/ L8 s  J0 K  V代码改动提交触发集成测试,编译是否出错,代码静态分析,单元测试覆盖率报告。 
5 R9 D$ ]  L8 k( F$ |, H8 b. v$ {+ T& A9 G, U 
 
2 v! m6 d( g6 j* I1 k每月度工程质量梳理,代码缺陷,产品逻辑缺陷梳理,要让光照亮了问题所在,把问题暴露出来,暴露出来的问题,惦记在心里的问题,就不能在叫问题了,叫待优化需求。 
3 @- J( e1 a0 [% R+ K) [# E$ d 
: g2 N9 `8 g3 a/ u$ x1 y; r4 N  A 研发对于需求要有一定的预见能力,做好适当的扩展。每半年各系统负责人串讲自己所负责系统设计架构,并提出系统最丑陋的三个地方,开发的时间久了,必然会有灰尘和垃圾,如果一个劲儿堆积需求,垃圾越级越厚,就会积重难返。打扫干净好接客。/ l8 z9 h6 d/ r" z1 I: Y 
1 y1 g2 ~. P3 y& Y 
6 q+ D2 v9 D1 f% b 
3.测试环节- M  \8 X" [- @ 
: U. b( m0 g' \% m# ?0 l' [4 q# J 
测试用例评审前置,研发、产品一起参与,把所有的case全部覆盖一遍,对于流程逻辑,直接现场解决,开发在过case的时候,也会不断考虑如何编写更健壮的代码,毕竟我们的目标是提高服务质量,全年无故障,而不是为了给测试冲业绩,比拼bug数量多少。# y6 j  R2 H% a0 R 
# O* f2 s6 H2 l' P4 j: v" V 
单元测试,集成测试,接口测试,开发环境,测试环境的搭建,上线前checklist检查点。8 t0 |9 C4 Y- K1 o 
 
/ ]* h& x" o5 g! ~) l# q测试用例的评审,沉淀,积累,不同测试等级下需覆盖功能范围和测试用例。4 O3 j8 B% ?- b; z; m) l5 b" n 
* a/ m  A3 Y( l* P& q) N 
 , }( d* x  E# r3 b9 d* w 
综上6 y/ y! y4 w0 ]% }5 a 
 
  ?) s+ Y$ |8 V横截面主要主要聚焦于角色内,产品:搞清楚问题所在,明确的,清晰的,无歧义的,达成一致的需求;研发:代码的健壮性、可维护性、可扩展性; 
0 l. [8 H! {/ `2 `- l( l. P1 [' S5 ^( v. W 
测试:多维度的测试用例,测试系统的方方面面。! S, j. N  C% f7 }' t 
) A, C& L" L+ N2 v2 `0 V: ] 
纵截面,共性就是组织与制度问题、能力问题、沟通问题、选用育留问题。3 U: w; d) A, ~; m$ b 
1 {6 S+ D: |- [# Y3 h; `" G$ _6 X 
专业培训不足是导致研发效率未达预期的远因之一,既然如此,我们就要在平时加强员工各方面的培训。' G2 O5 c( H& v9 i+ F+ V 
6 |  O1 D. J: L9 d& M% Y. n2 m 
提升人员能力也是提升员工效率的一种方法,能够有效改善部门之间的沟通问题,减少矛盾。( ~' D* @0 m1 v" f# s! d1 o 
 
0 P! K! K- I) _  L) @- P' H 
7 ?( f/ v" @& o, ^4 F; ^. f2 T$ i |   
 
 
 
 |