很多人都在私信问我随着ChatGPT等技术的兴起,自己的饭碗会不会没了。我的观点是:ChatGPT能做的工作十几年前早就没了。
十几年前还看到过招聘广告上写招程序员的,现在都是工程师起步,工程师是要有架构思维的。
像十几年前的黄金时代确实是一去不复返了,这个不需要兴哥来预判,很容易想到的。那个黄金时代就像刚兴起淘金热一样,是有一些先驱逃到了金子。但是多数人淘到的都是沙子,淘到沙子才是常态。所以没淘到也不用特别可惜,多数人都是这样。从事软件工程的人不会失业,也不会暴富,这是一个正常的行业。所需要的技术会像商战片一样,思路大家都能看懂,做的好的人胜出。就像高考的题多数情况下都不难,很多人之间的差距不是会不会的差距,而是能不能做好的差距,放平心态就好。
人和AI的区别是人的思维更复杂,职场上任何一个决定、一个任务都是综合考量的结果。大致上,要考虑六个维度。
成本
工程预算和实际开发系统的成本之间通常存在误差。很多组织甚至不会直接提出成本问题,可能是简单的因为不知道怎么弄,或者强迫他们认识到他们根本承担不起这个成本。即使初版成本可以接受,但是维护成本却可能因为设计或者能力问题而难以适应变化。最终,可能因为维护成本太高,所以组织最终决定推翻重做,然后设计出了一个成本更高的系统。
如果你对这种难以维护最终推翻重做的模式觉得很熟悉,那就不用担心这个行业会不需要人工。一个房屋可以维持上百年,软件的寿命却非常短暂,这侧面反应了软件技术相比较传统工程,成熟度更低,还有很长的路要走。
规划
很多组织中,截止日期往往是任意的不具有强制性。如果偶尔一次在截止日期内完成,才是让人惊讶的事情。这往往是由于一个低劣的设计或者没有预估到的跨团队之间的协作导致的变化或者可能在中途推翻之前的工作。但是还会存在一种更糟糕的情形,就是经理和客户可能都不知道实际上没有任何人知道当前项目的真正进展。
需求
开发人员可能会最终解决了错误的问题。终端客户和市场调研团队之间,市场调研团队和产品经理之间,产品经理和开发人员之间的沟通失败是个永恒的难题。即使他们之间完美的沟通了,市场是在随时变化的,这种变化可能会推翻整个设计。
人员
即使是最简单的系统,为达到能让更多的用户清晰理解的目标,其复杂性也会超出人脑的容量。其内部和外部复杂性直接导致了拙劣的系统架构,最终导致系统过于复杂而难以维护。
维护
很多时候,系统的原始开发者和维护人员不一样。新人在解决旧的问题的时候引进了新的问题,最终增加了维护成本和系统投发时间,最终可能导致系统重做或者直接取消项目。
质量
Bug几乎可以作为软件的同义词。开发者无法开发出没有Bug的代码,修复这些问题又会引入新的问题。质量控制不过关会直接导致系统难以测试,难以理解,难以维护。
本文提出了架构思维的六要素,在解释要素的时候,大家可能也注意到了只是提出了问题,没有讲怎么解决问题。而这方面确实没有很成熟的方法论。这就更印证了工程师不是一个夕阳行业,毕竟ChatGPT连这里面的一个问题也解决不了。