软件工程师的消失

生产力大发展

在现代互联网,完善的基础建设和丰富的自动化工具,极大的缩短和降低了软件开发的周期与成本,现在一个小型的 web 应用的研发计划可能仅需要 5 天。

  1. 将想法通过原型图工具落实为原型图。1 人/日
  2. 设计表结构并使用插件自动生成后端接口。1 人/日
  3. 原型图工具自动生成前端页面。1 人/日
  4. 自动生成测试用例,完成测试。1 人/日
  5. 将应用代码打包部署到云服务。1 人/日

而在以前,上述工作至少需要设计、开发、产品、运维这些角色共同承担,同时还得购买昂贵的服务器设备。

好吧。5 天开发并上线一个应用,也许这就是极限了?显然不是。即使是非专业的开发人员,通过使用智能研发套件 2 天就可以开发一个应用。

  1. 根据需求一次性完成产品设计与代码生成并自动化部署。1 人/日
  2. 适当配置与测试,开始使用。1 人/日

而当你阅读文章的时候,互联网技术正在突飞猛进,生产力还在持续提高。

软件工程师的消失

制造本身就是一个可以被自动化的过程。试着把代码想象成汽车零件。结构单一的零件(代码)在流水线上被拼装成为模块(微服务),模块再经过组装成为汽车成品(应用)。越是自动化程度高的流水线,其成本越低,质量越好,效率越高。

对于大部分互联网从业人员来说,未来甚至是不久的将来,开发一个应用可能大概和烤一块儿吐司的流程差不多:放入面包,按下按钮然后稍等片刻。

toast

生产力的提升使得互联网从业人员的角色变得模糊,未来专职的应用层软件开发人员将会逐渐退出历史舞台,无论你是前端还是后端,大家都一样。但是软件开发这件事情并不会消失。就像曾经的打字员一样,计算机的普及使得专职的打字员消失了,「打字」和说话一样成为了一种理所当然的能力。

工程师思维

虽然应用层软件工程师的没落不可避免,但是没必要沮丧。从事编程的经验培养了你的工程师思维:「发觉出问题根源并加以解决的能力」,这是具备普遍适用性的无价之宝。

设想你接到一个需求后会怎么做?首先理解需求;接着在需求评审会上和产品经理与其他工程师沟通,作出设计给出排期计划;当一切都确定后才开始编写代码。看到了吗?制造排在最后一步。

另外软件开发类书籍看似教授的是如何编程,实际上传达的是设计的哲学。这些知识将帮助读者建立正确的思维方式,培养发掘问题根源的敏锐嗅觉。

你是否有过这种体验?你是一名资深工程师,受邀加入一个问题百出的团队并被要求显著提升产品质量。经过一段时间的共事后,你发现团队最大的问题是人。混乱的思维方式产生糟糕的设计造就漏洞百出的产品。如果不对问题的根源加以解决,结果就是搞定的问题越多产生的问题更多。

最后

工程师思维是技术和艺术的结合。但技术天生的标准化与自动化属性会让艺术所占的比重越来越大。未来也许就像《死亡搁浅》中基于开罗尔粒子的 3D 打印技术一样,你只需要提供创意和设计,剩下的交给全自动化的基础设施去实现。

未来是更加多元化的社会。像「销售」、「行政」、「会计」、「翻译」、「管理」这些单一的词汇不再适用于定义一个人的职业。这些标签会进入历史的长河而新的称谓会被创造出来。也许将来有一天,再次看到这些旧称时可能会感觉像「打字员」一样亲切和复古吧。

Chuck Lin

Chengdu, China
Email me

从事开发工作10年,持续写作4年,现在的身份是一名 freelancer。项目外包、雇佣洽谈等事项请通过邮箱和我联系。