软件工程,其实没有任何工程而言

举报
实力程序员 发表于 2021/06/16 08:45:10 2021/06/16
【摘要】 将大型软件研发过程,叫做软件工程,实在是个笑话。能够叫做工程的,必然是以科学为基础,将科学知识凝结为定理和公式,从而能够系统地传承。这样,工程人员经过系统化培训后,就可以胜任工程中的工作岗位,从而能够进行大规模的工程实施。土木、建筑、航空、交通、能源等等行业,都是将数学、物理、化学等科学知识凝结为行业定理和方法,如何分析土质,如何测量风力,如何评估抗震能力,这些都是有系统的方法的。经过系统化...

将大型软件研发过程,叫做软件工程,实在是个笑话。

能够叫做工程的,必然是以科学为基础,将科学知识凝结为定理和公式,从而能够系统地传承。这样,工程人员经过系统化培训后,就可以胜任工程中的工作岗位,从而能够进行大规模的工程实施。

土木、建筑、航空、交通、能源等等行业,都是将数学、物理、化学等科学知识凝结为行业定理和方法,如何分析土质,如何测量风力,如何评估抗震能力,这些都是有系统的方法的。经过系统化培训,从业人员都可以掌握这些方法,从而胜任工程中的具体工作。

但这些,在软件行业中都是不存在的。

软件行业,哪里有把科学知识凝结为定理和公式?哪里有系统地传承?无数的程序员还在为用Tab还是空格争执不休,是否用goto 还吵了几十年。从Tab还是空格这些细枝末节的问题,到单体还是微服务,从继承还是组合的设计方法选取,到Scrum还是XP的软件过程敏捷管理,到处都充满了争议,从未达成过一致。因此,也就没有任何可传承的东西。

每个程序员,就是在这样的环境中,通过自己的偏好进行判断和选择,汲取了自己认为是正确的知识,武装了自己的头脑。并且完全是靠自学,通过自己的理解和体会,最后自己认为自己学会了。

自己理解的,是正确的吗?自己理解的,是全面的?自己掌握的技术和方法,是最好的吗?这些,都无从回答。

因此,被叫做“野生程序员”,恰如其分吧?

大型的软件开发,居然都是由这些野生程序员来完成的,还管这叫软件工程?

名校的计算机专业和软件专业,也没有传授给学生如何编写大型可维护软件所需的技能。
大型成熟的软件公司,也没有什么系统的方法,指导程序员如何设计和开发大型可维护软件。

与40年前相比,今天我们的硬件有了天翻地覆的变化,编程语言和开发工具比之前不知先进了多少倍,但软件开发的进度和质量,并没有什么变化,依然停留在刀耕火种的原始状态。进度和质量,还是由具体写代码的工程师个人水平和工作心情决定的,完全不可控状态。

这是个巨大的鸿沟!但软件行业似乎对此视而不见,并漠不关心。老板的唯一招数,就是拿出996的杀器,迫使程序员加班,从而获得所谓的软件开发进度提升。对此,我只能呵呵了!

软件行业正在如火如荼地高速发展,并且快速渗透和融入各行各业中,并承担着数字化改造的核心作用。但软件研发人员水平参差不齐,软件产品的质量如此之差,软件交付速度如此缓慢,这终将酿成巨大的软件灾难。

是时候,需要正视这些问题了。软件需要回归到工程的状态,这样才能给各行业交付稳定可靠的高质量软件。而要实现这一目标,必须要保证软件开发人员是合格的工程人员,掌握了工程所需的知识与技能。

因此,编写大型可维护软件,需要哪些知识和技能,如何系统化地培训出软件工程人员,将成为时代的刚需。


我的微信号是 实力程序员,欢迎大家关注我。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。