• 我的订阅
  • 科技

“一定把你的代码初稿,全部扔掉!”

类别:科技 发布时间:2023-08-09 19:01:00 来源:CSDN

编译 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

当软件团队要开始一个重大项目的时候,通常流程是以下这样的:

(1)产品经理与工程团队开会,提出下一个主要功能的描述,其中可能包括验收标准,也会有不同保真度的设计。

(2)然后,团队中的一名工程师会负责这项功能,将其分解为更小的任务并进行分工。他们将高级功能描述,转化为完成该功能所需完成的所有工作的完整列表。

(3)由于复杂性未知或需要进行更多调查,因此其中一些任务是开放式的,但它们也有时间限制。其他任务也会有一些估算时间。

(4)所有问题都会分配并加载到 Sprint 中。

(5)最终,完成功能并按时发布!

以上流程全部做完后,你会发现:所有工作都完成了,除了最后没有按时交付功能。

在开发新功能的过程中,我们总会不可避免地会遇到一些没有预料到的事:也许是数据库中的数据混乱,而我们没有意识到这一点,所以需要增加一项数据清理任务;也许是用户体验中有一部分比预想的要复杂,所以这项任务需要的时间比预估的要长;也许有一部分技术设计并不理想,我们不得不重做……

对于以上这些开发中的意外情况,我的真诚建议是:当你要开始一个重大项目时,让你团队中最好的工程师先写几天代码,然后再把这些代码初稿全部扔掉!

相信我,从长远来看,这绝对会节省你的时间:我们可以通过快速、脏乱的代码初稿来省去很多麻烦和工作,或许你也可以理解成原型设计。

“一定把你的代码初稿,全部扔掉!”

为什么要制作原型?

当你准备开发一个重要的新功能、产品或任何东西时,有一个显著特点就是:你不知道自己在做什么,而唯一知道自己在做什么的方法就是以前做过。

这就导致了一个问题:如果你不知道你在做什么,你要怎么知道哪里容易有问题?要怎么知道设计要求是什么?又该做出怎样的技术决定?

当然,其中有些问题可以从过往的经验中找到答案,但许多问题也存在未知数,是你无法预测的。

对于未知因素,没有什么比亲身探索更有说服力了,而这就是制作原型的作用所在。当你开发原型时,你可以掌握更多的信息,这样对你来说,第二次才是真正意义上的功能开发工作。例如,原型设计时你会发现数据库有点乱,或者知道了后端代码的某一部分很难扩展,这些问题就可以及时解决或纳入第二次的开发工作中。

怎样进行原型设计?

乍看之下,“原型设计”似乎有一种神秘感,但实际上它的制作方法非常简单。为了便于理解,接下来我会只谈一种原型设计方法,当然其他方法也可以使用。

我在工作中喜欢使用的原型设计流程是:对问题进行粗略的、高层次的描述,然后交给 1-2 名技术卓越的工程师去实现,给他们几天时间,看看他们的成果如何。

听起来是不是非常简单?而事实就是如此。一般情况下,我给工程师的指令不是“做出一个完整的功能”,而是“如果可以的话,做些东西来演示,并找出难点”。这也就是为什么我认为原型设计的工作,最好由经验更丰富的工程师来完成:他们行动迅速,能学到很多东西,并且拥有必要的背景知识,知道哪些部分最需要提前调查。

有几种方法可以将其融入团队流程:

▶ 组织黑客日!以我为例,我所在团队就经常举办这样的活动,这也是我们产品中主要功能的创意和原型的来源。当一个功能出现在黑客日上时,就意味着它已经被审核和拥有原型设计了。

▶ 为原型设计分配 Sprint 时间。如果你知道某项功能即将推出,你就可以抢先一步,在进入 Sprint 阶段前给别人时间做原型。我们团队在工作中也是这样做的(我最近就做了一个类似的原型,使我们在这个项目上节省一些时间)。

到目前为止,我们发现有原型的功能,其开发过程会更加顺畅,而没有经过原型设计的功能往往会遇到更多坎坷。其中有些障碍可能是由于功能的性质造成的(有些功能并不适合原型设计),但除此之外,大多数情况下进行原型设计都能有所帮助。有鉴于此,我一直在推动将原型设计作为我们正式流程的一部分,并得到了非常积极的反响。

真的要扔掉所有代码初稿吗?

是的,记得一定要全部扔掉!

原型开发完成后,不少人为了加快功能开发速度,觉得保留原型代码也不错,但事实上这样并不会加快功能开发速度,反而只会破坏原型开发。

