00.敏捷开发过程承认每个人都具有特定的能力(以及缺点)并对之加以利用,而不是试图把所有人都当作一样。
01.敏捷开发小组认为可用软件的价值重于复杂的文档。其原因在于,可用的软件可以帮助开发人员在每次迭代结束时获得一个稳定的、逐渐增强的版本,从而允许尽早开始,并且更为频繁地收集对产品过程的反馈。
02.寻求客户合作的价值重于对合同的谈判。原因在于敏捷开发小组希望与项目有关的所有团体都在朝共同的目标努力。合同谈判有时会一开始就让开发小组和项目客户居于争执中。我们希望,软件开发小组和客户在面对项目的时候,能够以与之相同的合作态度朝共同目标前进。不可否认,合同常常是必须的,但是合同中条款和细节会在很大程度上影响不同的团体是进行合作式的还是对抗式的努力。
03.敏捷开发小组认为对变化进行响应的价值重于始终遵循固定的计划。其原因在于,他们最终的焦点是向项目客户和用户交付尽可能多的价值。对敏捷开发小组来说,一个计划是从某个角度对未来的看法,而具有多个不同角度的看法是可能的。
04.敏捷开发小组的主要工作方式:
a.作为一个整体工作
b.按短迭代周期工作
c.每次迭代交付一些成果
d.关注业务优先级
e.检查与调整
04."扔过去不管”的心理在敏捷开发项目中是没有市场的。分析是不会吧需求“扔”给设计师;设计师和架构师不会吧设计扔给编码人员;编码人员不会吧值经过部分测试的代码扔给测试人员。
05.角色:
a.产品所有者(product owner)。产品所有者的主要职责包括:确认小组的所有成员都在追求一个共同的项目前进,确定动能的优先级以便总是在处理最具价值的功能,以及做出决定使得对项目的投入可以产生良好的回报。
b.客户是做出决定为项目提供资金或者购买软件的人。
c.这里使用开发人员来概指所有开发软件的人。它包括了程序员、测试人员、数据库工程师、可用性专家、技术文档编写者、架构师、设计师,等等。
d.项目经理(project manager):敏捷开发项目经理会更多地关注领导而不是管理。承担项目经理角色的人也会承担其他的角色,通常是作为开发人员,少数时候也会单人产品的所有者。
06.迭代是受时间框(timebox)限制的,意味着即使放弃一些功能,也必须按时结束迭代。
07.一次发布由一次或以上相互接续,完成一组相关功能的迭代组成。
08.敏捷开发小组从两个方面显示出他们对业务有限级的关注。首先,他们按照产品所有者所制定的顺序交付功能,而产品所有者一般会按照使机构在项目上的投资回报最大化的方式来确定功能的优先级,并将他们组织到产品发布中。敏捷开发小组关注完成和交付具有用户价值的功能,而不是完成孤立的任务。
09.任何项目开始的时候所建立的计划都不是对将来会发生些什么事情的保证。
10.更多的是对您要了解什么,而不是对它(产品)会是什么来规划。
11.当我们承认在某种程度上不知道结果,也不可能提前知道结果的时候,规划就成为了一个设定和修正目标的过程,而这些目标则被用于实现一个更长远的目的。
12.设定和修正目标的时候,重要的是记住我们无法看到地平线以外的东西,我们试图规划的内容超出视线范围越远,计划的准确性降低的越迅速。
13