江名峰(34854615) 21:34:27
你对敏捷开发是怎么理解的?
敏捷开发的重要活动是哪些?
OO建模的时间要占整个项目多少比例比较合适?
江名峰(34854615) 21:35:32
一个项目的团队规模和分工是如何确定的?
江名峰(34854615) 21:36:05
你不需要一一回答,综合谈一下观点就可以了
闯荡(85709616) 21:36:25
这可够有学术研究价值的
闯荡(85709616) 21:36:36
这个考题难度不小
江名峰(34854615) 21:36:48
呵呵,一起讨论吧
闯荡(85709616) 21:38:57
敏捷开发我并没有研究过,从历史上来讲他应该是从极限编程中获得了最初的构思,然后结合了传统的开发模式,综合出来的这么一种开发模式。
江名峰(34854615) 21:39:36
极限编程?
闯荡(85709616) 21:40:32
呵呵,在敏捷开发还没有提出的时候,极限编程就已经是非常盛行的说法了。从我的感觉中似乎两者差异不是太大。
江名峰(34854615) 21:43:28
极限编程:Extreme Programming
闯荡(85709616) 21:44:49
你没听说过这个词汇?
江名峰(34854615) 21:45:02
敏捷开发:agile development
江名峰(34854615) 21:45:15
在一本书上找到的
闯荡(85709616) 21:45:47
其实这些东西都带有一定的商业色彩,现在的实用性并不强。能够完整的用到这些思路的开发很少。
江名峰(34854615) 21:47:28
敏捷开发的解释:应用时间定量的迭代和进化式开发,使用自适应计划、提倡增量交付并包含其他敏捷性的价值和实践。
闯荡(85709616) 21:47:59
那么你对这句话能理解多少?
江名峰(34854615) 21:49:03
也就是说敏捷开发本身没有严格的定义,凡是综合各种有效的能够正面加快开发速度的方法的开发模式就可以被称作敏捷开发了。
江名峰(34854615) 21:50:03
它的基本特征就是迭代过程代替传统的瀑布过程
闯荡(85709616) 21:52:33
其实就当前来讲任何一种开发模式要解决的问题是差不多的,就是要通过自己认为正确的方式将需求模型转换为合理的逻辑模型。这个逻辑模型就是设计思路或者是代码。
闯荡(85709616) 21:53:22
这么多年来不断的探索各种的开发模式,无非就是要解决需求问题。因为现在大多数软件失败的原因就是在需求上。一个是需求的获取方式问题另外一个就是需求的准确性问题。
江名峰(34854615) 21:53:46
从我们过往的项目中,开发过程中对需求的变化响应得十分被动和缓慢
江名峰(34854615) 21:54:08
这就是软件老是做不好的原因
闯荡(85709616) 21:54:11
这些年来提倡的极限编程和敏捷开发就是将大范围的需求转换为小范围的针对性强的方式去集中获取准确的需求。
闯荡(85709616) 21:56:12
其实敏捷开发就是考虑到了需求的变化性问题的一种开发模式。就像是其前身极限编程所提倡的一条信念就是“拥抱变化”。他们不怕变化,他们喜欢变化。
江名峰(34854615) 21:56:28
我进联合的时候在门上看PD的项目甘道图,图很精致,但PD却是最难产的项目,完全的瀑布模式产生了恶果。
江名峰(34854615) 21:57:28
我们在强调软件自身的人性化,却忘了软件开发的过程中也要人性化,软件需求无非是人性的需求。
闯荡(85709616) 21:57:33
其实虽然他们接受变化但是却忽略了一点,那就是开发过程中客户的支持问题。在敏捷开发的例子中似乎都没有将客户问题放在最前沿。也就是假象客户能够给我们我们想要的东西。
江名峰(34854615) 21:58:11
敏捷开发中有一点,他们要引进风险驱动的开发方法
江名峰(34854615) 21:58:35
其中的风险就是客户的因素
江名峰(34854615) 21:59:27
在敏捷精神也强调与客户协作
闯荡(85709616) 22:00:12
PD的项目其实和其他项目都是一样的,受限于客户和我们自身的素质。一个好的开发过程不但要求客户的素质高(因为需要他们提供正确的要求),而且要求开发人员的素质高(这样才能坚持某种模式的开发)。但是这两项都不是那么容易得到的。所以现在大多数的开发模式虽然叫的响,却在解决这两方面的问题的时候显得牵强。
江名峰(34854615) 22:01:04
很难堪的现实
江名峰(34854615) 22:02:24
这包括前阵子我说的:意识差异的问题
江名峰(34854615) 22:03:19
我想这种意识差异与人员素质的欠缺是普遍存在的,关键就在于开发过程对这些因素的包容性。
闯荡(85709616) 22:03:59
从另外一个角度来看,我们所学习的大多数编程技术都来自于外国。而外国几乎都是资本主义社会,尤其是美国为主,他们商业化太过严重。很多的思想其实都源自于一个商业目的。所以这些个模式中也有地方考虑商业化的东西。因此使得他们的生命周期收到了限制。
江名峰(34854615) 22:04:36
不是很能理解你的这段话
闯荡(85709616) 22:07:18
呵呵,就像微软提出的.NET战略一样,其实本身.NET的所有前期产品直到现在也没有为其直接赚多少的钱。但是因为他提出了各种各样的技术,让那些人眼花缭乱。导致很多的追随者加入进来。单凭他的技术书籍的量和版权就足以为他赚很多的银子了。然后这么大数量的拥护者都在windows平台上开发windows应用程序,肯定会为其windows的销售带来很大的市场。这就是他的.NET战略的真正意义。
江名峰(34854615) 22:10:05
这个有点偏题了,刚才说的是敏捷开发的内含,我想这不是一个技术性问题,而是一个方法论的问题。开发软件是需要科学地进行的,不是靠蛮力就可以做成的。
闯荡(85709616) 22:10:30
所以说外国的很多思想和流行的模式,其实可能因含着很大的商机。在他们的忽悠之下,中国的程序员交的学费就够他们花了,还做软件干什么。
江名峰(34854615) 22:12:23
不是很认同你的说法,他们在整个信息时代为人类贡献良多,有些为了谋利的说教也不是没有,不只西方有,中国也有的。
闯荡(85709616) 22:12:57
呵呵,这个当然是不可磨灭的。
闯荡(85709616) 22:13:35
我的意思只是说,任何一次变革的背后都一定隐藏着一个商业的秘密。如果没有,那么变革将不成功。
江名峰(34854615) 22:14:48
或许说每一次变革都隐藏着巨大的商业机会
闯荡(85709616) 22:15:09
而且我还认为,也只有具有一定商业秘密的技术变革才有意义,因为他是沿着实践这条路走下来的。毛主席说了实践检验真理,这句话其实就是真理。
闯荡(85709616) 22:15:30
呵呵,商业机会更确切一些。
江名峰(34854615) 22:16:22
回头来谈敏捷开发和OO建模实践,在榕基这些方面有具体的实践吗?
闯荡(85709616) 22:16:42
没有
闯荡(85709616) 22:17:24
但是他们确实非常重视需求,需求如果不准确宁肯花再多的时间也要搞清楚了再签合同。
江名峰(34854615) 22:17:32
那开发过程与联合有何不同之处?
江名峰(34854615) 22:17:46
非常重视需求,嗯,这是件好事
江名峰(34854615) 22:18:54
他们的程序员有活力?比如时常对项目提出一些见解?
闯荡(85709616) 22:19:27
开发过程差别不大,因为需求较为清晰了,所以开发起来困难度不是太大。过程中他们只是注重时间安排,由于需求比较明确,所以各个功能点也能够较好的列出,开发的时间表就相对容易做一点。但是开发过程还是几乎属于瀑布式。
闯荡(85709616) 22:20:12
我现在还没看到有何见解,他们只是尽力完成。
江名峰(34854615) 22:20:18
也就是以业务人员的精干,规避了需求变化的大量风险
闯荡(85709616) 22:21:56
我曾经在我们的技术研讨会上讨论过这个问题。温博格曾调查过一个表格,需求阶段的一个偏差修改过来所花费的时间如果是1的话,那么如果到了最后的测试阶段才发现该问题,修改过来的时间将是1500倍,甚至更多。