技术的目的与软件开发哲学

本文探讨了技术解决物理问题与人类问题的不同效果,分析了Google优秀开发者体验背后的核心原则,并阐述了软件工程基础的重要性。文章还讨论了AI辅助开发的实际本质和解决问题的正确方法。

技术的目的

2014年2月14日 by Max Kanat-Alexander

一般来说,当技术试图解决物质、能量、空间或时间问题时,它是成功的。当它试图解决人类的思想、沟通、能力等问题时,它会失败或危险地适得其反。

例如,互联网处理了一个重大的空间问题——它让我们能够与世界上任何人即时沟通。然而,它并没有让我们成为更好的沟通者。事实上,它让许多不善沟通的人拥有了一个巨大的平台,可以传播仇恨和恐惧。这并不是说互联网一无是处——我个人其实很喜欢它。我只是举例说明技术能够成功解决和不能成功解决的问题类型。

这个原则之所以有用,是因为它提前告诉我们什么样的软件目标或创业想法更有可能成功。专注于用技术解决人类问题的公司很可能会失败。专注于解决可以用物质事物表达的问题的公司至少有可能成功。

这个规则可能有一些看似反例。例如,Facebook的目的不是连接人们吗?这听起来像是人类问题,而Facebook非常成功。但连接人们实际上并不是Facebook所做的。它提供了一个人们可以沟通的媒介,但实际上并没有创造或导致人类联系。事实上,我认识的大多数人似乎对Facebook有一种不舒服的上瘾感——感觉他们在那里花费的时间超过了作为人的价值。所以我认为,每当它专注于解决这些问题时,它都在加剧某些人类问题(如对连接的渴望)。但它正在出色地实现其他目的(从广泛沟通中消除空间和时间)。再次强调,这不是对Facebook的攻击,我认为它是一家善意的公司;这是试图使用"技术只解决物理问题"的原则对其目的哪些方面成功进行客观分析。

这个原则也有助于澄清技术进步是否"有益"。我有时对技术进步有复杂的感觉——它真的给了我们一个更好的世界,还是让我们都成为机器的奴隶?答案是技术本身既不好也不坏,但当它试图解决人类问题时,它倾向于邪恶;当它专注于解决物质宇宙的问题时,它倾向于善良。最终,没有技术,我们当前的文明就不可能存在,这包括公共卫生系统、中央供暖、自来水、电网,以及我正在写这篇文章的计算机。技术实际上是我们生存所必需的重要力量,但我们应该记住,它不是一切问题的答案——它不会让我们成为更好的人,但可以让我们生活在更好的世界里。

-Max

评论

Ram Rachum 说: 2014年2月15日上午3:21 好文章!有趣的经验法则。

Dave Hansen-Lange 说: 2014年2月19日上午11:29 那么,有没有一个技术例子是旨在解决人类问题,但现在让世界变得更糟?

Aasher Naeem 说: 2018年2月24日上午10:44 例如,燃烧化石燃料,它不会造成污染和全球变暖吗?将化学物质倒入河流会污染水并杀死数百万条鱼,进而破坏水生态系统。基本上,所有污染(光、声音、水、空气等)都是由技术引起的。

Virendra Rajput 说: 2014年4月20日上午12:41 好文章。解释得很好。当然同意你的观点——“它不会让我们成为更好的人,但可以让我们生活在更好的世界里。”

Max Kanat-Alexander 说: 2014年5月9日晚上7:50 谢谢!

Neeraj Wagh 说: 2014年8月15日上午2:58 发人深省的好材料!

Naz-Al Islam 说: 2015年11月18日下午12:59 你好Max, 文章很好,但我期待更多关于这个主题的说明。肯定有更多有害技术的例子,包括Facebook、Twitter或其他社交媒体。为此,我们不应该试图通过技术来解决人类思想的问题。我们可以使用冥想作为带来内心平静的方式。但是,技术只对无生命物体有用。

Peter Williams 说: 2016年5月25日上午2:46 技术现在渗透到一切事物中,但有些东西需要保持原样。例如,无人驾驶汽车。我喜欢驾驶,我不愿意把方向盘交给一些该死的软件代码。我的担忧不是安全问题,而是人们将错过的驾驶乐趣。我可以预见几年后,许多制造商会涌入无人驾驶汽车的潮流。我希望那一天永远不会到来。只是我的个人看法。

Nick 说: 2016年7月20日下午12:45 今天开发的消费技术并不一定总是着眼于解决大问题,而是试图创造可销售的产品。而且需要解决的问题也更少了!(至少在大多数创新发生的发达国家是这样。)这导致市场上出现较少的"颠覆世界的技术"。这篇MIT Tech Review文章也探讨了这个问题:https://www.technologyreview.com/s/429690/why-we-cant-solve-big-problems/ 附言:很棒、深思熟虑的文章!

Ashish Goyal 说: 2017年4月18日上午12:49 太棒了,先生…#尊敬..

Ashish Goyal 说: 2017年4月18日上午12:49 太棒了,先生…#尊敬.. (y)

John 说: 2017年11月14日晚上9:05 好文章!我的老师推荐了这篇文章,我实际上从这里得到了很多答案。可以从中学到很多东西。我必须做一个天才小时项目,我的问题是技术如何改变人体。技术的目的也是一个很好的研究课题。阅读这篇文章并从中受益。谢谢。

Max Kanat-Alexander 说: 2017年11月15日上午12:43 不客气,John。很高兴能帮助到你。

