免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2389 | 回复: 3
打印 上一主题 下一主题

对《浅析软件项目管理中的10个误区》的异议 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-20 17:21 |只看该作者 |倒序浏览
(转载自天极网)   2003年07月14日

  7月3日天极网登载了一篇题为《浅析软件项目管理中的10个误区》(以下简称《误区》)文章,阅后对作者的观点有些异见,在此提出希共同交流。

  笔者大体认同的观点是:[误区5]中关于白盒法测试可由程序员担当--因为程序员对程序的设计思路最熟悉,对可能引发错误的地方最为清楚,所以他们能制作出最快、最准的测试用例,所以由程序员完成部分"白盒法"测试是可行的、于提高效率/质量有益的;[误区8]中项目经理不一定是所有项目成员中薪水最高的--如果项目经理只执行管理性质的工作,对项目不形成建设性成果,在项目组中,除了文秘人员外,项目经理的薪资甚至可以是最低的。   

  作者所谓的误区3是:软件程序主要由代码组成,因此编码阶段是整个软件项目的最重要的阶段,应该给与大量的时间,并且集中主要的资源。--意即编码并不是主要的工作,分析、设计与测试才是主要工作,并提出了一个"资源的合理分配比例":项目论证、风险评估阶段3% ,项目需求分析阶段8%,系统总体/详细设计阶段45%,编码阶段10%,系统测试阶段34%。

  一般都看得到,软件程序由代码组成,代码是软件的实体。没有代码,再多、再完善的分析、设计、测试都是空洞/无意义的。在一定的技术水平条件下,系统中要编写的代码量是客观性质的,是硬性的工作量,不会因设计的不同而有太大的区别--除非一个外行、生手才可能堆砌大量冗余代码。分析、设计、测试则是可主观控制的,是柔性的工作量。好比收割一亩麦田,工作量是确定的--一亩麦田,工作方法是可以多样的,如一个人干、十个人干、用镰刀、用收割机;为完成该工作,也需要分析设计:如根据麦田的形状设计收割路线,以减少行走的距离,工作时休息几次、在何处休息,以使劳动者保持最佳舒适状态等等;为完成该麦田的收割,分析、设计的比重可以很小,小到可以为1%,总的工作量就是101%,工作的过程可能是劳动者苦一点、累一点;分析、设计的比重也可以很大,大到10000%,总的工作量就变为10100%,工作的有效成绩同样是完成一亩麦田的收割,只是工作的过程可能是劳动者感觉非常舒服。软件开发也是一样。同样的系统,其代码工作量是确定的,假设为100个人月。公司甲的开发方式中,资源分配比例是:论证1%、分析5%、设计9、编码70%、测试15%,公司甲对该项目的总开发成本是:100个人月/70%=约为143个人月。公司乙的开发方式中,资源分配比例是:论证3%、分析8%、设计45、编码10%、测试34%,公司乙对该项目的总开发成本是:100个人月/10%=约1000个人月。如果是竞标项目,显然公司甲更有获胜机会;如果是公司自身的项目,则公司甲的特点为:速度更快、成本更低,公司乙的特点为:工作流程更清晰、员工工作强度更低。实际中系统开发各部分的资源分配比例应如何,并无先天的规则,主要根据企业自身资金实力、企业文化、企业形象、员工福利待遇、及市场竞争等来定,特别地,不一定投入的成本越大,系统就能做得越好!


  作者所谓的误区6是:软件项目管理只是相关技术部门的事情,与公司其他部门无关。意即软件项目管理需要提高公司的整体参与意识,需要公司各个部门协同作战。殊不知道,公司设立专门的项目管理团队,就是为了能尽可能由该团队独立地解决掉项目过程中的各种问题,不要仍然象没有独立管理团队时一样,碰到一个问题时动不动就吆五喝六,把公司各部门的人都搅动起来,影响/牵制公司的全局工作。一个优秀的项目管理者,只有在非常必要时,才会去请求其他部门的协助--他首先会尽可能在项目团队内解决问题。
  作者所谓的误区7是:在开发进度滞后的情况下,可以聘请更多的程序员加入到开发团队中,通过增加人力资源来赶上进度。意即项目进行过程中,新人的加入不一定是有益的,可能会"好心好意做坏事",因为引导新人融入团队需要花费开发团队许多时间和精力,很有可能使项目进度更慢。其实作者的这一观点笔者也是认同的,只是作者文章前后的说法有点自相矛盾。作者贬见的是"作坊式"的软件管理,褒见的是"软件工厂式"管理、软件工程方法。按照软件工程规范来进行项目管理,各种文档、流程必然是相当规范的,而且软件工程化的主要目的之一也是要使项目不依赖于个人、能持续进行,即如此,新人加入时、融入团队时自然不应该存在什么困难!作者的矛盾,大概是理论与实际无法统一带来的尴尬。   

  作者所谓的误区8是:技术骨干应该成为项目的项目经理。意即在"软件作坊"时代,这是一种普遍使用而且效果不错的方法;而在"软件工厂"时代,这种方法却带来各种问题,有时甚至直接导致项目失败。软件项目不同于建筑项目,建筑项目中,绝大部分工作都是明确的,可明确分配给工人去做的,建筑项目管理中主要的问题是组织、领导、协调的问题,它确实不必需要建筑技术专才来管理;而软件项目中,大部分工作是不能简单描述清楚的,也不是简单地分配下去了就能被完成的,首先工作任务如何划分就需要技术能手才能作出,每一个任务可安排给团队中谁来做,也需要技术能手才能把握得准确,虽然不是必须的,但用技术骨干担当项目经理,更能保证项目组的工作效率、更能保证项目的成功。单从项目组效率上讲,技术骨干型项目经理带领的团队能保证90%以上的效率,而非技术型项目经理带领的团队大约只能保证40%--60%的效率。因为项目管理中还有不少人际交流上的问题,所以为技术骨干型项目经理配一个善于协调的助手/秘书,则更是一种黄金组合。
以上仅为笔者的一些浅见,欢迎指教。

论坛徽章:
0
2 [报告]
发表于 2003-08-20 17:40 |只看该作者

对《浅析软件项目管理中的10个误区》的异议

--除非一个外行、生手才可能堆砌大量冗余代码。
先看到这点

什么是冗余代码
是不是写得代码好看就不是呢

或是系统功能很乱
没有什么结构

软件结构不是几百行代码就可以决定的
而是整个项目组合作的结果

好的设计比好的编码速度更重要
为然XP就不用提倡什么重构了
重构是因为软件结构不合理才会提出的

论坛徽章:
0
3 [报告]
发表于 2003-08-20 22:52 |只看该作者

对《浅析软件项目管理中的10个误区》的异议

在一定的技术水平条件下,系统中要编写的代码量是客观性质的,是硬性的工作量,不会因设计的不同而有太大的区别

我觉得开发软件如同写作文,不同的人写出来的东西是不一样的。如果说区别不大的话,只能理解成在同一个工作环境中,很多思维和想法已经被同化了!

论坛徽章:
0
4 [报告]
发表于 2003-08-21 12:01 |只看该作者

对《浅析软件项目管理中的10个误区》的异议

从开发上来讲
好的设计可以使开发更容易

因为设计好了

以后要改变的地方就小
并且容易分模块定义接口
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP