快而脏的代码真的能更快推向市场吗?


著名敏捷专家Allen Holub认为:编写“快速而肮脏”的废代码可以使您更快地推向市场是一个神话。至少我从未见过这项工作。最快的上市方式是编写高质量的,经过良好测试的代码。马丁福勒称这种“快而脏”代码是鲁莽导致的债务reckless debt.
什么是足够好、高质量的代码?他认为TDD+Mob结对编程就可以实现。
 
反方意见:
我却见到过这种“快而脏”代码并完成了它们。我们花了不到一个月的时间就推向市场第一个版本。它使我们获得了很多业务和市场反馈。
 
我曾经为一家拥有多种产品的供应商工作,在成立初期,我曾根据“哪个团队首先将他们的产品推向市场”给予团队奖金。 20年后,产品中仍然存在许多“快而脏”代码。
  
Allen补充说:我曾经两次担任CTO,两次都是为预算有限的初创公司而设计的。我负担不起人们编写拙劣的代码。第一次需要更改某些东西时,它总是浪费很多时间。
 
程序员认为他们的工作是使计算机起作用,而不是使计算机起其他作用,这是相当有区别的, “编写易于更改的代码”比“编写特定的的网络表单的代码”难得多。
 
banq评:快而脏的代码只要能工作,有可能程序员都不知道它是如何工作,只要能运行起来就已经很费力气了,而在此基础上要求他们编写易于更改的代码确实很难,但是这种观点是将两者对立起来,易于更改的代码重点不是在代码上,而是易于更改,当你从零开始编码,首要任务是代码累加,不断追加代码或删除代码,但是不修改代码。
删除一条微服务代码再重新创建新的微服务代码,无需打开原有代码去修改,如同你发微博发朋友圈一样,微博发出以后,你只能删除,不能修改它,你下了订单以后,只能删除订单,不能修改订单,你无法因为订单中多购买一个商品,想在订单里删除这条商品条目,你无法做到,你只能重新下单,这个新的订单不包含你要删除的商品。
对待代码也是如此,只有新增追加或删除,没有打开进入内部修改它,这代码很大,因为需要你代码内部设计得易于你修改它,这很不容易。这是人们对”易于修改的代码“的误解,也是对技术负债的误解。
因此,编写快而脏代码更迅速将产品推向市场是可能的,只要采取追加和删除两种方式对待代码,然后让其运行起来即可。