《人月神话》阅读笔记2
作者借巴比伦塔项目的例子,讨论失败的原因是缺乏交流和组织,从而进度灾难、功能的不合理和系统缺陷纷纷出现,追其根本原因是团队成员之间的每个人的理解存在偏差,存在个人推测、群体猜忌等,因而团队之间应尽可能的相互讨论,无论是以正式的简要技术陈述的项目会议,共享的正式项目工作手册,还是非正式的小组讨论都可以让大家相互理解。同时人与人之间的交流和荣和也是相当花时间的,为了节约时间成本,组织结构要做好人力划分和限定职责范围的确定。在人力的划分上,也要注意权力和工作的划分,不允许双领导者的存在。
交流是很重要的,每个人都有自己的想法,然而人无完人,每个人的想法都是有缺陷的,不通过交流是很小概率能找到缺陷并改正的,所以交流很重要。
此外,软件开发人员必须设立规模目标,控制规模,考虑减少规模的方法,在规模预算时,明确所占内存空间、程序对磁盘访问次数、指明每个模块的功能。在整个实现的过程需确保连贯的系统的完整性。编程需要技术的积累,每个项目需要自己的标准组件库。数据的表现形式时编程的根本,所以战略上的突破常常来自于对数据或表的重新表达。
在对项目开发和管理时,要做好文档的撰写,例如目标、用户手册、内部文档、进度、预算、组织机构图和工作空间分配等。对每个关键文档的维护提供状态监督和预警机制,同时每个文档本身就可以作为检查列表或者数据库。开发策略上的一些正常变化无可避免,但是项目开发者应事先为一切推测可能发生的情况做好准备,但由于产品易于掌握的特性和不可见性,导致它的构造人员面临着永恒的需求变更,带来的困难是,程序员不愿为设计书写文档,为变更组件团队比为变更进行设计更加困难。
这就要求我们在平时要锻炼写作能力,同时也理解了每次让我们发表博客的原因,文档是必不可少的,是交流的前提,在此之前认为只有代码才是最重要的,所以只需要练习代码,而忽视了文档的练习。