敏捷联盟
有那么一个联盟,他们由一批业界专家聚集在一起概括了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则。
他们是敏捷联盟。以下是他们的宣言
- 个体和交互重于过程和工具
- 可以工作的软件重于面面俱到的文档
- 客户合作重于合同谈判
- 随时应对变化重于遵循计划
从上面4条价值引出下面12项基本原则:
- 我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意
- 我们欢迎需求的变化,即使到了开发的后期。敏捷过程能够驾驭变化 ,为客户创造竞争优势。
- 经常性地交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好
- 在整个项目开发期间,业务人员和开发人员必须朝夕工作在一起。(业务人员必须与开发人员一起996)
- 围绕斗志高昂的人构建项目。给 他们提供所需要的环境和支持,并且信任他们能够完成工作。
- 在团队内部,最具有效率也最有效果的信息传达方式,就是面对面的交谈。(面对面的发微信交谈不算)
- 可以工作的软件是首要的进度度量标准。
- 敏捷过程提倡可持续开发。出资人、开发者和用户应该总是保持稳定的开发速度。
- 对卓越技术和良好设计的为断追求有助于提高敏捷性。
- 简单--尽量减少工作的的艺术是至关重要的。
- 最好的构架、需求和设计都源自自我组织的团队。敏捷团队是自组织的团队。
- 每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。
极限编程
看名字以为是挑战人体体力极限来编程,但其实恰恰相反,极限编程强调的是可持续的开发速度,明确软件项目不是全速的短跑,而是马拉松长跑,不允许团队加班工作的,有效率的工作只需在工作时间内完成,跟国内一些创业公司的理念冲突,因此国内是不会有极限编程的。另外比较有意思是的结对编程,也就是结伴编程,两人共用一台电脑,轮流给对方直播编程。
测试
TDD 测试驱动开发可以
- 促使模块之间隔离。
- 改善了代码设计。
重构
展示了一个计算素数的程序的重构过程。
- 由单一的一个长长的函数拆分成几个小函数。
- 把i,j,k这些随意的变量名重命名成能够大概了解变量作用的名称。
- 增加代码的可读性。