如果你要保留代码,或者知道自己有可能要保留代码,这会彻底改变原型设计的初衷和心理状态,使开发过程变得更糟。具体来说,一旦你想要保留原型代码,你就会以“适当”的方式做事,这意味着要放慢速度——放入所有异常处理程序和日志语句,合理安排代码结构,在重构代码的同时进行适当的模块化——毕竟,这些代码会被重复使用。

而这些工作你只要做了,那么你在原型设计阶段所涉及的内容和学到的东西就会少很多。

另一种情况是,你 保留着这些代码,然后快速开发结果弄得一团糟。如果是这样,那我就不想在那个代码库里工作了,注定那里会一片混乱。

因此,为了整体时间安排,请遵守承诺,扔掉全部代码初稿以保持快速高效。这能让你快速行动,通过原型设计学到很多东西,然后在真正开发功能时做出更好的决策,从而节省时间和精力。

原文链接:https://ntietz.com/blog/throw-away-your-first-draft/

▶ 黄仁勋甩出最强生成式 AI 处理器;ChatGPT 回答编程问题错误率超过 50%;Go 1.21 发布|极客头条

▶ 以 Nvidia 芯片为抵押拿下 23 亿美元融资,“美国矿工”如何摇身成为 AI 算力王者?

▶ 开源之辩:大模型开源的尺度在哪里? 返回搜狐,查看更多

责任编辑:

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2023-08-09 21:45:13

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

SW-LIMS V14低代码平台让项目快速高质量交付
...诸多挑战,为了解决这些问题,越来越多的项目开始采用低代码平台来实现软件的快速实施交付。 北京三维天地科技股份有限公司作为国内知名的信息化整体解决方案及相关软件产品与服务提供商
2024-01-11 11:00:00
GPT搜索引擎原型曝光!新模型GPT4-Lite驱动,虽然鸽了发布会但代码已上传
...,而仅仅是“先进的”。以及被鸽掉的GPT搜索引擎,原型代码上传到ChatGPT了。黑客“光头哥”Tibor Blaho
2024-05-13 15:34:00
为什么不再使用LangChain来构建AI智能体了?
...块(building block)替换其僵化的高级抽象可以简化我们的代码库,使团队更快乐,更有效率。1. 背景故事我们在生产中使用了 LangChain 超过 12 个月
2024-06-26 09:33:00
《LOL》源代码被盗、还遭黑客勒索 拳头:绝不会给钱
...,拳头证实黑客窃取了《英雄联盟》和《云顶之弈》的源代码,但对于勒索拳头表示绝不会妥协,并且玩家数据和个人信息没有被泄露。拳头表示“虽然这次攻击扰乱了我们的构建环境,但我们仍然
2023-01-28 19:43:00
36氪首发 | 低代码平台「飞速创软」完成数千万元A2轮融资,由中新融创独家投资
36氪获悉,云原生全场景低代码及数字化基础设施提供商珠海飞速创软科技有限公司(以下简称“飞速创软”)宣布完成3000万元A2轮融资,本轮投资方为中新融创。此前,飞速创软曾获珠海正
2023-03-15 09:26:00
影响开发者生产力的因素有哪些?
...的工具开发人员需要使用很多工具,通过编辑器高亮显示代码并自动补齐方法名称,通过 git 提交代码,通过构建系统运行测试。鉴于这些工具的运行频率之高,它们多占据一秒,就有可能导
2023-07-20 16:00:00
上交大推出“可进化游戏引擎”!虚拟世界演化无需预设
...引擎结合,能够被被特定的条件触发,自动地成长出新的代码。选择宝可梦题材做实验,是因为团队中大部分成员都是宝可梦粉丝,目前相关论文已上传ArXiv平台。「失控玩家」走进现实研究
2024-09-05 10:04:00
云砺技术洞察:数字化浪潮中,如何用低代码平台的自动化流实现业务流程自动化
...转型逐步深入,企业对业务流程自动化的需求不断增长,低代码技术以其灵活高效的特点正逐渐成为业务流程自动化的核心引擎。云砺企业协同平台将低代码技术与自动化流深度结合,帮助企业将繁
2023-11-02 23:02:00
编程给产品工作的几点启发
...编程阶段在学习编程的过程中,陋习之一就是边思考边写代码。虽然看似能够快速得到结果,但往往会导致代码反复调整等情况,其实还降低了编程效率。如何提高编程效率?其中,一个方法就是将
2023-05-04 12:00:00
更多关于科技的资讯: