论坛首页 综合技术论坛

如何处理软件项目中发生的需求变化

浏览 18620 次
精华帖 (6) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-05-17  
在IT行业中,有一个不能忽视的问题。这个问题就是如何面对那些经常在发生变化的业务需求。做IT项目,客户老是喜欢在项目进行过程中修改需求或者增加新需求。诚然,在项目一开始的阶段,客户不清楚自己到底需要怎么样一个系统,往往在项目进行中突然明白或者说清楚自己真正想要个什么样的系统。所以这些在项目过程中提出来的变化需求也并不是客户在无理取闹,反而对客户来说比在项目开始阶段那些双方互相确定的需求更加有意义和重要。

    就我以前的经验和思路,我对这个问题的解决思路基本上是这样的。

首先,变化就意味着风险。我们当然要把这个问题当作项目中风险的一种来处理。那常规的处理方法也就这么几个。风险的量化,风险的监控什么的。实际上判定一种风险对我们的影响程度究竟有多大的时候,我们往往只需要问自己一个问题就可以:新需求发生或者老需求变化时候,我们是否已经习惯处理这样类似的突发事件?我总结了一下,我们以前处理的时候无非也就是这样五种情况。

1.  我们以前解决过,这对我们没什么,很正常的事情。(作战能力强的团队都有资格这么说)

2.  我们没解决过,但公司里其他项目组,产品组好像解决过。有专门的解决方案文档可以查阅。(向公司内部寻找帮助是个好办法,但在中国行不通,我就看见过有人可以解决但就故意不配合你,让你自己解决去,而不给予任何帮助。)

3.  公司里没有这样的解决方案的资料,但是有很多第三方的资源可以利用。(做JAVA的人好像都喜欢,的确我也听说这样一句话:“内事不决问老婆,外事不决问google”)

4.  好像听说过有人解决过,不过记不清楚了。(等于没说,其实就是没办法解决问题)

5.  的确之前没有解决过这样的问题。但可以试一下,可以作点有开创性的工作应该会有成就感。(以积极的态度来看待自己从来没有经历过的工作)

    其实当我们面对一个变化的需求或者新需求时候,可以看看我们是采取上面五种情况里那一种来解决。我认为如果能用前面三种情况解决,基本上我们就可以答应客户去做或者更改需求。如果是后两种,最好还是慎重点为好,特别是最后一种,虽然态度是不错的,但态度有时候并不决定一切。好心办坏事的事情屡见不鲜。

   但是就算这样,并不能算结束了。其次我们还要评估一下需要增加或者修改的需求对客户的重要性问题。对于客户那边的业务人员来说,这样一个需求在他们眼里是怎么样的也决定了我们是否答应他们做这个需求。

    如果系统中没有这样一个功能,业务人员是否会注意?或者他们会注意到没有这么一个功能但觉得并不影响他们使用系统。又或者是一小部分或者一大部分甚至整个系统都需要依赖这个功能,没有它影响很大?这个也是我们在评估的时候需要考虑到的。

    还有一点就是如果我们这个项目团队没有人会完成或者修改这个需求所需要的技术怎么办?因为我是做JAVA的,JAVA的东西是在是太多了,就我看见的技术人员,没有一个人是十八般兵器样样皆精的。所以这也是需要考虑的。这样一个需求所需要用的技术是否是我们需要一段培训时间才能掌握的?或者有可能我们会,但是掌握的不太熟练,需要用一段时间才能达到熟练水平。当然也有可能我们已经很熟练了。或者对我们来说这完全是小菜一碟。

    所以当我们面临这样一个崭新的或者变化的需求,我们要从过去的风险解决经验,对客户业务人员的重要性和技术团队使用技术水平这三方面来评估。

    我以前也是经常这么做的,说老实话我觉的还凑合,基本上不会让客户说闲话。而且有时候我们要顶住客户的无理需求时候,拿这三个做理由往往都能让他们无话可说。毕竟我们讲的出道理为什么不答应做这个新需求。
   发表时间:2009-05-19  
如果另外一个项目组解决过该问题,那么你应该跟他们的上级商量,腾出专门的时间来帮你们解决,而不是直接找人家的开发人员,因为人家也有事情要做。
0 请登录后投票
   发表时间:2009-05-19  
yiding_he 写道

如果另外一个项目组解决过该问题,那么你应该跟他们的上级商量,腾出专门的时间来帮你们解决,而不是直接找人家的开发人员,因为人家也有事情要做。

就是他们领导不同意,而且是两个项目经理对等交流,人家那组项目经理根本不鸟你。这是我看到过的。不过另外一些情况中,由CTO或者技术总监去push的话,解决问题成功率几乎是百分之百。唉,这年头没有活雷锋啊
0 请登录后投票
   发表时间:2009-05-19   最后修改:2009-05-19
mock1234 写道
讨论应对需求设计变化的项目管理技术很重要!

javaeye论坛讨论气氛很差,书籍或者软件广告倒是很多。我看到了一个可笑的“项目管理系统”软件广告,可笑地是,难道OA、电子表格之类的软件商把垃圾模块重新包装之后塞在一起就可以自诩为项目管理软件?

我们所谈论的大多数项目管理看来真的是垃圾啊。

到底什么才是项目管理?什么才是软件项目管理?什么才是敏捷团队的项目管理?这是有深度、需要专业性知识的问题?OA,或者办公室管理,简单地偷换成项目管理,这类找不着半点行业知识的软件会让真正在具体行业中因为懂行而才能够进行项目管理实践的人耻笑。

因此,回到楼主的讨论,提高软件项目管理应变水平要落实到技术上,从架构师自身是否由于长期管理此类项目而习惯于高水平地进行设计着手(他自己进行重构、适配设计,随时控制、协调各个开发团队的进度),而不仅仅是看看公司其它部门或者网上有没有可抄袭模仿的代码。掌握了这种技术的人才应该做项目管理。

例如,经常可以看到一些专门给大型科研企业、机关等一个办公局域网内全面进行管理并且要求高负载的复杂一些的系统,其设计者竟然直接扎到一个数据库表结构设计中去开始进行设计,而不是从了解网络互联、业务对象的通讯技术、业务对象的缓存设计等等高层次方面着手,这就是小软件作坊公司或者虽然在大公司但是只做过编程没有应对过需求设计变化的结果。就算找到很会侃架构的项目管理者,尚且有可能不能灵活应对需求变化,那些连架构都没有而是抄袭来一段段代码来“解决”需求变化的人则更难以搞懂应该使用什么技术来应对需求变化了,因为抄袭来的一个一个片段不可能具有完全一致的业务背景知识,可能是一个个非常低级的代码演示程序而只能满足普通程序员收集一些编程技巧的爱好而已。


不清楚这位“mock1234”仁兄的意图,是在和楼主交流看法和经验,抑或是纯粹的展示自己对项目管理的“理解”?

楼主交流的是自己的实战经验,而不是在对现目前的风气进行说三道四。我们需要的不是“高度”的说教,而是各位切合实际的实战经验分享。
0 请登录后投票
   发表时间:2009-05-19   最后修改:2009-05-19
黑暗浪子 写道

就是他们领导不同意,而且是两个项目经理对等交流,人家那组项目经理根本不鸟你。这是我看到过的。不过另外一些情况中,由CTO或者技术总监去push的话,解决问题成功率几乎是百分之百。唉,这年头没有活雷锋啊


其实换个位置思考,每个领导都有自己的难处和顾虑,想想周围到处都是虎视眈眈的竞争者,谁敢懈怠?所以更谈不上无私奉献。

因此,为合理处理需求的变化,(有)沟(才)通也是非常重要的一门学问,在下不才,也经常为这类的事情犯愁。
0 请登录后投票
   发表时间:2009-05-19  
david_hg123 写道

mock1234 写道讨论应对需求设计变化的项目管理技术很重要!

javaeye论坛讨论气氛很差,书籍或者软件广告倒是很多。我看到了一个可笑的“项目管理系统”软件广告,可笑地是,难道OA、电子表格之类的软件商把垃圾模块重新包装之后塞在一起就可以自诩为项目管理软件?

我们所谈论的大多数项目管理看来真的是垃圾啊。

到底什么才是项目管理?什么才是软件项目管理?什么才是敏捷团队的项目管理?这是有深度、需要专业性知识的问题?OA,或者办公室管理,简单地偷换成项目管理,这类找不着半点行业知识的软件会让真正在具体行业中因为懂行而才能够进行项目管理实践的人耻笑。

因此,回到楼主的讨论,提高软件项目管理应变水平要落实到技术上,从架构师自身是否由于长期管理此类项目而习惯于高水平地进行设计着手(他自己进行重构、适配设计,随时控制、协调各个开发团队的进度),而不仅仅是看看公司其它部门或者网上有没有可抄袭模仿的代码。掌握了这种技术的人才应该做项目管理。

例如,经常可以看到一些专门给大型科研企业、机关等一个办公局域网内全面进行管理并且要求高负载的复杂一些的系统,其设计者竟然直接扎到一个数据库表结构设计中去开始进行设计,而不是从了解网络互联、业务对象的通讯技术、业务对象的缓存设计等等高层次方面着手,这就是小软件作坊公司或者虽然在大公司但是只做过编程没有应对过需求设计变化的结果。就算找到很会侃架构的项目管理者,尚且有可能不能灵活应对需求变化,那些连架构都没有而是抄袭来一段段代码来“解决”需求变化的人则更难以搞懂应该使用什么技术来应对需求变化了,因为抄袭来的一个一个片段不可能具有完全一致的业务背景知识,可能是一个个非常低级的代码演示程序而只能满足普通程序员收集一些编程技巧的爱好而已。

不清楚这位“mock1234”仁兄是在和楼主交流看法和经验,还是纯粹的展示自己对项目管理的“理解”?

楼主交流的是自己的实战经验,而不是在对现目前的风气进行说三道四。我们需要的不是说教,而是各位的实战经验分享。


其实他说的也是有道理的,我十分欢迎这样有独特见解的帖子,有些事情不辩不明。通过互相交流自己的想法学到点新东西也是一件好事。
0 请登录后投票
   发表时间:2009-05-19  
david_hg123 写道

黑暗浪子 写道
就是他们领导不同意,而且是两个项目经理对等交流,人家那组项目经理根本不鸟你。这是我看到过的。不过另外一些情况中,由CTO或者技术总监去push的话,解决问题成功率几乎是百分之百。唉,这年头没有活雷锋啊

其实换个位置思考,每个领导都有自己的难处和顾虑,想想周围到处都是虎视眈眈的竞争者,谁敢懈怠?所以更谈不上无私奉献。

因此,为合理处理需求的变化,(有)沟(才)通也是非常重要的一门学问,在下不才,也经常为这类的事情犯愁。

其实我这篇文章是来源于《敏捷软件开发》中的一段。我当时写此文目的是针对作者的美国思维说一些自己的想法。毕竟中国的情况很不一样。不能照搬美国的做法。特别是关于这个内部寻求帮助的事情,其实是作者提出的。我针对我看到的情况说几句自己的话而已。
0 请登录后投票
   发表时间:2009-05-19  
黑暗浪子 写道
david_hg123 写道

mock1234 写道讨论应对需求设计变化的项目管理技术很重要!

javaeye论坛讨论气氛很差,书籍或者软件广告倒是很多。我看到了一个可笑的“项目管理系统”软件广告,可笑地是,难道OA、电子表格之类的软件商把垃圾模块重新包装之后塞在一起就可以自诩为项目管理软件?

我们所谈论的大多数项目管理看来真的是垃圾啊。

