梧州八方网络科技有限公司
 建站热线:0774-2661286
您的位置:首页 -> 资讯中心 -> 软件技术

软件架构引言之项目管理的问题(2)

2014-02-21 14:41:11  来源:  编辑:admin

要让项目计划贴近现实,首先我们需要把项目中所有的工作都罗列出来,然后把每一个步骤地工作进行细分,以致细分到“原子级”,也就是不能再分的程度,从软件项目来看,就是分到“文件”,分到“类”甚至分到“函数”级别。然后对这些“原子级别”的工作进行评估时间,累计综合,最后乘上一个系数(一般是2),就是最终项目所要花费的时间了

  说起来容易,做起来难!光是要求把工作细分到原子级,就已经足以让一大批项目经理当场晕倒了。

  我们再回来看例子2,如果解题的人忘记了这个求解的公式的话,前面估算的进度是否需要调整呢?回答是肯定的。这样的时间计算就需要考虑寻找资料的时间,只要找到公式,计算出结果就不是问题了,而找公式所花费的时间,在有通畅的网络连接情况下,包括网络搜索、询问同事等等方法,一个小时足矣!

  如果说光是找一个公式就需要额外的一个小时的话,把例子2的题目修改成计算“傅立叶”

变换(非编程计算)又需要多少时间呢?显然跟解二元一次方程又不是一个数量级的工作了,我们除了寻找资料之外,大部分人还需要学习,没有高等数学基础的人恐怕更需要加入“研究”了。

  从例子2就可以总结出如下几个现象:工作与工作之间可以有层次关系的,一个看似很简单的工作,很可能会隐含着巨大的工作量,在某些先决条件没有或者准备不足的情况下尤其如此。要准确估算一个工作所用的时间,首先我们就要把“折叠”起来的“工作树”尽可能完全“展开”,其次就必须要遏制工作中的“学习”、“研究”甚至“查询搜索”的工作量。总之,在实际项目开展的时候,就要尽可能让所有的工作都是单纯的,可以预测的,并且尽可能排除那些不可控、不可靠的因素。

  换句话说,项目的每一个工作与时间的关系都必须是“线性”的。如果实在不能排除“非线性”的工作,也必须在“可控”的范围内,项目内部不允许有“不可控”的“非线性”因素存在。

  一句话: 脑筋动得越多,事情做得越慢!

  到底项目中究竟有多少因素是属于“不可控”呢?哪些又是属于“可控”的?哪些属于“线性”因素?要回答这个问题,我们首先来看一下我们目前的软件开发方式和流程吧:

(一)接单签订合同

(二)需求调研、分析

(三)架构设计、概要设计

(四)详细设计

(五)编码、测试

(六)交付、维护

  大致六个步骤,其中三四五是和我们谈得开发过程相关联(其他部分我会在以后的系列文章中讨论)。首先我们看第三点和第四点,他们统称为“设计”,参考文献2中给出的“设计”阶段的目标是解决四方面的问题:数据结构,软件体系结构,过程细节,接口性质。

  有经验的读者我想已经看出来了,传统的“设计”所解决的问题,有相当一部分应该归纳为现在的“架构”范围内。软件架构涉及的范围主要包括如下:

(一)应用程序的层次划分(比如界面层,存储层等),

(二)部分应用程序模块的划分(比如初始化模块,配置模块,权限模块等),

(三)部分应用程序模块的实现(权限、用户、组织机构管理等),

(四)函数库的实现,

(五)各模块、层之间的相互关系和通讯机制,

(六)相关的部分数据结构定义。

  如此可见,上文中的第三和第四点最重要和最基础的工作基本就在“架构”范围内,剩下的工作,基本就是跟具体业务相关的了。

上一篇:软件架构引言之项目管理的问题(3)

下一篇:软件架构引言之项目管理的问题1

联系我们

官方微博:http://weibo.com/wzbafang

咨询QQ:2818188008

咨询热线:0774-2661286

官方微信:八方网络

扫一扫访问手机版

关注微信公众号

 
QQ在线咨询
咨询热线-周经理
0774-2661286
咨询热线-黎经理
0774-2661286