论坛首页 综合技术论坛

调查:软件开发过程中工作量(成本)都是如何分布的?

浏览 14503 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-22   最后修改:2009-06-23
就著名的《人月神话》(含《没有银弹》)中有关软件生产率的问题,最近有意整理一篇相关的文字。在这里跟大家做一个调查。 每一个项目经理,都会关注项目的成本。 我这里所指的成本,只是指软件生产过程中的成本(工作量)。 至于其他的成本,例如销售、采购等等的费用都不算。

人月神话中是这么说的:
引用
所有软件活动包括根本任务——打造由抽象软件实体构成的复杂概念结构,次要任务——使用编程语言表达这些抽象实体,在空间和时间限制内将它们映射成机器语言。


引用
我认为软件开发中困难的部分是规格化、设计和测试这些概念上的结构,而不是对概念进行表达和对实现逼真程度进行验证。当然,我们还是会犯一些语法错误,但是和绝大多数系统中的概念错误相比,它们是微不足道的。


为了验证一下真的如《人月神话》中的结论,我想请大家根据自己的实际经验头一下票,验证一下。

以我的理解,将软件生产过程拆成 调研咨询,需求,设计,开发,测试(QA)。 要特别提一下,我这里的设计,自然包含了详细设计,即使你在没有任何设计的前提下去写代码,事实上你也肯定要去考虑设计的。

我把软件生产过程中的全部工作分为2个部分,合计为100%。 打造概念结构的工作属于A类,表达这个概念结构属于B类。
调研咨询,需求,设计近似属于A类,而开发则属于B类。
测试(QA)是对前面两方面的验证,用来测试概念化思维工作的成分你计算为A类,还是用来测试构造工作的作为B类。(如果你的项目里对于测试时会明确区分问题发生的原因是设计原因引起还是编码引起还是需求引起的话,就很好区分)

投票时如下:
A类: 50%
B类: 50%

如果大家对具体工作所属类别的划分有意见,或者对于该书的论点有意见,请在投票的同时写下你的观点和分析。热烈欢迎就这个问题交换意见。
   发表时间:2009-06-23  
这个是你在做项目时追踪得到数据后,统计出来的,而不是估计出来的
0 请登录后投票
   发表时间:2009-06-23  
RCFans 写道
这个是你在做项目时追踪得到数据后,统计出来的,而不是估计出来的


大哥,我要的正是你的历史经验数据!
0 请登录后投票
   发表时间:2009-06-23  
phpxer 写道
大哥,我要的正是你的历史经验数据!

我做的项目对你没有参考意义,做了近一年的救火队员,我加入的全是严重超期的问题项目,目前手上的这个,超期500%
不过我可以告诉你,我的工作经验中,所有超期的项目都是因为花在需求分析上的时间小于10%
项目中的时间分配大致上可以分为:管理、需求、设计、编码、测试、交付。需求和设计加起来合理的比例应是不小于50%。你有兴趣的话留个email,我可以给你发一份三点估算法的Excel。
0 请登录后投票
   发表时间:2009-06-24  
phpxer at  gmail.com

多谢
0 请登录后投票
   发表时间:2009-06-25  
RCFans 写道
phpxer 写道
大哥,我要的正是你的历史经验数据!

我做的项目对你没有参考意义,做了近一年的救火队员,我加入的全是严重超期的问题项目,目前手上的这个,超期500%
不过我可以告诉你,我的工作经验中,所有超期的项目都是因为花在需求分析上的时间小于10%
项目中的时间分配大致上可以分为:管理、需求、设计、编码、测试、交付。需求和设计加起来合理的比例应是不小于50%。你有兴趣的话留个email,我可以给你发一份三点估算法的Excel。

对软件消防人员 表示尊敬!~
0 请登录后投票
   发表时间:2009-06-25  
mock1234 写道
开发过程管理不是这个方法。你的所谓划分是那些无法技压众人所以根本不想深入开发过程管理的技术外行在给自己介入开发过程找借口。小心。对项目管理方法说多了(但是都是理想化的虚构而不是真正的工程创造),你反而使得项目成事不足败事有余。


我只是想在这个上面找到一些认同该观点的人们。 我们公司计划推行一个通用开发平台,我在想着通用开发平台应该朝着哪方面努力
0 请登录后投票
   发表时间:2009-06-25  
mock1234 写道
开发过程管理不是这个方法。你的所谓划分是那些无法技压众人所以根本不想深入开发过程管理的技术外行在给自己介入开发过程找借口。小心。对项目管理方法说多了(但是都是理想化的虚构而不是真正的工程创造),你反而使得项目成事不足败事有余。

这是一个视角问题,关键在于你如何看待软件开发这件事。如果你是一个醉心于编程本身的开发人员,有所侧重是应该的,但是你应该且必须接受一个观点就是,哪怕是很小的组织,都存在不同的工作视角,从不同的切入点来关注、解决问题。
仅仅作为一个开发人员的视角去考虑问题,无法做出成功的项目——哪怕成功的产品都不行。你好像很关心测试,在我们这,一个中级人员一个季度不允许出现6个线上bug,否则就得被开除。而我们能够轻松地达标,就是因为开发和管理过程的规范。这是一个很难得的数字,据我所了解,我前家公司的软件部门一天就要收到60个左右客户发来的bug。
你对于项目管理方法的看法我更是不敢苟同,请问你认为的开发过程管理是怎样的?被你否定的方法都被你实践过吗?优势劣势你都清楚吗?在另一个贴子里看到有人说“敏捷是方法论”,更是想哈哈一笑,我现在看的一本《敏捷评估与规划》,对用户故事拆分的几大原则真的是很实用的东西,比自己没头脑乱摸索捷径了不知多少倍。牢记开发只是一项应用技术,管理是一门科学。实践出真知,不做无真相。
0 请登录后投票
   发表时间:2009-06-25  
phpxer 写道
我只是想在这个上面找到一些认同该观点的人们。 我们公司计划推行一个通用开发平台,我在想着通用开发平台应该朝着哪方面努力

通用开发平台是指通用的开发框架还是协作平台?
如果是后者的话,首先,要看看你们的项目产品最适用于哪一种开发过程,这个东西,风险很高。关键是,它拿来干嘛的?
0 请登录后投票
   发表时间:2009-06-26  
RCFans 写道

通用开发平台是指通用的开发框架还是协作平台?
如果是后者的话,首先,要看看你们的项目产品最适用于哪一种开发过程,这个东西,风险很高。关键是,它拿来干嘛的?


总结十几年年来信息化系统建设的实战经验,希望打造一个能够大幅度提高生产效率的平台(类似于普元的那个),但是总体目标是实用,要真真地朝着提高生产率的方向努力。 但是我对于这一点,表示怀疑。《人月神话》里的那段话,似乎与我的怀疑印证。所以要请大家发表意见。

你说的协作平台是内部用于软件开发方面的协作的?
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics