450 likes | 580 Views
敏捷开 发分享. ----- 敏捷开发的哲学和高效工作的技能. 请您欣赏. 狼一样 的团队,神一样的产品. ----------------- David. 序. 敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善。. 协作、沟通、不断集成、不断变化(产品、技术设计). 价值观. 人和(人与人的)交互 :优先于过程和工具。 可以工作的软件 :优先于求全责备的文档。 客户协作 :优先于合同谈判。 随时应对变化 :优先于循规蹈矩。. 原则. 对我们而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要。
E N D
敏捷开发分享 -----敏捷开发的哲学和高效工作的技能
狼一样的团队,神一样的产品 ----------------- David
敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善。敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善。 协作、沟通、不断集成、不断变化(产品、技术设计)
价值观 • 人和(人与人的)交互:优先于过程和工具。 • 可以工作的软件:优先于求全责备的文档。 • 客户协作:优先于合同谈判。 • 随时应对变化:优先于循规蹈矩。
原则 • 对我们而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要。 • 我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。 • 经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。 • 业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。 • 围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。 • 在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。 • 可以工作的软件是进度的主要度量标准。 • 敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。 • 对卓越技术与良好设计的不断追求将有助于提高敏捷性。 • 简单——尽可能减少工作量的艺术至关重要。 • 最好的架构、需求和设计都源自自我组织的团队。 • 每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。
目录 • Done • Do • To do
Done • 两个项目,三个冲刺 • 每日立会 • 冲刺 • 燃尽图 • 总结会 • 故事 • 集成工具 • 代码库:SVN • 代码回顾 • Wiki:需求分析、任务分配、进度跟踪、bug追踪,信息备忘
Done • 提高效率 • 解决问题,按时上线(难度:需求非常不稳定) • 融洽,学习,提高
哲学家们只是用不同的方式解释世界,而问题在于改变世界哲学家们只是用不同的方式解释世界,而问题在于改变世界 -----马克思
Do > think • 点子分文不值,执行力才是互联网成功的关键(FB) • 敏捷开发 vs瀑布式开发:设计、周期 • 结果导向 • 对事不对人 • 过早的优化是万恶之源
Pen > Keyboard • Faster • Talkable • 人和(人与人的)交互:胜于过程和工具。
Slow > Fast • 欲速则不达 • 好好的阅读官方文档,比谷歌、百度搜索要强 • 好好的写注释,写日志输出,比临时println+反复重启调试要强 • 持续集成、自动集成并保证test通过,比实际测试发现问题要强 • 详细的分析问题,研究课题,学习知识,解决问题,比一味图快,图解决任务,懒得思考要强 • 多花些时间提早持续集成,比到最后一次性集成要强 • 耐心写单元测试,比夜里发现系统故障要强
Early > later • Early ≠ 压榨开发进度 • 小迭代 • 拆分故事,提早产出内容 • 持续集成,尽早集成 • 使用演示获得频繁反馈
单元测试 Early > later
Early > later • 单元测试 • TTD,测试先行 • 单元测试 代码守望者
Early > later • 单元测试 • 空中手术刀
Dynamic > static • 需求永远在变化,拥抱变化 • 燃尽图 • 不同于瀑布式开发的设计方式 • 使用演示获得频繁反馈
Talk> write • 沟通 • 早会、WIKI、总结会、代码评审 • 使用演示获得频繁反馈 • 代码回顾 • 通过交换阅读代码,是提交测试解决bug效率的2倍,80%的bug能够通过阅读代码解决 • 优秀经验的分享 • 存在问题的解决
todo • 开发小组(4-10)产品负责人,设计师,程序员,组长 • 沟通:立会/day、代码聚餐/week、总结会/sprint、WIKI • 周期小迭代: • Backlog故事 • 燃尽图 • Bug list • 自动集成:测试系统进行自动集成,并报警 • SVN git? • 逐步引入单元测试