怎样才算高效能的软件研发

以下内容整理自第40期K+talk直播节目

对话嘉宾:

叶赫华——前京东首席架构师

董   越——DevOps专家/前阿里研发效能事业部架构师

软件团队或者做软件的公司,应该追求什么呢?对于每个企业或者团队会有不一样的答案。有的可能是要追求流量,有的是追求利润,有的是追求销量,甚至有的是追求改变世界。从这个层面上看,我们没法确定到底应该去追求哪个目标,但如果我们拆解一下,为了达成这些不同的目标,我们从软件开发的角度来说,应该追求什么呢?

其实就是把该做的事能够有效率的做出来,这个才是我们要追求的目标。对于这个追求,我们大体上把做软件开发全生命周期的人,划分成两部分人,一部分是公司老总、CEO、产品经理,他们的目标是负责把握方向的,他们需要定义产品长成什么样子;而另一部分人就是技术人员,他们需要来实现这个软件,让软件上线、运行。当然,这部分人也包括了开发人员、测试人员、运维人员等等。所以这两部分人,我们也可以分为:关于产品的定义侧和最后的实现侧。产品定义侧负责的是“做什么”,实现侧就是负责“怎么把它实现好”。

                                                                             — 1 

软件定义侧:有效率地找到有效的需求 

软件分成定义的人和实现的人,那定义那边是不是真的定义对了?其实这个事也是需要我们去探讨、去关注、去研究的一个事。

 

上图是网上多年前比较火热的图片,老板想的是A样子的,产品经理设计成B样子的,最后技术实现成C样子。一层一层的失真,不断的失真,最后面目全非了。然而这也是很多大型企业常有的一些弊病。

定义侧就是要比较迅速的找到正确的方向。因为如果你的速度慢下来了,那么别人先找到了,那企业可能就要遭到淘汰了。所以希望能够搞一些MVP这样的试点,然后尽快的能落地。从这个角度传导过来,如果希望实现侧这边能够实现点什么东西,就要赶快给反馈,后面好接着去调整。

研发效能最重要的一个价值点在于解决整个链路上不同角色之间的和谐共生。大家能够和谐共生使用正确的方法把事做对了,这样才能衍生出核心目标。因为大家来自于不同的公司,不同的背景,有资深的、有毕业生,能力参差不齐、意识形态也参差不齐,大家做事情是有意识形态的差别和工作习惯的差别,研发效能就是解决把这些不同角色放到一起,大家以一个共同的平面去开展工作,共同的语言开展工作,从而实现和谐共生。

IT层面的过程方法还是比较成熟的,只不过企业或者团队之间存在些许的差别,有些公司的历史比较短,然后迅速扩张。包括这两年虽然大的行业低迷,但还是有一些新兴行业存在快速增长,快速爆发。公司一年可能招了好几千人,大家来自于不同的文化背景,所以早期会乱一些。但是经过几年的沉淀,最终会找到一条适合自己的路,只不过是时间长短的问题。

                                                                  — 2 

定义侧与实现侧的协作:小步快跑

很多大公司做的比较优秀的一点,就是自上而下懂战略拆解。这也反映了整体公司的管理水平,从企业的经营战略到市场销售战略,从CTO层面或者技术VP层面会有一个明确的战略目标。战略目标确定后就可以拆解成各个部门的OKR,一直拆到最小的团队,每个月都会小过,每个季度都会大过,会形成重点战役。在整个过程中,研发效能应该是从CTO 这个体系自上而下去推动,因为CTO站位的视野才能有全局性的东西。对外、对产品方、对市场方,产品的走向应该通过哪些技术改进,原来3个月上1个版本,现在变成1个月上线1个版本,或者变成2个星期上线1个版本,通过这些指标的导向去激发各个一线团队,不管是研发的还是测试或者工具平台,大家有这种动力去做,有明确的带头人,给些时间,然后把关键信息拉齐、目标一致,很快就能完成产品的上线交付。

