<div class="rich_media_content">
<p style="max-width:100%;min-height:1em;color:rgb(62,62,62);font-size:16px;white-space:normal;line-height:25.6px;text-align:center;background-color:rgb(255,255,255);"><span style="color:rgb(46,46,46);font-size:15px;line-height:inherit;">编者按:很多软件项目开发时间大大超出了规划的时间,投入大量资金和人力,都没有实在的结果。如果你讨厌你的编程工作,请认真阅读这篇 2008 年的文章吧。法国科技公司为政府做的项目,预期两三年,做了十二年还在做;6 百万行 C++ 代码,经理比工程师多,人员素质极低。</span><br></p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);">几年前,我在一家法国大型科技公司工作,为他们的一个软件项目做咨询师。在那段时间,我见识到了软件工程工作方面最匪夷所思的一切,完全超乎我的想象。项目人员工作极度不专业,而更严重的是,工作环境完全无视人的尊严。我一度觉得去那里上班就像坐牢。我只要举几个例子,读者自然就有分晓。</p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);"><span style="color:rgb(255,0,0);"><strong style="border-width:0px;">工作内容</strong></span></p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);">为一个政府部门开发一款软件。</p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);">政府先付了几百万欧元的订金,软件开发耗时初定 2 到 3 年。公司雇了几个工程师,开始了项目。每隔三个月,团队人数就翻一番,以便让资金不断流入。</p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);">7 年后,项目还不成样子,连雏形都没有。每天公司都要交几千欧元的罚金。于是,管理层决定节流,把经验丰富的员工都辞退了,雇了些经验少,甚至完全没经验的新人。</p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);">10 年后,项目进度实在太滞后,中层管理人员决定雇佣有软件工程经验的人,把项目拉回正轨。公司的员工每三个月换一批,也就是法国离职交接期的时长。</p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);">12 年后,项目还没结束。公司每天给政府发的修改申请越来越多,以“补贴”每天缴纳的罚金。此时已经是 2008 年。</p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);"><span style="color:rgb(255,0,0);"><strong style="border-width:0px;">项目数据</strong></span></p>
<ul class="list-paddingleft-2"><li><p><span style="font-size:15px;">600 万行代码</span></p></li><li><p><span style="font-size:15px;">基于 C ++</span></p></li><li><p><span style="font-size:15px;">50,000+ 类</span></p></li><li><p><span style="font-size:15px;">使用的 C ++ 已经过时,“锁死”在编译器版本中,编译器的版本只能一个操作系统上用。</span></p></li><li><p><span style="font-size:15px;">基于 CORBA</span></p></li><li><p><span style="font-size:15px;">项目使用的数据库软件背后的公司已经破产</span></p></li><li><p><span style="font-size:15px;">图层用户界面有好几个,但实际上每一层都没人维护。</span></p></li><li><p><span style="font-size:15px;">32 台计算机上构建,需要 48 小时</span></p></li><li><p><span style="font-size:15px;">运行一个用户界面需要 40 到 50 个并行进程</span></p></li><li><p><span style="font-size:15px;">没有动态库链接:可执行文件大小在数百兆字节范围内</span></p></li><li><p><span style="font-size:15px;">启动时间约为 15 分钟</span></p></li><li><p><span style="font-size:15px;">瘫痪频率:每 30 秒到 30 分钟一次</span></p></li></ul>
<p><br></p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);">没有哪个软件工程师会说 C++ 很简单。就其复杂程度而言,这或许是最难掌握的编程语言,就连创造 C++ 的几个工程师都坦白说,他们自己也没有完全掌握。</p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);">这种无底洞、大迷宫似的语言,还是有不少人扬言说自己已经掌握了,只要有机会,他们就敢用给你看。他们一猛子扎进这口深井,最后大多遍体鳞伤。看着一满篇天书,花不知多少小时,也找不到瘫痪原因。人都是很聪明的,人生短暂,投入一段时间没有回报,就会“弃暗投明”,改用其他语言,改做其他项目。</p>
<p style="border-width:0px;margin-bottom:20px;font-size:15px;color:rgb(46,46,46);">软件一大,不管是什么语言写的,维护起来都很难。6 百万行代码,就一个小团队维护,只 |
|