老师推荐了这本书读起来收获很大,这里分享一下自己的感悟。首先我感到软件工程领域是个新的领域,发展的前景很广,对社会的影响也深渊,本书人月神话作者从自己的经历实践中阐述了自己的观点,从作者对自己的经历的自述中我发现作者也并非一路平坦有过成功有过失败但总的算是成功,“过去几十年的大型系统开发就犹如这样一个焦油坑,其中只有非常少数的项目满足了目标、时间进度和预算的要求。各种团队,大型的和小型的,庞杂的和精干的,一个接一个淹没在了焦油坑中”确实在以往的例子中有不少失败的就像淹没在了焦油坑,诚然有许多许多小程序员不怎么起眼但通过简单的团队,简单的环境却也编出了大型的有巨大经济效益的软件,这里面体现了人月神话的思想,
人员和时间的调配也就是效率了,我们都能从编译成功中感到乐趣,因为它给予我们成就感,我们做出了对别人有用的东西,相反某项软件老是有找不到的错误会让我们是去兴趣,并且我能总是觉得自己的不够完美,一直在追求更加完美,我们应对估算技术进行有效的研究,它能让我们不产生那种 一切都将运作良好的假设,这种不真实的假设会打击我们的自信心,当我们的进度出现偏移时,盲目的增加人力会让事情更糟,从而导致恶性循环,这告诉我们进度的重要性,在我的编程过程中也存在着一种乐观主义,常常认为这就是最后一个错误我就要成功了,然而错误时接着一个有一个概念以及灵活的表现形式来开发程序。正由于介质的易于驾驭,我们期待在实现过程中不会碰到困难,因此造成了乐观主义的弥漫。而我们的构思是有缺陷的,也就是说,我们的乐观主义并不应该是理所应当的。合理的安排时间非常重要,要结合顾客要求和项目实际来对时间做出合理正确的计划安排。
外科手术队伍体现的则是兵贵于精,优秀的程序员和一般的程序员之间巨大的差别,需要协作沟通的人员的数量影响着开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果(系统调试) 。这一点,也暗示系统应该由尽可能少的人员来开发。实际上,绝大多数大型编程系统的经验显示出,一拥而上的开发方法是高成本的、速度缓慢的、不充分的,对于效率和概念的完整性来说,最好由少数干练的人员来设计和开发, 而对于大型系统, 则需要大量的人手, 以使产品能在时间上满足要求。,在Harlan Mills的建议中人员的组配应该像外科手术一样,由一个人来进行问题的分解,其他人给予他所需要的支持,以提高效率和生产力,如此效率极大提高,在传统的两人队伍与外科医生——副手队伍架构之间的区别中,传统的团队将工作进行划分,每人负责一部分工作的设计和实现。在外科手术团队中,外科医生和副手都了解所有的设计和全部的代码。节省了空间分配、磁盘访问等的劳动量,确实 也确保了工作概念上的完整性,这两种团队组建上的差异——对问题不进行分解和上下级的关使外科手术队伍可以达到客观的一致性。
概念一致性反映了一系列完整的思路,可省略一些不规则的特性和改进,也不提倡独立和无法整合的系统,哪怕它们其实包含着许多很好的设计,目标的建议性要求我们尽可能的让功能说明简练易于理解。
总之本书中,作者结合亲身经历向我们阐述了一个个经典的案例,发人深省对于我这种编程初级者有很大的教导性,有的是自己也经历过得有的则是以后即将经历的,有很大的指导作用。