我与敏捷的渊源
对敏捷开发的接触由来已久,特别是其中的测试驱动开发,因为毕业设计的课题正是测试驱动开发为主题的,所以从还在校园里、对传统软件开发的认识还只停留在《软件工程》这门课程的初级阶段的时候,就已经开始深入地了解敏捷开发的思想了。所以,我相当于是先接触的敏捷开发这一新生事物,而后在工作中才开始接触传统的软件开发思想的,所以也就不存在那些习惯了传统软件开发的人员对敏捷所持的抵触情绪了。
对敏捷实践的迷惘
可是,国内至今真正施行敏捷的公司还是很少很少的,工作几年下来也仅仅用到了单元测试这项技术,其他敏捷中的那些实践均未曾接触过,所以虽然对敏捷怀有深厚的感情和认同,却未曾真正身体力行过,始终停留在理论的阶段,而对于如何实行敏捷开发,则完全是一片惘然,有时候甚至持怀疑的态度——敏捷真正实施起来到底是否有效呢?敏捷颠覆了传统软件过程中的很多成熟的思想,更注重“人本主义”,会不会又倒退初级阶段那种小作坊式的“个人英雄主义”呢?会不会造成各自为政的混乱状况呢?会不会导致只有一大堆代码和测试代码,却没有完善的注释和文档,导致代码可读性和可维护性降低呢?有时候甚至怀疑,敏捷会不会就如“乌托邦”,看似美好,令人向往,却不可及呢?
对敏捷的态度,既有感情,又有认同,但是具体到实践,这种惘然和迷茫,这种强烈的质疑,这种种疑问也一直伴随这我。
拨开云雾见天日
可是如今,这一堆堆的谜团,已经开始解开了,对敏捷如何实践的认知,也开始变得明晰了。这些,都是在读到《Scrum实战——敏捷软件项目管理与开发》这本书之后发生的。
以前对敏捷如何实践感到惘然,是因为我以前接触的仅仅是敏捷开发的理论思想,却没有学习过具体如何实践敏捷的方法论。而读完《Scrum实战》的前三章之后,初步了解了Scrum这一敏捷过程框架,才渐渐明晰具体如何实践敏捷,终于有了拨开云雾见天日的感觉。
全书内容丰富,“涵盖了软件项目团队在企业约束下启动和完成Scrum软件项目所需的全部必要知识”,适合各种人群,包括管理人员、开发人员、测试人员、业务分析师、系统架构师等等,既适合Scrum新手入门,又适合Scrum老手提升。而且此书极重实践,完全是为实用主义者准备的,作者从自身的成功经验着手,从实用角度考虑,向读者展示了如何实施Scrum的多方面知识,对将要实施敏捷而不具备成功经验的团队来说,可以说是一本不可或缺的实战指导。
前三章的试读感受
第一章讲解了敏捷和Scrum的基础知识,介绍了敏捷思想的基础,Scrum的起源,从宏观的角度简略地介绍了Scrum是如何运作的,然后介绍了敏捷和Scrum为什么在软件项目管理中有效的原因,使人认识到Scrum的优势,从而产生把整本书读完的强烈愿望。
第二章作者与众不同地加入了财务相关的知识,这是在其它软件工程或敏捷相关书籍中很少见的,因为基本的财务知识可以改善Scrum团队与业务管理层的成功交流,所以作者讲解了如何计算项目成本、如何选择项目投资以及如何监控项目绩效等方面的一些有用的概念和公式,在与业务管理层进行交流的过程中,这些会非常有用,用具体数据来说话始终是最有说服力的。
第三章则详细讲解了如何与各层管理者沟通的技巧,与传统软件过程迥异的地方在于——传统的软件过程中由单独的项目经理来负责所有与外部人员交互的工作,而在Scrum中,这一工作则由开发团队、产品负责人和ScrumMaster分担了,因此与各层管理者沟通的技巧显得尤为重要,理想的状态是将管理者们变成自己的盟友。
以上就是《Scrum实战》前三章试读后的感受,使我对Scrum有了初步的认识,第一次对如何实施敏捷有了明晰的思路,更对读完整本书产生了强烈的兴趣和愿望。