【GAD翻译馆】慢编程案例

发表于2017-09-27
评论1 1.9k浏览

翻译:赵菁菁(轩语轩缘)审校:李笑达(DDBC4747


我父亲过去常说:“儿子,磨刀不误砍柴工。”

      我曾在旧金山湾的许多高科技创业公司工作过。我现在52岁了,编程缓慢且经过深思熟虑。我有点像编写代码的设计师;你继续读的话这一点会更明显:)

      当我最近和一些年轻的程序员一起完成一个项目时,慢慢地编程对我来说是个问题,这些年轻人信仰“快速完成”、“对代码进行小的迭代更改”。在工作中,我们在同一个代码库中工作,好像一口大锅里的汤,如果我们只是不停地、大力地搅拌它,最终就会形成奇怪的东西。

      并没有。

      很多程序员错误地认为所有工程师都是可替代的,而且没有人应该负责代码的任何特定的方面;任何程序员都可以随时更改代码的任何部分。毕竟,我们有像GitHub这样很棒的服务来管理和合并任意数量的、来自任意数量程序员的异步贡献。只要每个人都频繁地提交,不破坏任何东西,一切都会好起来的。

胡说。

      你不能放弃设计过程。文明出现曙光时设计就存在了。最新的智能开发工具,无论多么智能,都无法取代建造大教堂、铁路和长片的最佳实践和现实合作。

      无论怎样编程都不会产生一种工具,把软件开发的时间缩短到一组程序员打字的时间。


节律紊乱

      在一群快速程序员中做一个慢速程序员这种情况是一种形式的节律紊乱——因为其他程序员机枪的不断打击会让我失去节奏。我的编程风格是由不同大小和时间尺度的有机弧定义的,每一个弧都是从探索、尝试和错误、侵入和临时变量开始的。基本上,脚手架有很多。一幅画开始成形。稍后,我会回来点缀我的i、划掉我的t。每个弧的结尾类似于实现就绪代码。(“打扫工作室”是完成循环的必要部分)。我的代码贡献的发展弧线就是一个战略、一个设计方案、一个体系架构的出现。

      有时,当一个成熟的有机体出现后,我又回去重新开始,因为我想我有一个更好的方法去做。有时我错了,有时我对了。直到有机体完全成形并盯着我看时,才有可能真正知道对错。

无论如何,回到大锅汤程序员。问题是这样的:在整个软件生态系统中没有停滞——没有一个静止的水池来获得牵引力和应用设计过程,那么任何人,哪怕是一个快速的编码器,怎么能做出好的设计呢?

      任何宣称快速编程的程序员和慢编程的都是一样的(除了速度很快),并不理解设计过程。出于同样的原因,许多神经科学家现在认为,神经元放电在大脑中的流动就像一个时间混响,与思维和意识有关,良好的设计需要时间。


慢编程运动

      据维基百科称:“缓慢的编程运动是慢动作的一部分。这是一个强调精心设计、质量代码、软件测试和思考的软件开发理念。它力求避免使用没有办法的办法、有bug的代码,和过于快速的发布周期。”

      维基百科也提到了“缓慢的软件开发”:“作为敏捷软件开发运动的一部分,世界各地的软件开发团队寻找更多的预测项目,并致力于更可持续的职业和工作生活平衡。他们提出的一些做法,如结对编程、代码审查、代码重构,为的是产生更可靠和强大的软件应用程序。”

      在旧金山湾地区,风险投资软件开发正处于白热化的快车道上。货币动态将非自然的需求置于一个过程中,这个过程最好留给设计演化的自然昼夜规律。快不一定更好。事实上,有时候更慢实际意味着更快——当话说尽事做完时。Rushkoff在《当前冲击》(Present Shock)中阐述了数字技术是如何侵占我们的自然时间节律的主题。

      还有另一个问题:对技术的近乎宗教的痴迷和对工具的热爱。人们想知道为什么软件很烂(是的,它很烂)。软件因纸上谈兵而变糟。快速的程序员建立黑客工具去解决黑客工具,他们设计的这些工具又解决了他们设计的帮助他们编码的黑客工具。

      这就是为什么我认为我们在软件开发周期内需要老年人、妇女和教育工作者。更多使用的人,更少工具似的人。我不是指在外面,坐在服务台或者做UI插花。我的意思是在内部——确保软件与人类产生共鸣。


我很高兴我不是一个打字员。

      我的一个朋友,是一个成熟的女性软件工程师说了一个有趣的俏皮话:“软件编程不是打字”。每个人都知道这一点,但提醒我们自己并不是很痛苦。Brendan Enrick讨论了这件事。事实上,我们的程序员花时间在键盘戳手指的这一体育活动就是编程。但是编程实际上是把思想、设计、语言、逻辑和心智结构转化为可以存储在计算机存储器中的一种行为。

      我妻子经常到院子里来问我:“你在编码吗?”通常我的回答是“是”。我通常用园艺剪刀剪树枝,或者在周围移动堆肥。

      植物、泥土和剪刀与编程的键盘和发光屏幕有很多共通之处。

      我们正在从一个工业时代和一个由增长所定义的经济时代过渡到一个可持续发展的时代。是的,新软件和新业务需要发展。但是为了可持续,他们需要慢慢地成长,并且要有爱心,像好酒,像个婴儿。

 

【版权声明】

原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权;

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: