终于读完了这本《人月神话》,对后面的章节中印象最深刻的部分还是祸起萧墙和银弹章节。
“项目怎么会被延迟了整整一年的时间……延迟的时间是一天天积累下来的”。通常灾祸来自白蚁的肆虐,而不是龙卷风的侵袭。项目进度就是这样,经常以一种难以察觉,但是残酷无情的方式慢慢落后。一天一天的进度落后是难以识别、不容易防范和难以弥补的。每件事的变化可能只会将某项活动延迟半天或者一天,但是整个进度开始落后了,尽管每次只有一点点。所以一定不要去忽视那些细节。正所谓细节决定成败。
日常生活中我们总是说某某某已经“90%完成”了,调试在大多时候也都是“99%完成”的,反正就差一步了嘛。可是具体的里程碑是百分之百的事件。“结构师和实现人员签字认可的规格说明”,“100%源代码编制完成,“测试通过了所有的测试用例”。这才叫百分之百,这才叫真真正正地完成。而我们不论是编程还是日常生活常常会栽的跟头就是由于差不多思想,什么什么反正差不太多,差不太多是差多少,是差的太少,还是差的太多,就是这样,常常使我们离成功只有一步之遥,这一步说简单只有一步而已,说难,它比前面的任意99步都要难跨过去,所以不到最后决不能说下完成的结论。
没有银弹-软件工程中的根本和次要问题。我们一直在寻找着银弹,然而我们必须明白在软件开发的过程中,只有适度改进,没有包治百病的银弹。在软件开发的过程中,重要的不是采用了什么工具,而是不论用何种工具,都要达到项目本身的客户需求。任何方法论之前,先要探求问题的来源,否则,对各种方法论的依赖或滥用,有害无益。
作者认为软件开发中困难的部分是规格化、设计和测试这些概念上的结构,而不是对概念进行表达和对实现逼真程度进行验证。当然,我们还是会犯一些语法错误,但是和绝大多数系统中的概念错误相比,它们是微不足道的。而概念的完整性也是本书的核心观点。歌德说过,“不了解,就无法真正拥有”。以后再编程序之前,一定要先对自己的设计思路有一个清晰完整的概念,而不是盲目下手,想哪儿编哪儿。
软件是不可见的和无法可视化的。 其中的秘密就是逐步发育成长,而不是一次性搭建。软件开发是一件棘手的事情,并不会有魔术般的解决方案,现在是从业者研究和分析革命性进展的时刻,而不是等待或希望它的出现。现在有可能可以在软件生产率上取得逐步的进展,而不是等待不可能到来的大突破。所以,新时代的我们要抓紧时间奋斗起来,随时准备迎接未来的挑战,共同推进软件开发的进步。
这本书整体对于目前的我还有一点很深的感悟是,对于像我这样未涉世的大学生,往往会将关注点只放在编程,放在技术层面,而很少关注类似于软件工程方法论的东西。造成这种原因有一些奉技术第一思想的影响,和自己的经验太少,使得注意力旁移。技术与方法论两者之间会有自己的平衡,无法给出二者之间的排序,可以确定的一点是,某一方面的占比过高,必定会引来灾难。所以这警示我在学习技术的同时也要学习一些方法论,提高自己的一种编程素养。而这本书,不是讲“鱼”的书,而是讲“渔”的书,通过读它,我学习到了软件工程的思维方式,以及项目经理的视角下看问题的方式。
最后引用书上的一句话作为结尾。“这个神奇的时代还远远没有结束,他依然在飞速发展,更多乐趣,尽在将来”!
原文地址:https://www.cnblogs.com/zzstdruan1707-4/p/10376536.html