查看原文
其他

啥叫工程?啥叫工程师?

吕建伟 阿朱说 2024-01-03

咱们经常讲软件工程师、软件工程。但我老想:我们大量的人是否配称得上软件工程师这个称号。

(1)组织

工程是一大堆人作业,需要:

  • 岗位-级别-梯队

  • 组织-分工

  • 建制组队


这在中国软件业也是一个非常突出的问题。因为太注重软件的最终产出成果-代码,所以岗位-组织往往缺失,导致不是建制团队,而是一群产出代码的程序员。很多不产出代码的岗位被忽视-边缘-缺位。

(2)项目

工程需要良好的项目管理:

  • 计划、任务、进度

  • 质量

  • 预算-成本


这在中国软件业也是非常大的问题,尤其对预算-成本-ROI没有节制,把软件当做自己的孩子一样无限宠爱无限投入,也因此导致目标丧失-范围失控-进度失控。虽然很多公司都想采取西方的IPD方法,但是西方是基于资本主义-投资ROI的逻辑来发展IPD的,所以是自研还是并购这在西方没有什么心理障碍,在我国由于不是资本家投资企业,所以把企业当自己孩子无限呵护、把软件产品当自己孩子无限呵护,所以这也是导致我国软件企业实施IPD大多无效。当然,还是由于我国不是资本主义,所以每个企业只能自己养自己孩子,逐渐养成了宁为鸡头不为凤尾、宁为玉碎不为瓦全的文化,这也导致了如果发动并购,最后也是专业人才、产品、客户三者都最后一场空,所以这更导致了中国软件企业自研而不并购。

(3)设计

大家都知道要做一个工程之前得做设计。大家如果见过建筑工程、机械工程的蓝色绘图纸,看到他们一遍遍地测量角度、进行数学计算验证,就知道工程的严谨性。

我是很少见软件行当在设计期做大量的数学计算验证。我想如果大家去研发难以修改的硬件产品,或者去研发人命关天(医疗设备软件、高铁飞机调度指挥软件)、财产关天(银行软件、电信计费软件、电商交易软件)、安全关天(安全软件、网络防火墙),可能就不会这么任性了。

(4)试验

做工程,大家都知道图纸设计好了也不能下一步就开干,而是做试验验证。这和软件业曾经提倡的测试驱动代码开发很像。但是很多软件团队既不搞正规试验工程,也不搞敏捷-测试驱动开发。

做什么试验、试验环境的投入建设、试验的过程设计、试验的结果数据记录、试验的结果报告、试验的专家评审验收,这都是在其他工程类常见的试验事项。我是很少见到软件业的工程是这么做的。

(5)基线

工程需要标准、Baseline基准。

这在软件业是非常大的问题,没有建立基线。当然,要建立基线,需要投入建立环境,要投入资源建立基线,这些不能直接产出最终产品成果的工作的资本投入,这是很难以接受和容忍的。

(6)工具

工程需要大量半自动化工程工具。

对于软件工程来说:

  • 需求管理工具、项目管理工具

  • 分析工具、设计工具

  • 编码工具、

    代码审核工具
  • 代码托管存储工具、代码版本管理工具

  • 持续集成工具、自动化测试工具

  • 持续发布工具、持续部署交付工具

  • DevOps工具、可观测性-可度量性工具


这些工具Pipeline肯定得有专门团队去建设、专门团队去持续改进-维护它。

大量中国软件企业本质上还是一伙人手工作业,相当于手艺人行当,这就不能称得上软件工程。

(7)技能认证

在其他工程类,都有岗位技能培训、岗位技能考试认证。

我说的岗位技能,指的是一个岗位需要具备的技能,这里说的技能是他能合格完成他所处级别岗位要求工作的所有技能。

所以我们会看到其他工程类,是一项项技能进行培训与考试合格,最终才发岗位合格证书。

而且是持证上岗。没有证,不能上岗。



继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存