对于工程师来说code只要能用,就是好code吗

描述

读者问题:提升研发效率最有效的方法有哪些?

首先,这个问题的前提是你敢于质疑你的研发方法。如果发现团队长时间无法突破研发瓶颈,很可能是因为研发的方法不对。

团队的管理者应时常审视团队使用的研发策略,思考有没有更好的方法,绝不能固守常态。

特别是在自动驾驶领域,各种研发策略日新月异,管理者如果跟不上节奏,很快就会被行业淘汰。

研发策略确定之后,就是效率的问题了。

个人认为,研发的效率主要由两个方面决定。一方面是工程师们是否有engineering excellence,即工程的卓越性,一方面是管理者是否搭建支持工程卓越性的文化与制度。

狭义上来讲,工程卓越性是指代码的流程是否足够高效,足够严谨,从而保证代码的质量。从build,到code review,到test,到release,每一环都不可忽视。

团队一旦决定更新研发策略,整个代码流程也要随之变动,代码很可能在这个过程中越来越杂乱无章。因此,code refactoring也需要时常进行,让代码禁得住时间的考验。工程师们需要时常问自己以下这些问题。

我的code能让公司的新员工看懂吗?

我的文档里写的话一般人看得懂吗?术语多吗?还是,我根本就没有为了这段代码写过任何文档?

我的这项测试是否合理?测试结果是否具有可重复性?

我是否严格遵守了公司的style guide?

我的code可以用在其他地方吗?容易被其他团队借鉴吗?

如果给我机会重新写一遍这段code,我会怎样写?

工程卓越性近年来尤为盛行。在成熟互联网公司往往比较受重视。在大公司,工程师数量庞大,更强调团队合作,所以更依赖工程卓越性。 而在小公司,速度往往更重要,code只要“能用”,就是好code。然而,日积月累,tech debt(技术负债)会越来越多,从而导致code质量成为研发的瓶颈。 这也是很多团队困惑的原因。明明所有人都在加班加点地研发,却始终进度缓慢。其实,问题不在于技术本身,而在于tech debt。 而我们明明知道有tech debt,却往往不做出任何改变,任其增长,导致团队陷于恶性循环之中。这是为什么? 著名的软件工程师Martin Fowler曾把tech debt归为了四个象限。团队的每一位成员都要定期用这个表审视自己的项目,看看是否有tech debt。

因此,公司需要从文化上鼓励团队做到工程卓越性。比如,如果团队赶时间,就要承担因为过于匆忙带来的后果。要么就给团队充足的时间去做,时间分配要合理。如果一个看似简单的项目却需要半年时间完成,团队领导者不可以一上来就去否定,而要先耐心了解背后的原因。 如果是一个全新的研发策略,团队往往会在开发过程中犯很多错误。团队领导者同样不可以一上来就去否定,而要鼓励团队分析错误的而原因,避免以后再犯。 另外,工程师们不愿意清理tech debt的一个原因是怕影响进度。公司可以计划出一月的时间,让所有团队一起清理tech debt,不要追进度,这样就可以保证工程师在没有压力的环境下清理tech debt。 除了code质量,工程卓越性也指团队的配套研发工具是否到位。搭建配套工具往往有几个目的:将研发流程自动化、让数据更容易提取并处理、让测试结果更凸显。 靠谱的公司会在配套工具上下重金,或是在公司内创立高效的团队去搭建工具,为研发工程师服务。工具团队如果掉了链子,研发团队的效率会受到直接影响。 欢迎大家阅读《落地之路》,学习更多研发团队管理经验。

责任编辑:xj  

原文标题:如何提升研发效率?Code质量如何影响研发?

文章出处:【微信公众号:自动驾驶说】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分