软件危机提出 60 年,如今解决了吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
1000copy

软件危机提出 60 年,如今解决了吗?

  •  
  •   1000copy 2024 年 6 月 20 日 1813 次点击
    这是一个创建于 674 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大局上来说,显然没有。

    我们在这 60 多年的历程中,有了不少新的工具和方法,比如结构化设计、面对对象设计、项目管理 WBS 、需求工程,数以千计的计算机语言,瀑布方法和敏捷系列的几十种方法,UML 和相应的软件过程方法,大量的关系数据库和非关系数据库,优良的操作系统。

    但是软件危机依然大量存在。

    当年提出的软件危机的问题包括:

    • 项目运行超出预算。
    • 项目运行超过时间。
    • 软件质量低落。包括软件通常不符合需求,项目无法管理,且代码难以维护

    现在还是这样。

    行业的标杆企业微软可以说明很多问题。2000 年前后,微软出版了一批项目管理的书籍,可以让外人看到微软内部的项目状况,我知道很多 MS 的软件都饱受软件危机的折磨。最典型突出的就是 Vista ,历时五年,出来一个广受诟病的 OS ,Vista 被寄以厚望的若干大的特性,都没有发布或者阉割发布。

    有赞的白呀说他们的系统做了十年,有 2 万个功能,每一个功能都是需要的。引入一个新的功能,解决了 5%的客户的需求,但是让 95%的用户感到难用。

    我知道很多企业也是这样的。

    某公司的一个商业软件,从 2011 年开发到 2022 年,已经完全重写 4 次,每 2.5 年重写一次。每一次的理由都是一样的。就是维护不下去了。,每一次都说先赶出来再说,并且每一个功能都是需要的。然后赶出来后就快速的进入报废的循环。

    原因很简单,之前维护不下去的产品的原因没有解决,因此就会一再重犯相同的问题。

    很多产品代码都存在的大函数,一个函数几千甚至几万行。这样的函数显然缺乏任何的结构化,也没有任何的面向对象化这样的分而治之的方法,和现代程序设计无缘。所有软件危机提出以来,为了解决软件危机而引入的方法,实践在在这样的产品设计中没有任何体现,当然也就不可能度过软件危机。

    所以,尽管工业和教育界有不少的发明创造,但是实际上很多项目根本没有利用过这些创新,所以,软件危机继续广泛存在。

    或许某天软件行业不存在了,比如被 AI 吃掉了,软件危机才会真的消失。

    11 条回复    2024-06-26 20:20:17 +08:00
    wellCh4n
        1
    wellCh4n  
       2024 年 6 月 20 日
    软件危机不会消失,只会以另一种方式存在。假如被 AI 吃掉了,那么可能会出现 AI 软件危机。
    showB1
        2
    showB1  
       2024 年 6 月 21 日
    解决?以现在的状况过来看是加剧了。每换一个 leader ,方向变一次,技术栈换一套,系统重做一遍。问问现在的中台天天都在干啥?都是从重构到重做。拉屎谁都会,吃屎可就难了,吃屎还能在屎中汲取营养的就是高手高高手了。
    1000copy
        3
    1000copy  
    OP
       2024 年 6 月 21 日 via iPhone
    @showB1 哈哈话糙理不糙~~
    1000copy
        4
    1000copy  
    OP
       2024 年 6 月 21 日 via iPhone
    @wellCh4n 这是能量守恒的意思吧
    showB1
        5
    showB1  
       2024 年 6 月 21 日
    就像你思考的这个问题,咱们的国情下没人会从这个角度思考的,自然规律让步领导意志。什么软件危机、什么技术债,干不出来就是菜。
    1000copy
        6
    1000copy  
    OP
       2024 年 6 月 21 日 via iPhone
    @showB1 你这一句话捅到根本上了不管喜不喜欢,事实如此。真的就是你说的这样。大形势下不做无谓的小挣扎
    B1acKy1in
        7
    B1acKy1in  
       2024 年 6 月 22 日
    国外不知道咋回事,但是国内,我觉得应当按照工业软件的标准流程搞,先弄好需求调研再做好开发规划,剩下的变动只能是修复性的变动。敏捷开发这种碰到领导大于天的环境,只能是徒增负担
    1000copy
        8
    1000copy  
    OP
       2024 年 6 月 23 日 via iPhone
    @B1acKy1in 你说的就是瀑布模型。敏捷这种节奏要求更高,无论是对团队协作还是技术实力。领导不喜欢的话那确实难以做起来
    B1acKy1in
        9
    B1acKy1in  
       2024 年 6 月 24 日
    @1000copy 领导不喜欢只是个小问题,如果是领导看完敏捷开发,就觉得这是个他能随时随地瞎 jb 提需求的好机会,这就是个灾难了,事实上大多数时候都是灾难
    1000copy
        10
    1000copy  
    OP
       2024 年 6 月 26 日 via iPhone
    @B1acKy1in 哦,你说得是关于拥抱变化的。如果领导看到这条误解为可以随时提需求那委实麻烦。
    1000copy
        11
    1000copy  
    OP
       2024 年 6 月 26 日 via iPhone
    @1000copy 所以说如果瀑布都没有做好的,敏捷就更难了我觉得
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2053 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 16:13 PVG 00:13 LAX 09:13 JFK 12:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86