到底什么才是项目管理?什么才是软件项目管理?什么才是敏捷团队的项目管理?这是有深度、需要专业性知识的问题?OA,或者办公室管理,简单地偷换成项目管理,这类找不着半点行业知识的软件会让真正在具体行业中因为懂行而才能够进行项目管理实践的人耻笑。

因此,回到楼主的讨论,提高软件项目管理应变水平要落实到技术上,从架构师自身是否由于长期管理此类项目而习惯于高水平地进行设计着手(他自己进行重构、适配设计,随时控制、协调各个开发团队的进度),而不仅仅是看看公司其它部门或者网上有没有可抄袭模仿的代码。掌握了这种技术的人才应该做项目管理。

例如,经常可以看到一些专门给大型科研企业、机关等一个办公局域网内全面进行管理并且要求高负载的复杂一些的系统,其设计者竟然直接扎到一个数据库表结构设计中去开始进行设计,而不是从了解网络互联、业务对象的通讯技术、业务对象的缓存设计等等高层次方面着手,这就是小软件作坊公司或者虽然在大公司但是只做过编程没有应对过需求设计变化的结果。就算找到很会侃架构的项目管理者,尚且有可能不能灵活应对需求变化,那些连架构都没有而是抄袭来一段段代码来“解决”需求变化的人则更难以搞懂应该使用什么技术来应对需求变化了,因为抄袭来的一个一个片段不可能具有完全一致的业务背景知识,可能是一个个非常低级的代码演示程序而只能满足普通程序员收集一些编程技巧的爱好而已。

不清楚这位“mock1234”仁兄是在和楼主交流看法和经验,还是纯粹的展示自己对项目管理的“理解”?

楼主交流的是自己的实战经验,而不是在对现目前的风气进行说三道四。我们需要的不是说教,而是各位的实战经验分享。


其实他说的也是有道理的,我十分欢迎这样有独特见解的帖子,有些事情不辩不明。通过互相交流自己的想法学到点新东西也是一件好事。

引用一个不恰当的例子:

1、用“纸上谈兵”来指挥你作战

2、用“实战经验”来指挥你作战

你喜欢哪种?
0 请登录后投票
   发表时间:2009-05-19  
david_hg123 写道
黑暗浪子 写道
david_hg123 写道

mock1234 写道讨论应对需求设计变化的项目管理技术很重要!

javaeye论坛讨论气氛很差,书籍或者软件广告倒是很多。我看到了一个可笑的“项目管理系统”软件广告,可笑地是,难道OA、电子表格之类的软件商把垃圾模块重新包装之后塞在一起就可以自诩为项目管理软件?

我们所谈论的大多数项目管理看来真的是垃圾啊。

到底什么才是项目管理?什么才是软件项目管理?什么才是敏捷团队的项目管理?这是有深度、需要专业性知识的问题?OA,或者办公室管理,简单地偷换成项目管理,这类找不着半点行业知识的软件会让真正在具体行业中因为懂行而才能够进行项目管理实践的人耻笑。

因此,回到楼主的讨论,提高软件项目管理应变水平要落实到技术上,从架构师自身是否由于长期管理此类项目而习惯于高水平地进行设计着手(他自己进行重构、适配设计,随时控制、协调各个开发团队的进度),而不仅仅是看看公司其它部门或者网上有没有可抄袭模仿的代码。掌握了这种技术的人才应该做项目管理。

例如,经常可以看到一些专门给大型科研企业、机关等一个办公局域网内全面进行管理并且要求高负载的复杂一些的系统,其设计者竟然直接扎到一个数据库表结构设计中去开始进行设计,而不是从了解网络互联、业务对象的通讯技术、业务对象的缓存设计等等高层次方面着手,这就是小软件作坊公司或者虽然在大公司但是只做过编程没有应对过需求设计变化的结果。就算找到很会侃架构的项目管理者,尚且有可能不能灵活应对需求变化,那些连架构都没有而是抄袭来一段段代码来“解决”需求变化的人则更难以搞懂应该使用什么技术来应对需求变化了,因为抄袭来的一个一个片段不可能具有完全一致的业务背景知识,可能是一个个非常低级的代码演示程序而只能满足普通程序员收集一些编程技巧的爱好而已。

