|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
为什么要提高研发效能,因为技术本身是为业务服务的,产品的价值体现在业务上,技术的所有价值最终都要通过业务结果来呈现,我们的根本目的是帮助业务成功,促进业务腾飞。
\4 T0 t/ p3 L; X' c" y* V$ f0 Z) l2 ?9 K$ Q
那技术就不重要了吗!重要,因为所有的业务价值最终都要通过软件服务来变现,两者相辅相成,互相促进。
& N6 K1 F$ K: H" Z3 k4 O$ q2 p& p
那如何提高研发效能?
0 z8 o: E" W& M+ J, j9 a: {. W- y& y- T: ?5 j5 g# m
一个项目从立项到上线涉及到角色包含客户、运营、客服、产品、技术、测试。+ a8 i8 n! x4 r
4 m. D/ |( C% S8 Z2 N( s; @) W; O 涉及到关键流程如下。
$ c$ X9 T6 T7 e' F: I" K
+ m! U( N0 K+ L J& l需求收集,运营/老板 -> 产品,关键产出:想法/idea/业务需求文档# I( I7 V" S# k, Z) T; U
5 H- m' ^9 y) F- q2 S: V% o' K; [; C
需求评审,产品 -> 运营/老板/技术,关键产出:产品需求文档6 t) F9 m2 [2 s q
5 f. ]9 Z, o4 U需求内部评审,产品 -> 运营/老板/技术/若干项目负责人,关键产出:产品需求文档
- h+ _$ {$ _4 T' O% o+ |( H, P; P& _) ?. r! O
需求宣讲,产品 -> 研发/测试,关键产出:大家对于问题,目标,需求的理解达成一致8 y. V# h' l |6 u
' ?/ O( h1 }! O# x# i( ~% k" k
技术方案评审,研发 -> 产品/测试,关键产出:技术架构/代码
$ Q5 c; }1 H% \" c) `9 c. d8 j( \ y( B
& a* v! e- z d2 V测试用例评审,测试 -> 研发/产品,关键产出:测试用例/需求逻辑测试case全覆盖
0 c; i* o3 ?" A3 \) {, A2 ]# L) [' Z* i0 O9 ]" I
系统上线,产品/研发/测试 -> 客户2 o3 E! L2 d& Q _2 S: Y5 u
; |" H Q6 P, F& M9 Y- L6 v$ c需求复盘,客户->运营/老板/产品/技术,关键产出:需求客户满意度
1 I$ o, }4 D; @9 I& m4 L$ @/ b1 ^
! q8 S6 z( Y+ `+ |- t* K5 q. f1 j z2 J3 V9 M3 L
Do things right还是Do right things?
" Y3 I- `/ `+ C/ i6 z4 l
9 G+ m+ e0 u7 e
2 b; o5 M6 J4 o6 |9 p+ f接下来主要从需求管理,研发,测试三个维度描述,如何Do right things。
8 l; o- v `1 F% X7 J4 M4 J. f$ \. t4 U8 y' l: Y" y7 P
0 @1 A0 R: X% q6 x! {& C0 }
1.需求管理) L- Y6 O0 Z7 L/ q" b+ U1 P
5 Y$ B. u$ k- J+ c: D G& i( E团队什么时候对需求的理解最充分、最多?项目结束的时候!但项目中的绝大部分决策是什么时间做出的呢?项目开始的时候,这就导致了一个悖论,我们在最无知的时刻,做出了最重要而且是绝大部分决策,并把它作为随后执行的依据。
6 S( p8 }. S2 \. r" @: S4 q1 ~9 ~# n( D; g; T- _# p) i& a
这个需求是运营提的,做!这个需求是老板提的,做!
: c! F6 [( k% X
7 N% }% S5 `; v" B1 W为什么要提这个需求,这个需求的目的是什么,有什么价值,凭什么这样做可以达到目标,哪些数据可以证明,上线后如何衡量此需求真实效果。
' x, ~. U: Q$ T3 {# T. D
( N2 s9 A; a7 C* }4 N2 Q我们不是乙方外包公司,是和老板站在一条船上的人,有理由有义务搞清楚老板为什么要提这个需求,需求背景是什么,为了解决什么问题,达到什么既定目标,目标结果如何衡量,尝试下”5问法“。/ D- \& Z6 I d% ]
+ M) K" |* Q$ j/ f6 I# e) ~3 p0 O
3 [& E# W7 H( F# E需求是泥沙俱下,如果不能正确的分析需求,把握需求的本质,就会沉浸在永无止境的接收需求状态,机械的干活却没有结果。9 ]8 A' N* |% Y5 d3 n/ S0 i
) H5 d; P2 q( B- M我们是有思想的手艺人,不是等待老板投食的宠物。
, c" j# T6 Z; R8 R7 X4 W9 J2 |
# f" z/ R( z3 O, Z( x
$ V# |3 C/ @% ~% N: {$ T7 |2 d运营/老板讲解需求的时候,主要是和产品对接,研发、测试不知情不了解。这就会导致一定的信息误差,最后评审需求的时候,研发、测试是站在产品需求文档的角度考虑问题。如果这个文档自身就和业务的期望有差别呢?( c" R; E' o3 u; [
) y; x. Q: V, `7 l K" m+ V我们应该以终为始,聚焦目标,需求前置。在和运营/老板最终需求方案终版的过程中,就应该拉着技术进来,提前介入,预见未来。3 O6 E$ U" j$ y3 A0 S0 _
( F6 j7 \" E" t: w$ G0 O* J7 @& p
在很多人的思维里,认为需求评审就是把需求跟开发详细过一遍,就进入开发阶段。
$ _- o4 ^( U4 F2 j: Q9 ~1 }! }8 d: v- s% t
严格来讲,这会导致挺多问题,需求逻辑有缺陷,打回重做,浪费大家时间,经常如此造成大家对你个人能力的质疑。
& Q4 u7 W" n) L- n
# M4 q% J# ?! w7 w9 f所以内部评审是有必要也非常重要的一个环节,但是很多产品不重视这个环节,甚至还有很多产品经理并不知道有内部评审这个环节的存在。
" E& B$ b* ]- x2 H
2 z$ k0 _! l5 H2 y1 G, D6 } { 产品不需要为单次故障负责,但全年故障数量纳入kpi考核之中,只有屁股在一起,大家才能在一个战壕里更好的思考问题。
' e2 t/ J0 z4 g2 i1 \ ~$ E N2 K7 s, z2 J& x2 {: C, C
2.研发环节* j# }2 ~' A" J2 A9 V8 A
; o) L H6 G5 y) m* L; ~) Q' G# q
根据二八定律,20%的需求决定了我们80%的业务价值,它决定了我们的成就,客户的直接反馈,市场竞争力。$ A; I7 O: g4 P3 z: \- b
3 U: y' D: h# ^9 D5 W“持续快速交付价值的能力“,这个价值指的是需求的多寡吗?
$ \# O" F9 ?& }6 x5 }- k A2 M+ z* f A2 }) U3 ], T$ @
我们应该聚焦于单位时间内创造价值的效率,这个价值指的是需求上线后对于用户的实际价值。用户价值的流动串起整个系统,促进整体优化的不二选择。为了提高价值的流动效率,组织就必须关注用户价值在系统中端到端的流动过程,改进整个系统,而不仅仅是局部环节。
Z+ R; J' d* y q4 P
( x5 c# R' |+ N" `+ u所以对于大需求,批量性的需求,最好打散拆开,以2-4周作为研发周期,快速迭代,不断打磨优化上线,给予业务以反馈。/ O6 v' ?) l r; l! E7 a9 Q
, S& f& Q; g- ~! M7 ~8 X不要给业务surprise,要让业务感知到价值在流动,需求在流动,就像巴普洛夫的狗一样,这群人靠谱,值得信任。/ E9 W; l1 ~# ~" n4 b: }+ T
3 [# `; B& m/ r* ?3 o
# v2 J" I; `5 X如何保障价值流动的过程质量呢,把交付质量内内建到开发过程中,而不是依赖最后环节的测试。" y$ ?& S* ?0 D' w! X
X1 {8 x9 |6 G8 y( _$ B$ x首先要保证基本的单元测试,其覆盖率至少到50%,覆盖主流程,保证冒烟case是ok的。9 `$ N! y* R+ }* j+ s
% R, j8 }8 p. P% `- h$ m代码改动提交触发集成测试,编译是否出错,代码静态分析,单元测试覆盖率报告。# N- O; v5 I& ^) L+ Z3 k+ M
9 s' K4 I' f, D5 W) F
/ u/ T% f1 x7 {4 i5 p# S8 u& V; y每月度工程质量梳理,代码缺陷,产品逻辑缺陷梳理,要让光照亮了问题所在,把问题暴露出来,暴露出来的问题,惦记在心里的问题,就不能在叫问题了,叫待优化需求。% h8 v T, o6 T ^' x# ]
' O2 j6 z& ]6 O$ d& r 研发对于需求要有一定的预见能力,做好适当的扩展。每半年各系统负责人串讲自己所负责系统设计架构,并提出系统最丑陋的三个地方,开发的时间久了,必然会有灰尘和垃圾,如果一个劲儿堆积需求,垃圾越级越厚,就会积重难返。打扫干净好接客。
4 d* N" P; a5 c) [2 e. M( F4 k% s: Z3 ^
, |8 L+ u) ^( }" t5 ], |; C' D
3.测试环节 A; Z/ h) c$ |# o
* K. p4 `! o3 `) n$ v$ A, L4 {
测试用例评审前置,研发、产品一起参与,把所有的case全部覆盖一遍,对于流程逻辑,直接现场解决,开发在过case的时候,也会不断考虑如何编写更健壮的代码,毕竟我们的目标是提高服务质量,全年无故障,而不是为了给测试冲业绩,比拼bug数量多少。
& |3 H# }0 n t9 J/ P3 ^$ E! h3 @8 U& n
单元测试,集成测试,接口测试,开发环境,测试环境的搭建,上线前checklist检查点。
8 n8 d* J D$ m Y [( A$ ^% e8 Z7 F. \& ]& m$ z; C
测试用例的评审,沉淀,积累,不同测试等级下需覆盖功能范围和测试用例。
' [! O7 \2 z& H* A6 F. X$ @" h" s% m$ ?2 @
' m# d2 ?4 ~: J0 N% Y
综上1 C7 l# [& u: D) v! J
4 Q, p# C( y1 V! l/ h
横截面主要主要聚焦于角色内,产品:搞清楚问题所在,明确的,清晰的,无歧义的,达成一致的需求;研发:代码的健壮性、可维护性、可扩展性;
- H4 N! R7 Y& q8 i$ {% L( s. a j' f: }% {0 S' H, r4 Z
测试:多维度的测试用例,测试系统的方方面面。- _1 H5 N( M; D7 d+ T% s/ e
* u2 C2 P) u9 x3 S纵截面,共性就是组织与制度问题、能力问题、沟通问题、选用育留问题。4 H; p+ _; u1 u
. l. k1 k$ Z% x6 |专业培训不足是导致研发效率未达预期的远因之一,既然如此,我们就要在平时加强员工各方面的培训。2 p& ]8 t. U9 P) a6 {, J
, F5 k5 v" f3 P( B p
提升人员能力也是提升员工效率的一种方法,能够有效改善部门之间的沟通问题,减少矛盾。3 b& A' L9 q* f7 x* c
6 M$ y: A) N M" b4 E1 n6 L; w: f# q9 T
|
|