软件定义侧期待软件实现侧赶紧把最小可行性产品做出来,交给用户试用,越快越好。为什么呢?因为在单位时间内,能尝试的事情越多,总体来看,先找到正确方向的可能性就越大。假如有两个相互竞争的初创公司,它们在软件定义侧的水平都差不多,但是在软件实现侧的能力有差异,其中一个公司能在半年内尝试三种业务打法,另一个公司只能尝试一种业务打法,那么前者抢先摸到门道的可能性就大得多,先做出来的那个公司,会吃掉大部分市场份额。试错的成本越低,效率越高,成功的概率就越大。

因此,必须得小步快跑:软件定义侧只定义一小步,然后期待软件实现侧快跑。

前几年,大家都在遵守或者说在不断的学习西方的XMI、XP极限编程、敏捷,但是2015年之后国内也提了,因为中国有自己的方法论了。从国家的角度来说,近四五年比较流行的说法是企业数字化转型,其实也是一脉相承的。工程效能本身也是属于企业数字化转型的一部分,只不过是在研发体系内。现在企业从财务、经营、市场预判、战略分解等方向,也在做数字化。这是为什么呢?因为公司规模大,员工分布到全国各地甚至世界各地,企业的经营成本非常大,投入产出周期非常慢,所以一定要通过数字化的改革,去体现出每一笔钱的投入产出。数字化转型就是让企业的整个经营数字化、可度量、可视化,跟研发效能思路上一模一样。

那些优秀企业的高管,一定是有正能量、有正气的。做企业的效能提升、组织文化能力建设等方方面面,都要求管理者尤其高管要有正气,要有不断求变、不断与时俱进、向行业最先进的公司去学习的动力,而不是墨守成规或者说出现了一些问题临时抱佛脚。高管不光要有正气,还要有勇气不断的改进,其实每一个从事过程改进的人,哪怕只是普通的一个开发人员都应该去努力,去不断的寻求更好的解决办法。每一个人都应该追求主观能动性,你需要努力把这个世界建的更好,至少把周围的这个工作的方式变得更好,这是每一个人的责任。

所以万事万物都相通,不管是不是IT,其实都大同小异,最终都是要去考虑应该去做什么事情才对,那么这个事情本身又是需要探寻和摸索的过程,而我们又希望这个摸寻和探索,能够尽快的出效果。

                                                                         — 3 

软件定义侧:四个象限的追求

在软件实现侧,开发、测试、运维等角色一起协作,把软件真的做出来,并且在生产环境跑起来,让用户可以用起来。对实现侧,通常我们说,既要效率也要质量。然而这句话暗藏玄机,让我们来仔细分析一下。

当我们谈质量的时候,可以分成两块,一块是关于数量的,就是问题出现的量,但这个量不是纯粹的数字,也包括问题的严重程度。就像需求吞吐量也不只是说需求个数,也有大的需求和小的需求。所以当我们谈到质量的时候,不光是要看问题出现的量,还要看问题修复的时长。

之所以现在互联网产品好像没有那么追求质量了,是因为问题修复时长变短了。在传统软件开发中,当你发现一个问题,你想给它来个补丁,要刻上光盘再给人寄过去,再等人安装,会给客户造成很大的损失。而现在由于修复的非常快,整个质量看起来就相对比较好。所以质量其实也是要看数量和时间,数量就是出现问题的量有多少,时间就是修复问题的时长

我们可以画一个四象限图来对应看,这样能够比较完整的反映。实现侧的技术同学要做改进,每个人要发挥主观能动性,要做一个正直的人,那这些事情你究竟应该去改进什么?你的瞄准方向是要从这四个角度一起来分析。这四个象限随着时间在变化,如果为了图一时之快,欠了很多技术债,架构在腐化,导致将来效率会持续的降低,最终会影响到你的质量。所以这个图我们想再多说一点,就是你要长时间的来持续性的关注这4类,让它能够有可持续性的发展,兼顾短期和长期。由于软件产品经常是长期存在的、不断维护和发展的,软件实现侧在以上这四个方面的追求,也是要考虑可持续性。所以要小心架构腐化,不要欠下太多技术债。

                                                                              END

想要了解更多研发效能内容,请关注2023年即将于上海举办的K+全球软件研发行业创新峰会,届时叶赫华老师将作为“质量管理效能”专题出品人,带来《质量管理改进中标准化与落地实践的矛盾破解》主题演讲,感兴趣的小伙伴赶快扫码了解详情吧!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值