首页 > 代码库 > 《高效程序员的45个习惯》--交付用户想要的软件(Ⅳ)
《高效程序员的45个习惯》--交付用户想要的软件(Ⅳ)
真正的敌人是变化!!
一、让客户做决定:
开发者(项目经理)能做的一个最重要的决定就是,判断哪些是自己决定不了的,应该让用户做决定;
当与客户讨论时,准备好几种可选方案,从业务角度介绍每种方案优缺点,以及潜在的成本和利益,和他们讨论每个选择对时间和预算的影响,以及如何权衡;
二、让设计指导而不是操纵开发:
前期的设计属于战略设计,不应该具体说明程序方法、参数等细节,应该扮演地图角色,指引你向正确的方向前进;
战术设计需要在具体的项目开发过程中展开;
CRC(类-职责-协作者),类名-它应该做什么-要与其他什么对象一起工作;
好的设计应该是正确的而不是精确的,它所描述的一切必须是正确的,不应该涉及不确定或者可能会发生变化的细节;
三、合理的使用技术:
根据需要选择新技术;
不要开发你能下载到的东西;
四、保持可以发布:
保持你的系统随时可以编译、运行、测试并立即部署;
五、提早集成、频繁集成:
代码集成是主要的风险来源,提早集成、持续而有规律的进行集成;
六、提早实现自动化部署:
系统的安装或者部署应该简单、可靠及可重复;
(一开始)就实现自动化部署应用;
七、使用演示获得频繁反馈:
在开发时,保持应用可见,积极获取反馈;
八、使用短迭代、增量发布:
对付大项目,最理想的方法就是 小步前进;
询问客户,哪些是使产品可用且不可缺少的核心功能;
使用短迭代和增量开发,可以让开发者更加专注于自己的工作;
增量开发,发布带有最小却可用功能块的产品,增量的发布必须是可用的,并且能为用户提供价值,这就要求我们多问客户;
九、固定的价格就意味着背叛承诺:
主动提议先构建系统最初的、小的和有用的部分,足够一次缴付,并能让用户真正使用;
第一迭代后让客户进行选择,继续下一迭代还是取消合同;
如果继续前进,就可以很好的预测下一个迭代工作,同时下一迭代结束的时候再让用户进行选择;
以上三点的好处是可以控制项目,可以随时停止项目而不需要花费更多费用,同时也可以控制先完成哪些功能,并能精确知道花费多少,使客户承担更低的风险。
《高效程序员的45个习惯》--交付用户想要的软件(Ⅳ)