菜单

循序渐进

    Java Oracle MySQL Bash Python Nginx Apache Redis MongoDB Git HTML Javascript Node CSS

最近来访

    话.Scrum敏捷开发

    张嘉杰.原创 2015-03-16 life

    公司近期空降了一个领导(据说是CSDN创始人之一,面试完推荐过来的),年前开始推行、实施Scrum敏捷开发(之前公司也是采用该模式),年后开始对各个平台业务进行统一规整。

    首先简单解释一下:什么是敏捷?

    敏捷方法是试图通过小型的、自我管理的团队,用短小的合作发布周期来鼓励迭代式软件开发方法。

    软件的质量贯穿敏捷软件开发每一个阶段,且非常重要,并提出很多关键的规则。[例如: 结对编程,Test Driver Development测试驱动开发,重构,持续集成]

    来保证能在每一个迭代周期内及早发现,并及时消灭相应开发过程中出现错误。

    Scrum在实行的过程中确实遇到很多各方面阻力,团队成员的不支持(感觉无法达到传统开发模型的高效),支持的呼声转变成了质疑。

    其实敏捷提出的团队自治,没有传统的PM角色,消灭文档则让更多的Dev职责缺少,所以结论是:敏捷对人员的素质要求是很高的,其中包含技术、沟通能力。

    这个开发流程如果单一在一个Team实施成本和压力固然小很多,但是从公司分散部门职责来看,一个Team的工作需要其他2-3个团队支持才能通畅的执行。

    如果短期之内看不到成果,管理层会就会中断这种方式,认为这要承担更大风险,和投入的成本,最终还是不了了之(事实也是如此)。

    公司实施Scrum敏捷模式发生了下面的事情

    1. 项目经理不懂`Agile`,贴了一堆的纸条,发了一堆所谓的`backlog`,没有制定验收的标准,当然项目经理自己也不碰产品,所以。。。
    2. 项目经理不懂`Agile`,所以没有做`Velocity`,也没有完全严格按照`Scrum`去分小组搞`Daily Update`,搞的仍然是`Waterfall`大会。每天早上都需要耗费1个多小时开会。后期则因为投诉太多,会议都取消了,只留下每星期一次的全体大会。
    3. 由于`Waterfall`浸淫太深,大部分人都只会死守自己的那个岗位。开发的不想做测试,也不想跟测试沟通,只想`code`完、`review`完就算了。而测试的人因为之前什么技术都不怎么懂,既做不来代码审议,也做不来自动化测试。最大的问题是,公司的整套流程和工具就是为了`waterfall`而设计的。
    4. 对`Agile`这个词的理解,大部分人都以为敏捷就是快速开发和交付。`Agile`不应该被翻译成敏捷,应该翻译成`"快速响应与调整"`。因为项目经理和部分管理者觉得敏捷就是要"快",所以搞得经常加班且身心疲倦。如果不能说服管理层敏捷的目的是为了早试错、早反应、早超生的话,还是`waterfall`吧。
    5. 上层的人也很少过来抓项目或过来看项目是如何的(领导一般只关心结果)。

    另外说点题外话:作为一个软件工程师不断重复努力开发出高质量的软件,希望我们的用户能够使用到无Bug最佳的应用程序和良好的用户体验, 而构建一个稳定可靠的软件是在软件开发流程中其实一件很困难的工作,而仅仅吧软件质量的责任归咎于软件开发人员是很不公平的, 软件开发流程是需要来自不同领域人或Team一起参与这个过程,而软件质量在这个整个开发流程也是息息相关的。

    50% percent of our decisions are wrong. Fail fast, learn fast. (我们作出的决定中, 50% 都是错误的。早早失败,早早学习。)
    No matter what you want to do, choose what is good for your team.(无论你选择做什么,选择对你的团队有利的事)

    OK,今儿就先到这儿了 :)


    版权属于:jcore.cn

    原文地址:http://www.jcore.cn/2015/03/16/scrum

    除非注明,文章均为原创,转载时必须以链接形式注明原始出处。

    分享文章到:

    热门推荐文章