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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值