软件的核心是人,而非代码

Software is about people, not code

刚入行时,我误以为软件开发的全部就是写代码。我热衷于制定风格指南、研究新技术、争论代码格式,甚至为了逆向工程去反编译 java bytecode。然而,现实给了我一记重锤:我亲眼见过许多代码库因为缺乏市场或商业缺陷而被彻底废弃。这让我明白,代码只是工具,软件是为人服务的。如果代码无法解决真实用户的问题,哪怕它再优雅、再健壮也毫无价值。真正决定项目成败的,从来不是代码本身,而是人。

最精美、测试最完善、最灵活、配置最齐全、文档最详尽且面向未来的代码库,如果做错了事,那也是毫无用处的。
  1. randusername

    受够了这种绝对化的论调。

    软件本该是关于代码的,但并非对每个项目中的每个人、项目的每个部分都是如此。

    能“觉醒”并意识到代码并不具备你原本以为的内在价值,这固然很好;但你也可以利用这种认知,转身继续编写优美的代码,只要它能更好地服务于更大的目标。

  2. JSR_FDED

    当我还是开发者时,我总觉得“没有我,整栋楼里的人就没什么可卖的,大家干脆都回家吧”。

    后来我在销售岗待了几年(说来话长),观点来了个180度大转弯。如果没有销售人员(以及他们带来的客户),就没人发我们的工资,我们也只能都回家。

  3. knuckleheads

    “软件[应该]关乎人,而非代码”

    这与 https://en.wikipedia.org/wiki/Is%E2%80%93ought_problem 有关,但又不完全相同。

  4. fasterik

    John Carmack 曾提出过类似的观点:

    “软件只是帮助人们完成某项任务的工具——许多程序员从未理解这一点。要紧盯交付的价值,不要过度纠结于工具的具体细节。”

    话虽如此,我不认为 Carmack 会说过“软件与代码无关”。他的意思更像是:代码的编写和评估应基于其为人们带来的净价值,而非任意的技术指标。

  5. agentultra

    我认为人只是其中一个因素。当代码写得足够好时,它能向其他人精确传达意图和实现细节。如果语言包含足够的语义信息,它甚至能传达部分规范。知道该写什么,并确保你的软件确实按你的预期运行,是项目的重要部分。这需要与人协作,才能建立起对规范和需求的正确理解。

    但在某种程度上,它也关乎代码本身。有时你的需求就是:够快就行。这时你就得考虑代码:指令和数据。

同日更多故事

2026-08-07