kolin.brown 说: 2018年1月31日上午9:19 非常感谢这些信息,帮助很大

kolin.brown 说: 2018年1月31日上午9:21 好文章!我的老师推荐了这篇文章,我实际上从这里得到了很多答案。可以从中学到很多东西。我必须做一个天才小时项目,我的问题是技术如何改变

Just Because We Can, Doesn’t Mean We Should. – Mrs. Laurencot’s Student Blogs 说: 2018年3月22日上午8:58 […]两点之间"或通俗地说,让事情变得更容易,但它有缺点。正如Max所说,“当技术试图解决物质、能量、空间或时间问题时,它是[…]

Shirleen Mauigoa 说: 2018年5月21日晚上6:04 非常感谢这些有用的信息。它帮助我进行研究。

simeon sylvester 说: 2018年8月29日下午1:55 好文章,但未列出目的以帮助进行更多研究。

simeon sylvester 说: 2018年8月29日下午1:58 好文章,但未列出目的以帮助进行更多研究工作。

Samuel Elkina 说: 2019年10月21日上午1:55 谢谢我的朋友,我觉得这些信息很有用。

Top 25 Future Technologies in which we should invest as a business - Geta-Suggestion 说: 2021年2月5日晚上8:36 […]技术的主要目的过去是现在仍然是让我们的生活更舒适,给我们更多时间进行休闲活动。之前[…]

Technology Has to Serve Humans – CX by Design 说: 2025年4月30日下午12:10 […]当我们环顾技术充斥的世界时,关于创造是否成功实现了这一目的的问题[…]

近期思考

2025年10月15日

我很高兴今年在Developer Productivity Engineering Summit 2025上发表了主题演讲之一。我谈到了什么造就了优秀的开发者体验。特别是,这次演讲涵盖了我们在所有开发者体验工作中试图优化的三个核心事项。希望对大家有所帮助!:) https://lnkd.in/g-AJtJ2b

2025年10月13日

为什么Google拥有如此出色的开发者体验?它只是在这方面花费了比任何人都多的钱吗?

嗯,是的,如果你加起来Google在基础设施上投入的所有人力成本,Google可能在开发者体验上花费的钱比任何人都多。但这实际上不是Google在这方面成功的核心原因,因为Google开发者体验的早期并没有涉及大量工程师。它实际上涉及相对较少的一些优秀工程师,他们随着时间的推移相当缓慢地构建工具。Google一些最受喜爱的工具最初是由总共三四人构建的。

关键在于这些工程师被允许专注于开发者基础设施的基础,直到做好为止。每个人都在构建开发者体验的长期全局最大值,而不是短期即时需求。非常优秀的工程师被赋予自由去问诸如"完美的构建工具应该是什么样子"这样的问题,然后尝试构建它。源代码控制、代码审查、编程语言基础设施、CI、IDE、通用库以及开发者体验的许多其他部分也是如此。当然,有时我们在这个过程中构建了糟糕的东西,但公司足够关心做好它,以至于我们(通常)会回去修复它,最终。

Google开发者体验和速度的关键在于这种对软件工程基础的关注。这不仅仅是在开发者工具团队中,而是贯穿整个公司——Google的工程师比我在其他地方看到的更关心代码质量、测试等。

技术领导者在行业其他地方最常犯的错误之一就是未能关注所有这些工程基础。代码库可维护吗?你拥有高效有效地构建可靠、高质量软件所需的基本工具吗?是否有系统确保新软件工程师能够快速上手项目,并随着时间的推移提高技能?等等。

相反,我经常看到领导者坚持在破碎的基础上紧急解决即时问题,没有任何真正解决这些基础的计划。这有点像作为一个酒店建造者,看到所有其他酒店都有很棒的顶层公寓,然后坚持团队在建筑有裂缝基础和漏水管道的情况下建造一个美丽的顶层公寓。修复那个基础可能很困难,但如果你不修复,你肯定会后悔。

基础有时感觉抽象或不重要,因为它们不是你被要求交付的即时产品。但让我告诉你,如果你想能够交付任何东西,基础才是最重要的。

2025年10月1日

计算机从来不是任何事情的原始原因。它们从根本上没有意志力(在没有先前指令的情况下做出导致行动的决策的能力)。总是有某个地方某个人给了计算机指令,以便它做正在做的事情。

这对AI和所有其他计算机软件都是一样的。

这不仅仅是一个高层次的哲学原则。它实际上高度适用于我们在工作环境和生活中应用和使用AI的方式。

当我们说AI编码助手改进了软件开发时,实际上不是AI在做这件事。是我们向开发者提供助手,然后他们有效地使用它。很容易认为我们会向开发者撒上魔法仙尘,魔法仙尘会让他们更高效,但实际上它需要工作和关注,而那个工作和关注是关于人类操作技术。

任何时候你听到有人声称计算机、软件或任何AI系统做了某事,退后一步想一想,“等等,人类实际上在那里做了什么?“理解这一点将比仅仅阅读头条和LinkedIn上的肤浅热门观点让你走得更远。

2025年9月17日

一般来说,解决软件系统问题的方法是分配软件工程师来解决问题。

将问题分配给软件工程师的危险在于,他们会编写软件来解决它。

当你看到软件系统中长期未解决的问题时,通常意味着没有人被分配去解决那个具体问题。

当你看到不必要的软件被编写时,几乎总是因为软件工程师被分配去解决某个问题,并决定编写软件是解决方法。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计