zoukankan      html  css  js  c++  java
  • 代码、口头交流与文档都很重要!

      《领域驱动设计》书中在书面的设计文档小节中讲到:每个敏捷过程对于文档编写都有自己的原则,极限编程提倡不适用额外的设计文档,让代码自己来表达含义,但将代码作为设计文档有他的局限性。会使读者负担过多的细节问题。尽管代码的行为是明确的,但并不意味着是明显的。一个行为背后的含义会很难表达出来。团队内部大量的口头交流能够给代码阅读提供一些上下文环境的分析和指导,但也是暂时和局限的,并不只是开发人员需要理解模型。口头交流在语义上弥补了代码的太过细节的问题,但任何规模的团队还是需要能够提供稳定性和共享能力的书面文档,然而编写能够真正帮助团队生产优秀软件的书面文档是一个挑战。

      我认为代码、口头交流和文档都很重要,我们不能绝对的站在任何一边。在敏捷过程中不能要求非常详细的文档,也不能误解敏捷开发而不要任何文档。《敏捷文档》描述了面对面沟通和文档的一些主要特点:

    Face-to-face communication Documentation
    Direct interaction
    Face-to-face communication allows
    for quick question-and-answer
    cycles. You ask something, someone
    answers, you ask back on a specific
    detail, you get a more precise
    answer, someone else offers their
    ideas and so on. Face-to-face
    communication involves people in a
    very direct way.
    Self-determined pace
    Different people grasp information
    at different speeds. Many people
    find they still have questions when a
    discussion is over – questions they
    didn’t think of in the heat of the
    debate. Documents, however, allow
    people to read at their own pace,
    going back and forth through the
    material as they need to.
    Non-verbal communication
    People don’t communicate through
    words exclusively. A large part of
    communication takes place in a
    non-verbal way – through sound,
    gestures and subconscious body
    language. These things are possible
    only through face-to-face
    communication.
    Introvert communication
    While some people love to engage
    in debate, others don’t. Introverted
    people are sometimes painfully
    silent during discussions, though
    they may have a lot to say. They
    have their say more easily when
    they are given the chance to write
    things down, as this allows them to
    have second thoughts and take time
    to reflect.
    Personal involvement
    Talking to each other means getting
    to know each other. Building trust
    happens much faster among people
    who are in the same room than
    among people who communicate
    through writing only.
    Scalability
    Documents can be made widely
    available. You can address an almost
    unlimited number of people at a
    time. Moreover, documents can
    reach the members of a distributed
    team – people working in different
    places.
    Fast availability
    In a well-organised project, there
    are Experts In Earshot (Cockburn
    1998) readily available for
    answering questions you may have.
    Discussions can come up on the
    spur of the moment. Documents
    may be available as well, but time
    goes by until documents are written
    and made available.
    Long-term availability
    Once a project reaches its end the
    team disperses – experts may no
    longer be available. The software,
    however, will still need maintenance
    or even refactoring. Only written
    documents are available beyond the
    limits of the actual project.


      通过以上对比可以发现,面对面沟通和文档并不是对立的,而是互为补充的,就像我们读书学习一样,我们需要从书本和老师的授课中学习。

  • 相关阅读:
    c++语言 运算符重载 使用重载运算符实现类的加法运算
    c++语言 类模板的使用 类模板的实现
    C++语言 通过类模板实现加法计算器
    C++语言 对动物的行为实现多态
    c++语言 友元类和友元方法 将普通函数声明为友元函数
    C++语言 通过构造函数初始化学生信息
    c++语言 静态成员数据和静态方法
    欧拉回路心得
    POJ2965 The Pilots Brothers' refrigerator(枚举)
    HDU1269 迷宫城堡(有向图的强连通分量(scc))
  • 原文地址:https://www.cnblogs.com/zhoujg/p/1382668.html
Copyright ? 2011-2022 开发猿


http://www.vxiaotou.com