《快速软件开发》学习笔记 – Part 2.5 面向客户开发

  
客户可以是顾客、最终用户、市场部门或者上司
“在所有项目中,通过改善客户关系提高开发速度是一条普遍适用的原则”。

泛泛地说,

  1.良好的客户关系(合作而不是敌对),能够提高实际的开发速度

  2.在开发时表现出明显的进度,则会增加客户对开发人员的信任度。

具体一点:

  1.可以避免无谓的流程上的损失,比如通过沟通让客户清楚流程,让客户确定他们哪个人要在什么时刻做什么事

  2.频繁反馈,开发出来的东西有不妥的地方时可以立即纠正,避免大规模返工

  3.双方关系好,事情也好商量

面向客户开发的四个方面

  1.
计划

    a.选择合适的生命周期模型

    b.这个项目是要让业务部门满意(客户A)还是要让你自己的上司满意(客户B)?搞清楚这一点,再去投其所好

    c.建立有效的客户沟通渠道,尽量让对方只派一个接口人,以节省沟通效率

    d.注意与客户有关的风险

  2.
需求分析:前期要挖掘出客户的真正需求,可以避免在后期出现相关的风险

   

  3.
设计:你的设计要允许客户偶尔提出需求变更,这需要你理解清楚需求表面之后的隐藏信息,预料客户可能提出的变更。“我们尽量做到能够满足一些变更要求,当然这并不意味着可以无休止地提出变更,但我们会努力做到不让你们过分为难”。

   

  4.
实现

    a.代码应易读易改,以提高应对客户需求变化的能力

    b.开发计划中多设置一些里程碑,让客户能感觉到项目始终在进展(我的经验:也可以使开发的“完成百分比”可视)

    c.一个功能点可以先把界面做出来,让客户能够尽早地看到,有问题可以及早修正

合理控制客户的期望值

   1.如果让客户产生了不切实际的期望,即使你做的很好,客户也会很失望,把你当成失败者,客户关系会受到损害

   2.对一份不现实的进度计划表示同意,必然会使客户产生不现实的期望值

   3.客户可能会认为某些功能很容易实现,或者认为某些功能不用明说开发人员也应该会实现,这些地雷都要提前扫清,否则客户到最后会很失望

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.