1.为什么软件开发周期总是预估的2~3倍?
在该文章中,作者没有直接的向我们解释为什么会出现这种情况,而是通过一个生活实例,从旧金山出发前往洛杉矶的纽波特沙滩与好友面基,并且通过地图预估了距离和初步预定到达时间,这就相当于软件开发的,与客户预定的开发周期。
1.没有充分的考虑产品需求:当我们真正的开始开发软件时,我们会遇到种种bug,没有充分的考虑产品需求,就好比如文章中以地图为距离,忽略了悬崖峭壁无法通过,小路步行缓慢通行,遇到雨水天气不能出发等诸多变况一样。
2.项目技术难度大:没有彻底去分析产品开发的难易度,开发软件的时候只顾及了软件开发测试时间,而忽略了估算修复的时间,从而增加开发时间。还有遇到技术难题,也学要更多时间去解决。
3.项目经理没有做好充分是时间分配:在软件开发中,项目经理需要合理地分配任务的时间,如果没有处理好任务的时间分配,就会导致开发周期的延长。
4.开发者的状态:软件开发的工作者不可能时刻保持着百分百的水平状态进行软件的开发,当状态不佳时就需要时间去调整,从而增加开发时间。
2.什么是分而治之?
分而治之时软件工程基础中的一个核心思想,它是将一个复杂问题分解成若干个子问题,再分别解决这些子问题,最后将解决方案集成在一起,形成最终的解决方案。在产品开发中,分而治之就是将一个庞大的产品开发项目分成若干个子项目,变成一个个结构简单,目标明确的任务后逐一解决,最后集成项目方案。分而治之在软件工程中,不仅可以提高解决问题的效率,还可以促进软件开发工作者更容易地理解产品需求,从而去实现软件本体。
3.什么是WBS?
在软件工程中,WBS全称为工作分解结构(Work Breakdown Structure)。它是软件开发中的一个过程:创建WBS,是项目工作中可交付成果分解成较小的,更易于管理的组成部分的过程;WBS在项目管理中处于计划过程的中心,是制定进度计划、资源需求、成本预算、风险管理计划和采购计划等的重要基础,同时也是控制项目变更的重要基础。
1.WBS的主要作用:
- 清晰的表示各个项目之间互相联系的结构设计工具
- 展现项目全貌,详细说明项目必须完成的工作任务和所需的工具等
- 防止遗漏项目的可交付成果
- 易于关注项目目的和项目进程
2.WBS的创建方法:
- 模板法:参照现成的WBS模板,替换成自己项目的模块,适用于规模化的开发。
- 自上而下法:从项目的整体目标开始,按阶段或功能规划几大块,然后再逐层分解,建议纵横不超过7层。
- 自下而上法:适用于尚未形成结构化产品概念的项目,强调从功能点入手进行三步走:首先,进行发散性思维;其次,对功能点分类形成上一级功能包;最后,依次向上逐级收敛。
3.创建WBS要遵循的原则:
- 每个交付成果都应该有细分的细节,便于管理控制
- 每个工作包都应有一个负责人和工作范围
- 可以重复使用已有的WBS元素,提高工作效率
- WBS应当是可变的,可以随着项目的调整而改变