网站首页 > 毕业设计> 文章内容

思码逸任晶磊:如何让代码管理写代码的?

※发布时间:2020-6-23 18:27:02   ※发布作者:habao   ※出自何处: 

  这不仅体现在动辄百万的薪资上,也体现在婚恋市场的地位,“人傻钱多不回家,对象当找程序员”。人们对这个职业形成了一种刻板印象,似乎每个程序员都是高智商、低情商的天才,他们整日穿着格子衫,坐在电脑前打天下。

  的确,写代码是一份很难被量化的工作,很多公司对程序员考核的方式是写代码的行数。但只会让程序冗余、故障排除复杂,就像比尔盖茨说的那样:用代码行数来衡量编程的进度,就如同用重量来衡量飞机的制造进度。

  当然,也有公司用bug出现率来评估程序员,这看似合理,但在实际操作中,bug率可能不仅和程序员有关,也和需求方有关,譬如PM缺乏判断能力,提出的需求不够简洁等等。

  大学计算机科学与技术博士任晶磊尝试解决这个问题。2018年,他创立了中国领先的深度代码分析公司思码逸Merico,试图用一种更轻便的方式,提高对开发者度量的准确率。

  我是任晶磊,2016年从计算机系博士毕业,之前我在CMU和Stanford都待了一段时间,做一些合作的研究项目。那个阶段我们主要做软件系统,也给开源社区贡献了很多代码,之后我加入了微软研究研究院。2018年底我决定出来创业,和现在的联合创始人殷和政、Roland一起创建了思码逸这家公司。简单来说,思码逸就是通过深度代码分析技术,主要包括程序分析和人工智能,来量化程序员的工作。量化分析的结果主要服务两类客户,一类是企业,帮助技术管理者和开发团队去提升研发效能,另一类是社区,帮助社区呈现程序员的贡献,也包括价值分配,比如开源项目的捐款分配。

  有句话这样说,程序员的工作既像工人也像作家,要搬砖也需要灵感——量化程序员的工作效能是很难的。为什么我们还要对开发者和程序员进行这样的工作量化?您是怎么发现这个机会的?

  这个问题可能永远都没有一个绝对的答案。应该说编程既有艺术的一面,也有工程的一面。从最早软件危机开始,到创立软件工程这门学科,可以说是人们认识到编程里面工程的一面,这也是整个行业认知的一次跃升,所以我们认为编程很大程度上来说是一门工程,需要精细化的管理去提升它的效能和质量。

  一个是2016年我在微软研究院工作时,Facebook采用了统计代码行数的方式来决定金,这种简单的办法一方面说明大家对于量化程序员的工作有需求,另一方面,这种做法可能并不适用于其他团队,这件事情了我,我们既然做程序分析,能不能通过一些更智能和深度分析的方式来测量程序员的工作。

  另外也是因为我自己经历过的痛点。我们自己这么多年来一直在社区,贡献过很多的开源代码。现在很多开源项目其实能收到一些捐款,但是怎么合理分配这个捐款一直是一个痛点。所以我们也想去解决这个问题,让程序员的智力获得长期的收益,从而促进整个开源社区的繁荣,特别是今天有92%的应用都依赖于开源软件。两个因素促使我们最早去研究如何量化程序员的工作。Lily:

  过去也有办法。一类是像Facebook,简单地依据代梦见屎沾身码行数来判断,但这显然不公平,而且往往会引发一些滥竽充数的针对性行为。另外一类就是靠人际之间的相互评价,用汇报和PPT的形式看你做得好不好,但这里面有太多个人主观因素存在。所以我们希望有一个更透明的数据驱动的方式来做这些事情。而且工作过程中可能有人干得多说得少,也有人是干得少说得多,我们希望帮助贡献多的程序员把他们的贡献显露出来。Lily:

  从最宏观的层面来说,全球范围内有两三千万可追溯到的程序员,还不包括不在册的兴趣爱好者,这个庞大的群体在今天的社会里扮演着越来越重要的角色。在过去二三十年里,科技行业,尤其是以代码为基础的科技行业,对整个世界的信息基础设施的建设越来越重要。但是无论是从管理者的角度还是开发者自己的角度来看,他们的工作都不容易被量化。

  因为一个工程师工作的量化并不应该取决于这个产品的好和坏。比如你看到两幢楼,一幢楼特别漂亮,一幢楼设计得很丑,你天然会觉得漂亮的楼更好。但问题是这不反映工程师,也就是这幢楼的施工队的水准,因为施工队负责的是钢筋水泥,是水、电、煤的布局走线,但这些是从表面看不到的。

  这就和大家今天看互联网产品一样,比如一个产品的前端交互界面和瀑布流做得很好,但这并不直接对应每一个开发工程师的工作究竟产生了多大的价值。所以对应到如何量化施工队在后台的工作,这其实是需要一套工具的。然而目前来说,这个痛点还没有特别好的解决方法。

  因此市场上急需这样一套工具,不只是能够帮助开发决策者和开源社区,也包括每一个的开发者自己,去更好地量化自己的工作,然后提升团队或者个人的战斗力。

  那个论文其实就是我们研发的基本框架和最基础的技术,也是我们产品到解决方案的一个支撑,这个关系就像当年谷歌的两个创始人发表Page Rank一样,从那个论文开始,一直到打造出今天谷歌搜索引擎这个产品,以及整个商业帝国。Lily:

  两个出发点,一个是听了Facebook的故事之后,我们觉得应该有更好的方式去做这件事,第二就是我们其实也想为开源社区做一些贡献。我当年也想过,我自己能否全职拥抱开源,去做这些开源的项目,但这就涉及到很多关于资助和分配的事情。这两点是促使我去研究这个方向的主要原因。Lily:

  从企业端来说,我们会给企业客户提供三方面的价值点,也就是生产力、质量和人才。首先,生产力方面,我们的数据分析能够体现出个人、团队或者部门在过去一段时间内的生产率状况,这个包括绝对值、项目进度,以及研发稳定性等等。

  第二,质量方面我们会看两个层面,一个就是代码本身,我们会通过静态检查发现代码里存在的问题。另外我们还会量化一些过去不好量化的工程质量指标,包括复用度、模块性等等,我们能通过量化这些指标来帮助公司改进和提升。

  打个比方,如果你也健身,就会发现一个有趣的现象。一个人在公园里跑步很难下去,因为你不知道自己跑了多远,配速怎么样,就会觉得自己很累。为什么需要跑步机?因为跑步机能让你知道当时的配速,你跑了多少公里,你的目标是多少,这样就会更容易,并且达到那个目标。因为在每一个时间点,你都知道自己的不足在哪里,该怎么去提高。

  对开发者而言,Merico就是这样一个类似的工具。它不单有质检和功劳分配的作用,它也能提供一段时间内的反馈报告。这对开发者个人来说,就像一个健身教练或者健身设备给你提供实时的反馈,让你看到自己今天的不足,在第二天就可以更好地进行价值创造。

  对于个人开发者来说,与其把Merico看作一个或者管理工具,它其实更多是一个赋能产品,帮助开发者更透亮地看到自己的缺点,提升自己,我觉得这是这个产品给他们带来的价值。

  对,我们的工具在开发者群体当中的反响其实非常好,大家不会,而是拍手称快。过去很多程序员做了工作但无法通过量化的方式体现他们的功劳,所以我们这个工具能帮助那些干得多、说得少的人,更好地体现自己工作的价值。

  从整个团队来说,我们可以提升整个团队的研发效能和精细化管理的水平。过去老板可能会依据工时来判断员工的工作饱和度,这就导致很多程序员的工作时间非常长。现在有新的工具能够让管理者从更好的角度去看大家的产出,这对开发者个体和团队来说都是一件能提高效率的事情。Lily:

  以滴滴为例。滴滴代表一类客户:本身规模比较大,大概有两三千人规模的程序员团队,有自己的效能团队,有一些基本的数据分析的能力。但困惑之处在于,如果他们想深入到分析里,也会遇到非常多技术障碍,比如如何更深地理解代码本身?这时候企业就很需要像我们这样的公司来提供数据的底座,有了这个底座,才能分析出满足他们业务的结果。

  成立两年,思码逸Merico的产品已经在字节跳动、滴滴、长亭、自如等各个行业的标杆企业里落地使用。想见在程序员绩效管理,或者服务软件开发者人群这个领域,还有大量的衍生机会。罗超,您怎么看这个商业机会?罗超:

  我觉得这是个很大的商业机会,我理解有三类人群在这其中扮演着非常重要的角色。第一类人群是技术管理者,对他们来说,这其实是一个管理工具,也是一个绩效提升的帮手。第二类人群就是开发者自己,他们依然有持续提升自己的,但持续提升需要几个重要因素,一是可量化的结果,二是实时且有价值的反馈,而这恰恰是Merico这个工具可以提供的。第三类人群就是开源生态,开源生态包含了项目的发起人,以及参与过程中所有的贡献者。

  开源社区有两个核心。第一是价值的量化,第二是利益和捐赠的分配。我们不能完全要求每一个人发挥白求恩式的去为开源社区做贡献,基于这个分配工具,我们可以用非常清晰透明的机制来衡量每个人的贡献,然后根据贡献来分配捐赠。所以我认为Merico的工具对这三类人可以产生非常大的价值。

  另外,我之所以对晶磊和Merico有很高的期许,一个很重要的原因是,我觉得它可以在茫茫人海里挖掘出更多有亮点的人才。在中国的创业历史里,大家会记住很多明星CEO、明星CTO,但中国或者世界的互联网世界并不单纯只是这些明星人物贡献出来的,还有每个项目背后许许多多优秀的前端、后端代码贡献者,我们看不到他们,也没有人记得他们。但我觉得这不对,而Merico这样的工具就可以帮助我们去挖掘出这些人,记录下他们的贡献。

  我很喜欢一部叫《Moneyball》(《点球成金》)的电影,电影里Brad Pitt扮演了一个叫Billy的棒球教练, Billy带领的球队在和纽约洋基队的比赛里惨败,球队里的三名明星球员也被对方挖走了。但这个教练觉得运动不应该只是基于一两个明星球员,普通球员通过训练也能打造出一支冠军球队,所以他和数据分析师合作,通过量化和数学建模的方式,统计大量数据。包括判断球员应该以多快的速度响应,监测每个球员的反应速度和冲刺速度等等数据。通过这样的量化分析,他挖掘出非常多平民球员,后来这些球员慢慢登上更大的赛场,最终他带领的球队在新赛季获得了冠军。

  尽管没有一位明星球员,但Billy用这样的方式激发出了团队的战斗力。我觉得今天的开发者世界也需要这样的。一个大项目的成功,除了明星leader,他的背后还有太多人,而这些人是可以被量化工具挖掘出来的,Merico做的这件事就是一件很伟大的事情。

  目前这个产品线才刚刚起步,整体来说我们还是先从企业端入手。给开源社区提供服务的最基本的方式,就是帮助程序员、帮助项目去分钱。我们会提供一个智能捐赠页面,捐赠者可以把钱捐赠到这个平台。每月月底,平台会分析每个程序员的贡献,根据分析结果相应地分给每位程序员。

  就像很多VC投资的时候会看人,我们选择合作伙伴的时候,其实也同样是会看人的。和不同的人聊过之后,你会发现有些人能够抓住主要矛盾,能看到很多问题的实质,能够知道哪些是必须的,哪些不是。其实我们做数据分析也是同样的价值观和目的,我们需要从各种噪音和数据中提取那些最有价值的东西,所以和罗超聊过之后,最大的感受就是他在这方面的能力非常强,他能很快看到事情的本质。

  您本人和您的团队其实都是学术派出身,现在在公司的管理和运营过程中,有没有遇到什么有趣的挑战或者有趣的故事可以和我们分享?任晶磊:

  我觉得大家可能对学术派有一些预设的想法,但其实一个博士生的训练常全面的,从某种意义上来说,写Paper(论文)和写BP(商业计划书)有很多相通的地方。首先要定义一个非常有价值的问题,然后提出一个解决方案,最后在Paper里通过做实验去验证这个方案。这其实和创业有很多共通之处,而且作为一个博士,也要去系统地讲自己的想法,这些训练其实都是商业世界里需要的能力。所以我认为一个博士的训练其实为创业打了很好的基础。

  当然回到这个问题,每个人有不同的背景,他一定会有可能被忽略的短板。比如在某些产品设计上,我们有时候会高估用户对某些概念或者图表的接受和理解能力,所以我们需要不断地简化,把信息进行分层,然后让用户以最简单的方式去消费数据。这就涉及到产品设计,所以我们也着重扩充了产品方面的能力。

  原来大家造楼、造桥、修,最怕的是什么?是豆腐渣工程。因为负责团队也许会偷工减料,表面一层铺得特别好,底下全是豆腐渣,这是过去基建中会遇到的问题。同样地,新基建是大数据、智慧充电、工业互联网等等,表面工作可以做得很优秀,但后台到底怎么样?算法能不能在每一个环节实现最优化?数据获取和传输协议是不是最好的?这些问题才是构建新基建的基础,而这些问题光看表面的UI是看不到的。

  基建的原材料是钢筋、水泥、石灰,而新基建的基础其实就是代码。所以对代码的检测其实要细到每一个项目,每一个项目都包含无数行代码,我们如何衡量它的价值、它的贡献、它的稳定程度呢?这些都得通过代码分析工具去完成。

  所以,如果未来有越来越多的团队在新基建的各个领域成为施工队,我觉得这些团队都应该考虑使用Merico。因为作为一个团队的管理者,作为新基建的投资方,他也希望这些项目能真正扎扎实实地帮助到新基建,而这个工具在该领域好可以产生价值。任晶磊:

  是的,新基建其实需要大量的开发者投入其中,可能需要工作多年,搭建起这些新的基础设施,在这个过程中,我们希望通过数据分析,提升管理效能,帮助这些工程以最高效、最高质量的标准去完成。Lily:

  所以未来我们还有很多计划把Merico的产品向外延伸,或者是产品的迭代,再或者我们也可以把它放到新基建公司对软件工程师的管理中。任晶磊:

  对的,软件工程师这个群体还常扁平的,不论是哪个国家、哪个公司,大部分的开发行为其实都有内在的规律,软件工程这门学科其实是适用于不同行业的。Lily:

  过去大家觉得软件工程是一个独特的行业,但其实它无处不在,比如我们的写字楼的门禁系统,一定也有代码系统。所以未来这可能会变成一个人人都需要掌握的技能。任晶磊:

  没错,也许未来很多行业里,人们的行为也慢慢地代码化或者数字化了,这其中我们确实可能有更多分析的空间。有这样一个场景,就是组织程序员活动的时候用代码控制系统来记录大家的工作内容,大家把自己的活动记录放到代码库里,尽管它不是传统意义上的代码库,但它确实形成了一个代码库。Lily:

  确实,比如过去我妈妈上班的时候,她用笔来记录大家每天的工作内容;现在我们用Excel来追溯每个人的工作;未来可能是用代码数据来追溯和量化每个人的工作,这非常有趣。那如果未来还有人想在这个领域创业,您觉得哪些方向还有机会?罗超:

  我相信对于任何一个人群,他们的需求都是多样化的,可以服务或满足这些需求的方向也很多。大家可以不单纯从工作职业的层面去思考,比如我们看到一个很有趣的现象,美国硅谷的工程师、开发者,他们除了自己的工作之外,往往有非常多的兴趣爱好——玩单板、滑雪、冲浪等等。国内的程序员也有很多个人爱好,如果现在让我拍脑袋想,我觉得第一个需求可能是程序员相亲,这可能会是一个很重要的细分赛道,因为程序员的接触面比较窄,兴趣又比较集中于某个特定领域,程序员之间的话题相亲有可能是一个很好的服务点。总之,我相信想要服务好这个人群,能做的事情其实是很多的。

  

相关阅读
  • 没有资料