从梦断代码看软件工程的复杂性

软件工程与其他所有行业最大相径庭的一点,可能在于唯有在这一领域,关于失败的专注要多于成功的,软件工程的成功只有一种——按时按照要求完成交付(虽然在大部分情况下这只是一种幻想)——但失败却有着无穷无尽的可能,曾经看到一篇描述某欧洲国家政府软件项目的未经证实的文章,预期两三年完成,实际做了十二年,写了六百多万行代码,换了好几拨软件工程师,项目还陷入在无穷无尽的泥沼中难以自拔。倘若这个故事属实,大概是软件工程中又一个值得出一本专著的“杰作”了,和这个故事相比,《梦断代码》里的失败简直可以说是小巫见大巫了。

自《人月神话》之后,注入《软件开发的滑铁卢》、《死亡之旅》、《软件极限》(这本书被形容为由被诅咒的程序员战士写下的《伊利亚特》)等大批著作,都是对失败的软件项目的复盘和反思,但所有的这些反思,并没有能从根本上提高软件项目的成功率。更多的项目之所以没有被宣布为失败,很大一部分程度上是因为项目的实施者(或者用户)接受了充满缺陷的成品、同意追加了成本或者延长项目交付时间,软件工程中的时间黑洞永远让人无法看清其本质,在《梦断代码》中,这一过程被以充满史诗感的叙事风格详细而从容的讲述出来。

随时时代的进步,git之类工具的出现,以及后来软件工程的不断变革,大部分互联 公司的软件开发模式也发生了变化,台阶型的新版本推陈出新已经逐渐减少,大部分软件都进入了不断更新迭代的方式,依靠大量用户的使用和测试来发现缺陷并不断改进。但这样的方法仍然并不完善,致命的缺陷往往会随着迭代更新直接暴露在用户面前,苹果前一阵facetime缺陷就让一大批人隐私泄露,但在当下的软件工程中,这一类缺陷是很难避免的。从这个角度,像《梦断代码》一类的作品,更像是当时项目的墓志铭,为后人介绍项目失败的全过程,以及从中得到的教训,而软件工程自身新的发展与特点,则并没有在书中详述,而是需要读者在项目实施时不断摸索与持续学习了。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年1月22日
下一篇 2019年1月22日

相关推荐