(1) 软件产品的高度抽象性
��软件产品与其它任何产业的产品不同,它是无形的,没有重量,没有形状,没有颜色,没有气味──完全没有物理属性。对于这样看不见,摸不着的产品,难以理解,难于架驭。但它确实是把思想、概念、算法、流程、组织、效率、优化等融合在一起了。
��要开发这样的产品,在许多情况下,用户一开始给不出明确的想法,提不出确切的要求。他说不清究竟他需要的是什么。

(2) 软件需求在开发和维护过程中的易变性
��在开发的过程中,程序与其相关的文档资料常常需要修改。在修改的过程中又可能产生新的问题,并且这些问题很可能在过了相当长的时间以后才会发现。

(3) 软件文档工作的重要性
��文档资料工作的工作量在整个项目研制过程中占有很大的比重,是十分重要的工作。
��在软件开发实践中,人们往往对文档不感兴趣、认为是不得不做的苦差事,不愿认真地去做。因而直接影响了软件的质量。

(4) 软件人员的流动性
��软件开发工作技术性很强,要求参加工作的人员具有一定的业务水平和实际工作的经验。但事实上,人员的流动对工作的影响很大。离去的人员不但带走了重要的信息,还带走了工作经验。
��