敏捷开发这个概念也出现好几年了,我一直没有实践,除了知道敏捷开发是一种迭代式交付模型以外,其他一无所知。刚好公司来了一位新同事,以前是搞敏捷开发的,前几天给我们做了个《敏捷开发初探》培训,引发了公司的几位“大牛”对敏捷开发的讨论,我也从中学到一些东西,但仍然很粗浅。
传统的瀑布式模型VS迭代式模型
可以看到,迭代式模型就是多次交付,每次迭代都是一个小瀑布。
敏捷宣言:
敏捷开发团队的工作环境:
可以看出,团队之间的交流是比较频繁的,而且迭代式交付,意味着需要团队成员共同完成一个功能模块,再接着共同完成另一个功能模块。
那么作为项目经理,如何切分任务,如何保证团队之间的协同呢?
传统的瀑布式模型中,通常来说任务切分是按功能模块切分的,张三完成功能1,李四完成功能2,王五完成功能3....,最后组装,完成项目。而在敏捷开发中,需要张三李四王五共同完成功能1,然后再共同完成功能2...,这种情况下,可以按层来切分任务,一人做页面,一人写逻辑,一人写数据库存储。这样就能有效的把组员利用起来,让他们都有事做。
以上说的是3、4个人的小团队的情况,如果是十几人甚至几十的团队,不可能几十号人去完成一个功能,可以把他们分为3、4个人的若干小组,每个小组按上述办法去完成功能模块。
最后申明一下,关于任务切分办法不是我想出来的,是一位“大牛”说的,我认为很有道理,希望以后有机会能够实践一下。
另外哪位同学有敏捷开发经验的,欢迎来谈谈自己的看法。