木匠的微型博客 Charlie Twitter

    follow me on Twitter
    Showing posts with label agile. Show all posts
    Showing posts with label agile. Show all posts

    Tuesday, September 22, 2009

    Agile 敏捷软件开发学习心得

    上周六在维多利亚IT Club聆听了GuoLei两个小时关于Agile Software Development 的精彩演讲.
    这是维多利亚IT Club挂牌以来不多见的高品质技术交流.
    GuoLei关于Agile Software Design的演讲很成功,内容丰富,观众积极发言,反响热烈. 鄙人也有不小的收获.
    没来的同行一定会后悔的, 读完此文,您一定更后悔, 鄙人就不会后悔.

    这里谈一些鄙人的心得体会.

    . 设计和制造(manufacture)
    GuoLei举了一个宝马制造汽车的例子, 造一辆新汽车, 制造过程占了整个流程的很大比重, 超过50%.
    而软件开发99.9%的时间是在设计, 包括传统的需求分析,设计,编码,测试, 而制造(build)过程在一瞬间就完成了.
    所以鄙人鄙视那些号称软件工人的家伙. 作为软件开发人员,要把自己当作设计师来看待,才能生产出优秀的软件.
    也就是High Available and Scalable application system.

    . Communication over documentation
    代码一定要清晰可读, 多行代码也没有关系, 忌讳使用一个高深的表达式,上午写的,到了下午,自己都看不懂了,窘迫.
    写在代码中间的备注是没有多少人看的,而且很可能已经过期了,说的完全不是代码要做的事.
    尽可能面对面交流, Email/电话 均不提倡. 80%的沟通是通过表情和肢体语言来完成的.比如,当你解释完一个处理模型以后,观众回答听懂了,可是难以掩盖他们木然的表情,依然处在疑惑当中,而打电话时,你是看不到对方表情的.

    . 积累和完善测试案例, TDD(Test Driven Design)
    一开始,不需要覆盖100%的测试案例; 而是使用测试案例帮助设计原型,逐步完善我们的设计方案.
    开发一个新功能,就累积一个新的测试案例,
    发现一个新的bug,就累积一个新的测试案例,逐渐完善测试案例库的涵盖程度.

    . 左脑和右脑
    左脑负责常规约束活动,
    右脑具有创造力,
    也就是为什么工作累了以后,会卡在一个貌似棘手的问题,苦苦找不到解决方案,然后走开喝杯水,上个厕所,散散步,抽根烟,立马就有了解决问题的眉目,好点子不断. 因此,每隔一小时,出去散散步,使用一下右脑,发挥创造力. 即对健康有利,又能提高工作效率,我们出去散步吧.

    . 人是关键
    再好的软件开发流程没有人的积极参与是不行的,而且软件行业人与人之间的差别太大,好的杰出的程序员的开发效率常常高出普通程序员的十倍以上. 点背不能怪社会,只能怪自己天赋不够, 嘻嘻.

    参考: 如何穿越团队协作的五重障碍
    http://hi.baidu.com/sunguangran/blog/item/2ab0e5cce64d121900e9286f.html
    信任缺失
    “第一重机能障碍是团队成员间的信任缺失。这实质上源于他们不愿在团体中轻易受到攻击的心态。团队成员如果不对其失误和弱点真正地开诚布公,就不可能打下信任的基础。”
    惧怕冲突
    承诺不足
    逃避担责
    漠视结果

    未完待续...