代码优先 or 产品优先

本文探讨了两种类型的程序员:代码优先和产品优先。代码优先者专注于代码的完美,而产品优先者更关注产品的实际效果。作者认为,尽管代码质量重要,但应以产品为导向,因为好的产品往往能带来更好的代码。开发速度和质量应并重,优秀的程序员懂得在两者间取得平衡。
摘要由CSDN通过智能技术生成

转载: https://thezbook.com/code-first-vs-product-first/

  • 作者
    扎克·劳埃德
    目前是Warp的创始人兼首席执行官,我们正在构建一个基于 Rust 的现代终端。我曾经是 Google 的首席工程师,负责管理 Google Sheets 团队。谷歌之后,我是风险投资支持的创业公司 SelfMade 的联合创始人和首席技术官,也是 TIME 的临时首席技术官。



“代码优先”程序员与“产品优先”程序员。

程序员可以分成两种:一种程序员更关心代码,另一种程序员更关心产品。

我称前者为“代码优先”程序员,后者为“产品优先”程序员。


代码优先

“代码优先”程序员痴迷于代码的架构、关注使用什么工具、库和语言,有多少测试覆盖率,诸如此类的问题。

如果达到完美的代码抽象,或者使用了最新的语言功能,再或者删除了用不到的代码,“代码优先”程序员就会很兴奋。他们真的喜欢他们编写的代码,在他们眼里,代码本身就是目的。


产品优先

“产品优先”程序员也关心代码,但只是把它作为达到目的的一种手段。对于他们来说,代码是建筑物的脚手架和钢梁,而不是最终产品。最终产品是产品本身,而不是代码。

他们认为,重要的是,产品是不是真正解决了问题?每样东西是否正常工作?人们喜欢用这个产品吗?“产品优先”程序员喜欢构建和发布,喜欢看到用户使用他们构建的东西。在他们眼中,产品才是目的。


分析

大型软件公司里面,你会遇到很多“代码优先”程序员。他们看重代码是否合乎规范,有没有拼写错误,是不是意大利面条式的代码,会不会带来技术债务。如果达不到代码审核的严谨标准,就会要求重构代码。

我总是很惊讶地发现,有那么多程序员认为,“代码优先”就是他们追求的目标。对于项目原型,他们会问:“单元测试覆盖率怎么样?” 、“有没有用到热门的新技术 X?”、“会带来很多技术债务吗?”。

可是,我们现在做的只是项目的原型,迟早会重写所有代码,所以上面的这些问题,在这个阶段是无关紧要的。因为我们甚至还没有认定,现在的代码就是解决问题的正确方法。

“代码优先”程序员对编程有一个根本的误解。要知道,编程是为用户解决问题,而不是为了编写出漂亮的代码。重要的是代码能够工作,而不是代码的外观。

这是否意味着,我鼓励大家编写糟糕的代码?不在乎使用什么技术或软件?

绝对不是。

我很在乎代码!我只是认为,我们先要保证方向正确,因为我相信,只要保证代码能够解决问题,那么通过更好的产品,最终可以获得更好的代码。反过来就不成立,更好的代码未必会获得更好的产品。

我对代码的评判标准是: 如果产品不好用,代码也不会好。 好的代码只有在它产生了一个行得通的产品时才存在。


开发速度 与 开发质量

我最近有一位我正在管理的工程师问我他的代码如何。我问了两个问题:“这个功能效果好吗?” “你开发的很快吗?” 我说:“这对我来说很重要,”。

通常,如果这两个问题的答案是肯定的,那么很可能(尽管不确定)代码实际上非常好,因为好的产品通常意味着好的代码。

这里没有零和游戏:你要争取开发质量与开发速度共存
在这里插入图片描述

开发质量 = 过度设计的代码和过时的产品
开发速度 = 草率的代码和错误的产品
开发质量+开发速度 = 良好的代码和高质量的产品

我认识的最好的程序员是产品优先,但实际上比编码优先的程序员拥有更多的编码知识。他们知道何时使用电锯、手锯和凿子。
当你需要真正做正确的事情时(通常是深入在堆栈问题中),这时你需要快速编写,那什么时候最好只写一个普通的 for 循环而不是一个自定义的迭代器?这些选择和权衡是成为一名优秀程序员的全部意义所在,而最终的反馈机制是产品运行情况如何。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值