06人月神话阅读笔记之三
未雨绸缪 软件系统开发需要一个实验性的工程,这个工程的丢弃和重建都是可以接受的,而系统结构发生变化也会导致开发团对结构的变化;软件发布后,随着时间推移,需要的维护工作会逐渐增加
干将莫邪 软件开发需要通用的工程技术,否则会导致沟通效率的降低,需要考虑到机器、编程语言等部分
整体部分 系统各个部分的设计假设不兼容是系统严重bug的主要来源,测试规格说明、自顶而下的设计、结构化编程可以减轻这种问题;系统构建需要进行调试,主要分为构件单元调试、系统集成调试。
祸起萧墙 系统开发工程中出现的严重开发问题往往来自这一过程的积累,突发的情况不可能导致开发长期落后;好的里程碑是提出合理要求的一项服务,糟糕的里程碑是对开发工程的负担,会造成开发团队的士气低落;项目开发工程需要评审的存在,作为管理者的预警系统。
另外一面 无论是软件工程师还是用户都会渐渐失去对程序的了解,文档、流程图等可以帮助我们快速上手开发好的程序