对于大部分系统工作,往往并不存在单独的问题导致困难,而是很多小问题累积到一起时,导致问题的麻烦程度大幅提升。当系统复杂程度超过人脑能够理解思考的范围时,将导致问题难以解决。在开发过程中避免出现各种小问题是解决的关键,让项目情况始终保持清晰是非常必要的。

问题1:项目成员责任划分不清晰,导致的沟通问题。
解决方法:明确岗位职责,确立项目成员地位平等,互相分工协作的观念。

问题2:编程人员的乐观往往会忽略系统逻辑存在的问题。
解决方法:进行完备全面的测试。

问题3:程序员能力差异导致生产率的差异。
解决方法:围绕首席程序员,搭建开发团队。

问题4:系统设计概念不统一导致的混乱。
解决方法:由一个或者少数配合默契的优秀程序员进行自顶向下的设计,保证系统概念完整性与一致性;由其它开发人员负责具体实现,设计员只提供建议,不干涉开发人员的工作,保证开发人员的创造性。

问题5:因项目成员对系统概念理解的不完整、不一致导致的问题
解决方法:最好的方式是编制书面规格说明,保证项目成员的概念完整性。

问题6:需求不明确
解决方法:为确定项目需求安排更多的时间,在需求难以明确的情况下,可以使用敏捷开发方式,只是项目时间难以精确评估。在需求调研阶段应当与需求提出方在需求上达成一致。

问题7:项目问题难以提前发现,这个问题在软件项目上尤为突出
解决方法:明确任务达标标准与任务人天,依标准进行评估。

问题8:当使用敏捷开发模型时,随着迭代的进行,系统复杂度提升,导致代码难以维护。
解决方法:使用面向对象的编程范式;系统模块化、标准化;定期进行代码评审与交流,编写标准的API文档。

问题9:项目目标不明确,尤其阶段目标,每周,每日任务
解决方法:日会,周会明确进度与任务目标,项目里程碑需要是具体的、特定的、可度量的事件, 能够进行清晰定义。