1.
软件开发周期总是预估的2-3倍的原因主要在于多个方面的复杂性和不确定性,包括需求分析、设计、编码、测试等各个环节的复杂性,以及技术难度、资源限制、团队协作问题、需求变化等因素的影响。
-
(1)需求分析不足和变化:软件开发过程中,需求变更是一个常态。客户或用户可能难以准确描述自己的需求,或者需求随着时间不断变化。这些变化可能导致需求重新定义、设计修改、代码重构等,从而增加了开发周期。
-
(2)技术难度和资源限制:某些软件项目可能存在较高的技术难度,需要攻克技术难点,这需要更多的时间和资源。同时,软件开发需要人力、物力、财力等资源的支持,但往往因为各种原因,这些资源无法及时到位或者不足,从而导致开发周期延长。
-
(3)团队协作问题:团队成员之间的沟通不畅、分歧以及工作效率不高等问题,都可能导致项目进度缓慢。复杂的开发流程和每个阶段的复杂性与不确定性也会对开发周期产生影响。
综上所述,软件开发周期预估不准确的原因是多方面的,包括需求的不稳定、技术挑战、人员变动、决策影响、资源限制、团队协作问题、复杂的开发流程以及计划不准确等。为了更准确地预估软件开发周期,需要综合考虑这些因素,并在预估中留出一定的缓冲时间以应对意外情况。
2.
分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。在计算机科学中,分治法就是运用分治思想的一种很重要的算法。分治法是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)等等。
在求解一个输入规模为n,而n的取值又很大的问题时,直接求解往往非常困难。这时,可以先分析问题本身所具有的某些特性,然后从这些特性出发,选择某些适当的设计策略来求解。这种方法,就是所谓的分治法。
3.
WBS,即工作分解结构(Work Breakdown Structure),是指项目管理中用来表示项目工作任务细分结构的一种图表式组织方式。它是将项目的总体目标细化为一个个具体的小目标,便于管理者清晰的把握项目的全局安排和进度。
WBS的应用也正式由项目管理方法论
PMBOK(项目管理最佳实践指南)认可,有很多国家正在采用此方法作为指导项目的管理方法,而成为领域共识和工作流程的重要参考。