@spiritnotes
2016-06-18T10:28:36.000000Z
字数 1281
阅读 1472
软件工程
读书笔记
DOING
迭代开发,价值优先
分解任务,真实进度
站立会议,交流畅通
用户参与,调整方向
结对编程,代码质量
测试驱动,安全可靠
持续集成,尽早反馈
自动部署,一键安装
定期回顾,持续改进
不断学习,提高能力
软件开发一直处理动态、不断变化的环境中。需求一直在变化。
敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善
指责不能修复Bug
优秀的程序员会挖掘更深一层,尽力理解为何要修改成这样,快速修改代码而不深入理解问题和可能后果,只是解决表面问题
防微杜渐
不要孤立地编码,实行代码复审
使用单元测试
做决定是基于谁提出观点,而不是观点的利弊
对错误的反应:
1. 否定个人能力;
2. 指出明显缺点,并否认其观点;
3. 询问你的队友,并提出你的顾虑
有效的特殊技术
要专业而不是自我;消极扼杀创新;
敏捷需要持续不断的学习和充电
建议
平衡
一个学习型的团队才是较好的团队
"午餐会议"是团队中分享知识非常号的方式
每周要求团队中的一个人主持讲座
学习新技术的时候,多问问自己,是否将太多旧的态度和方法用在了新技术上,这样可能失去了期望获得的增益
计算机世界里,很多问题会影响你的应用系统
“为什么”是一个非常好的问题
敏捷开发可以从多方面得到反馈:用户、团队成员和测试代码
站立会议每天在固定的时间和地点举行
可以控制自己每天的节奏,下班提交代码,完美收工
以固定有规律的长度进行迭代,太紧则精疲力尽
开发的敌人是“变化”,设计、架构、对需求的理解。
决定什么不该决定
与客户讨论问题时,从业务角度而不是技术角度,准备几种可选择的方案并介绍每种方案的优缺点以及潜在的成本和增益。
平衡