不清楚这位“mock1234”仁兄是在和楼主交流看法和经验,还是纯粹的展示自己对项目管理的“理解”?

楼主交流的是自己的实战经验,而不是在对现目前的风气进行说三道四。我们需要的不是说教,而是各位的实战经验分享。


其实他说的也是有道理的,我十分欢迎这样有独特见解的帖子,有些事情不辩不明。通过互相交流自己的想法学到点新东西也是一件好事。

引用一个不恰当的例子:

1、用“纸上谈兵”来指挥你作战

2、用“实战经验”来指挥你作战

你喜欢哪种?

呵呵,不必这么排斥。理论也有它合理之处,关键看使用理论的人如何使用~

0 请登录后投票
   发表时间:2009-05-19  
黑暗浪子 写道
david_hg123 写道
黑暗浪子 写道
david_hg123 写道

mock1234 写道讨论应对需求设计变化的项目管理技术很重要!

javaeye论坛讨论气氛很差,书籍或者软件广告倒是很多。我看到了一个可笑的“项目管理系统”软件广告,可笑地是,难道OA、电子表格之类的软件商把垃圾模块重新包装之后塞在一起就可以自诩为项目管理软件?

我们所谈论的大多数项目管理看来真的是垃圾啊。

到底什么才是项目管理?什么才是软件项目管理?什么才是敏捷团队的项目管理?这是有深度、需要专业性知识的问题?OA,或者办公室管理,简单地偷换成项目管理,这类找不着半点行业知识的软件会让真正在具体行业中因为懂行而才能够进行项目管理实践的人耻笑。

因此,回到楼主的讨论,提高软件项目管理应变水平要落实到技术上,从架构师自身是否由于长期管理此类项目而习惯于高水平地进行设计着手(他自己进行重构、适配设计,随时控制、协调各个开发团队的进度),而不仅仅是看看公司其它部门或者网上有没有可抄袭模仿的代码。掌握了这种技术的人才应该做项目管理。

例如,经常可以看到一些专门给大型科研企业、机关等一个办公局域网内全面进行管理并且要求高负载的复杂一些的系统,其设计者竟然直接扎到一个数据库表结构设计中去开始进行设计,而不是从了解网络互联、业务对象的通讯技术、业务对象的缓存设计等等高层次方面着手,这就是小软件作坊公司或者虽然在大公司但是只做过编程没有应对过需求设计变化的结果。就算找到很会侃架构的项目管理者,尚且有可能不能灵活应对需求变化,那些连架构都没有而是抄袭来一段段代码来“解决”需求变化的人则更难以搞懂应该使用什么技术来应对需求变化了,因为抄袭来的一个一个片段不可能具有完全一致的业务背景知识,可能是一个个非常低级的代码演示程序而只能满足普通程序员收集一些编程技巧的爱好而已。

不清楚这位“mock1234”仁兄是在和楼主交流看法和经验,还是纯粹的展示自己对项目管理的“理解”?

楼主交流的是自己的实战经验,而不是在对现目前的风气进行说三道四。我们需要的不是说教,而是各位的实战经验分享。


其实他说的也是有道理的,我十分欢迎这样有独特见解的帖子,有些事情不辩不明。通过互相交流自己的想法学到点新东西也是一件好事。

引用一个不恰当的例子:

1、用“纸上谈兵”来指挥你作战

2、用“实战经验”来指挥你作战

你喜欢哪种?

呵呵,不必这么排斥。理论也有它合理之处,关键看使用理论的人如何使用~


呵呵,你说出了我的真实意图。补充一点,那为仁兄说了那么多理论,却没有说出是如何使用的。
0 请登录后投票
论坛首页 综合技术版

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