博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件工程,其实没有任何工程而言
阅读量:4110 次
发布时间:2019-05-25

本文共 1150 字,大约阅读时间需要 3 分钟。

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

名校的计算机专业和软件专业,也没有传授给学生如何编写大型可维护软件所需的技能。

大型成熟的软件公司,也没有什么系统的方法,指导程序员如何设计和开发大型可维护软件。

 

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

 

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

 

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

 

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

 

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

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

转载地址:http://ytlsi.baihongyu.com/

你可能感兴趣的文章
如何防止sql注入
查看>>
maven多工程构建与打包
查看>>
springmvc传值
查看>>
Java 集合学习一 HashSet
查看>>
在Eclipse中查看Android源码
查看>>
Android-Socket登录实例
查看>>
Android使用webservice客户端实例
查看>>
层在页面中的定位
查看>>
[转]C语言printf
查看>>
C 语言 学习---获取文本框内容及字符串拼接
查看>>
C 语言学习 --设置文本框内容及进制转换
查看>>
C 语言 学习---判断文本框取得的数是否是整数
查看>>
C 语言 学习---ComboBox相关、简单计算器
查看>>
C 语言 学习---ComboBox相关、简易“假”管理系统
查看>>
C 语言 学习---回调、时间定时更新程序
查看>>
C 语言 学习---复选框及列表框的使用
查看>>
第四章 - 程序计数器
查看>>
第七章 - 本地方法栈
查看>>
第十一章 - 直接内存
查看>>
JDBC核心技术 - 上篇
查看>>