发布新日志

  • 好书学习:极限编程释疑--拥抱变更 3

    2008-08-25 19:35:38

    第二章 一个典型的开发场景
    本章作者用一段开发人员之间的对话来阐述了几个在极限编程和敏捷开发中极为重要的概念:
    1。Pair Programming,结对编程,有助于提高效率和减少错误,这个模式经常听说,但好像在国内很少看到
    2。测试驱动开发,先写测试,由于还没有代码实现,测试肯定 fail, 然后加少量代码,再写测试,再做实现,如此循环,直到你无法想到新的测试,现有的测试也都通过了,这个模块才算完成了。好处是不会写多余无用的代码,也不容易漏掉有用的代码,显著的问题会很早被发现。开发人员在进入到下个模块的开发时对已完成的部分有充足的信心。
    3。结对编程并不只做实现和测试,其实设计也是在这个过程中演化成熟的。这是一种典型的“小设计”模式。
    4。持续集成。新功能一完成立即与老功能集成并测试。
  • 好书学习:极限编程释疑--拥抱变更 2

    2008-08-25 19:20:13

    第一章:风险,最根本的问题
    软件开发面临以下问题:
    1。延期
    2。过度延期造成项目取消
    3。没用多久就因为费用或质量问题被取代
    4。缺陷太多无人问津
    5。不能满足业务需求
    6。业务需求出现变更
    7。很多费大劲做的软件功能没有最终实现商业利益
    8。人员变更,项目人员感到厌烦而离开

    极限编程解决以上问题:
    1。极限编程采用短迭代周期,任务划分成1-3天的粒度,功能划分优先级,一旦延期损失的只是最次要的方面。
    2。快速的迭代和版本发布使问题及早暴露,迅速调整,不至于问题恶化到项目中止
    3。极限编程用一整套测试来保证系统有一个质量基线,那么后来的变更也不至于严重损坏该系统。(即便出了问题,还可以退回到原有系统)
    4。在极限编程中测试贯穿始终,从单元测试到系统测试,保证了低缺陷率
    5。客户是团队的一部分。由于客户是对需求最熟悉的人,他们的参与和持续反馈保证了建造的系统不会脱离实际的业务需求
    6。在短迭代周期的模式下,只需要做少量工作既可应对需求变更。对很多极限编程的工程师来说几乎感觉不到变更的困扰
    7。坚持最大商业价值的功能先实现
    8。每个成员可以对工作量作预估,并持续提高估计的能力,避免由于估计不足造成的强制加班;也鼓励组织内部沟通,消除“孤独感”。新成员循序渐进地融入项目。

    要解决以上问题要求所有的人,包括开发人员,项目经理和客户对极限编程的新准则认可和接受,并在实践中贯彻始终。

  • 好书学习:极限编程释疑--拥抱变更 1

    2008-08-25 18:50:59


    作者背景:
    Kent Beck,在俄勒冈大学获得计算机科学硕士学位。极限编程的创始人,是敏捷开发17个最初申明人之一,倡导了测试驱动开发,和Eric Gamma共同创建了JUnit单元测试框架,1999年和2003年两度获得Jolt奖。
    著作列表:
    书:
        * Smalltalk Best Practice Patterns. Prentice Hall, 1996. ISBN 0-13-476904-X.
        * Kent Beck's Guide to Better Smalltalk : A Sorted Collection. Cambridge University Press, 1998. ISBN 0-521-64437-2.
        * Extreme Programming Explained: Embrace Change. Addison-Wesley, 2000. ISBN 0-201-61641-6. Second edition 2005 with Cynthia Andres. ISBN 0-321-27865-8. (Jolt productvity award 1999 [2])
        * Planning Extreme Programming. With Martin Fowler. Addison-Wesley, 2000. ISBN 0-201-71091-9.
        * Test-Driven Development: By Example. Addison-Wesley, 2002. ISBN 0-321-14653-0. (Jolt productvity award 2003 [3])
        * Contributing to Eclipse: Principles, Patterns, and Plugins. With Erich Gamma. Addison-Wesley, 2003. ISBN 0-321-20575-8.
        * JUnit Pocket Guide. O'Reilly, 2004. ISBN 0-596-00743-4.
        * Implementation Patterns. Addison-Wesley, 2008. ISBN 0-321-41309-1.
    论文:
        * Using Pattern Languages for Object-Oriented Programs. With Ward Cunningham. OOPSLA'87.
        * A Laboratory For Teaching Object-Oriented Thinking. With Ward Cunningham. OOPSLA'89.
        * Simple Smalltalk Testing: With Patterns. Origins of xUnit frameworks.
Open Toolbar