一.为什么软件开发周期总是预估的2~3倍?
1.客户的需求不稳定,临时改变或增加需求的情况很多,这种情况会对软件开发的持续推进造成极大影响。
2.在软件开发中遇到非常复杂的技术难题,需要不少时间进行研究和实验,这就会导致软件开发周期的延长。
3.软件开发的过程中涉及到很多人,例如分析人员、开发人员、测试人员等等,当由不可控因素导致人员发生变化时,需要时间进行调整、培训和交接工作。
二.什么是分而治之?
分而治之就是把一个复杂的算法问题按一定的分解方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的解,用各部分的解得出整个问题的解。
其基本步骤如下:
分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题。
解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题。
合并:将各个子问题的解合并为原问题的解。
三.什么是WBS?
WBS的基本定义 :以可交付成果为导向对项目要素进行的分组,它归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义。即把按一定的原则把项目分解成任务,任务再分解成一项项工作,再把一项项工作分配给每个人,直到分解不下去为止。
WBS的作用:可以有效的理清整个项目结构,了解项目全貌。通过分析每个节点可以统筹整个项目所需的人力、时间、成本。细分项目范围,为项目划清界线。当提出需求时,能清晰的分辨出所提出需求为新增需求,还是变更需求,便于项目管理者管理项目。通过功能分解,便于了解及控制项目进度,规避风险。通过工作分解便于制订出合理的工作计划对一个大的工作包往往无法准确的进行评估,当对其进行细化分解后就能评估出相对准确的工作时间与人力资源。