My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
Agile_Training  
Updated Jun 15, 2011 by xjB...@gmail.com

Roadmap-Scrum敏捷开发入门(一) --原则:不能涉入过深,强调Agile的理念与优势、Scrum流程。 0. 开场白 1. Glossary(名词解释)

Value(价值观) Practice(实践) Agile Scrum
2. Why do we want to try Agile?
The benefits of Agile(compare with tradition) Agile Histroy
3. Scrum Practice
名词解释 Scrum开始前的准备 Sprint开始前准备 Sprint计划会议 Daily Scrum Sprint评审会议 Sprint回顾会议 成功的标志
4. Scrum and XP(Extreme Programming) 5. 敏捷适合我们吗?
正规开发流程尚未建立(目标:脱离山寨) 没有稳定的需求,就不可能进行稳定的设计,并遵循一个计划好的过程。(这时Agile是适用) 我们尚未习惯于过程,那么遵循简单比遵循繁琐更容易一些 崭新的软件Team适合开展敏捷 有利于打造新型的团队文化(敏捷的文化,高效合作,有, jell Team)
组织的阶段:??? 形成团队整体个性心理(优秀的整体,一提起,想到的是我们整个出众的Team,而不是某个具体的个人,当然,整体中我们仍然存留每个人的个性)
我的犹豫、不确信:
我们,我自身是否具备足够的素质实践敏捷(对开发人员要求较高),但仍然想试一试 我更多的时候是空有理想,我希望理论得到实践,这才变成我们的理论,我的理论。
6. How should we do?
接受价值观(团队内外的人,一致的价值观) -------Very Important!!! 勇敢实践,拥抱变化(没有亲身实践,不会真正拥有理论) 做好迂回前进的心理准备(每次一小步,保证不断的进步,从部分实践开始,从。经历痛苦挫折的人往往更加愿意尝试剧烈的变化。) 这是不设防的心理历练(一切都是透明的,团队成员彼此的督促,会让人失去掩蔽,彼此的工作状况知根知底,这是真正的安全,也是负责任的表现) 重要的是让客户理解(最大的障碍也许来自客户,在一个需求不断变更的环境中,遵循可预见性过程对客户、对项目、对开发团队都是风险。)
7. Summary
  1. Agile Value
2)优势 3)Scrum
Prepare(2 steps),计划会议,Daily Scrum, 评审会议,回顾会议
END:
理论!!! 理想!!!

理论是灰色的,生活之树常青。---哥德 理论常常只能指出基本的和一般的东西,只能大体上概括实际生活中的复杂情况,因而实践才具有真正的意义。
---列宁
勇敢实践,理论才有意义!!!

附: References

轻松敏捷之旅 敏捷Scrum/XP战事 Wiki, 许多网文 ...
深化: Value(价值观):
是决定人的行为的心理基础。用来评价行为、事物以及从各种可能的目标中选择自己合意目标的准则。 任何人都有会去选择认同某种价值观,或者自己给自己建立一套价值观的体系。以此评判真、善、美,对与错。 (对事物的一种态度,看法,评价)
具体:软件开发中,对软件开发的态度与看法,对不同开发模式、流程的态度,对不同编程语言体系、平台、工具等评价,
各种范式、模型的看法等。
Practice(实践)
哲学意义:人类自由自觉的一切行为。(行为) 具体: 开发中的各种行为,具体怎么做的。我们采取的开发模式,使用什么的语言、平台、工具,开发流程如何管理,团队成员之间如何交互 所以,我认为,创立这些理论的软件工程名家,他们有一种哲学思维的训练。西方知识阶层都会有机会接受这种训练,这是西方的传统。
Agile
一种在软件开发、软件工程领域的价值观。 敏捷:快速,灵活,适应能力强,能够随需变。(字面理解) 它要求快速应对需求变化,是一种适应性极强的开发模式与软件过程能力。 它的态度是,强调短周期交付迭代,强调客户积极参考与反馈,强调团队成员高度协作。
它对软件开发的态度、看法、观点是:
以人为本 源代码就是设计 重视客户参与 随时准备应对变化
Scrum
实践,是敏捷价值观(思想)指导下的一种具体的软件开发的管理实践,它偏于开发流程的管理。 是体现敏捷思想的一种管理行为,不是仅指项目的管理者或领导,而是整个开发团队成员,客户,其他相关者都需要积极参与的。
Agile History:
  1. 敏捷联盟: ...
2. 敏捷宣言(Agile Manifesto): ... 3. 两大核心理念: “适应性”的而非“预见性”(计划性);"面向人"而非"面向过程" 4. 12条原则 5. 有哪些敏捷方法?
XP,Crystal,ASD,FDD,DSDM ---提点一下 Scrum ---重点介绍之,历史

敏捷的优势: 1. 传统软件开发模式(典型:瀑布模式)-----Coding只是软件生命周期中一个环节,开发人员是coding工人

瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。 步骤成果作为衡量进度的方法,例如需求规格文档,设计文档,测试计划和代码审阅等等。
不可行情况:需求不明,项目进行中需求变化。

传统软件开发模式,重过程,重文档。架构师,设计师,尽情展现着他们伟大的构想,长时间大量

地力求细致、周密地进行计划,然后需求分析,架构,设计,继而指导开发人员Coding,最后测试 ,验收,交付,运维。很显然,真正的开发,源代码的编写过程,成为了整个过程中一个环节。常常技术含量高、 富于创造性的工作都在分析与设计阶段,Coding人员只要认真按照前面 产生的设计与需求文档,完成代码即可以了。极端的情况,程序员被认为是代码工人,IT民工,被认为是可替代的 螺丝钉等。看起来,整个软件过程,一切都是最终为了产生大量冗巨浩繁的文档。

在这样瀑布过程下,程序员的也就只能被培养成只能工人,无条件参与需求分析、设计。 当然,时代在发展,习惯了传统开发模式的人、组织,也在尝试着迭代开发的思想,但是若没有根 本上的变革,其整体价值观,整体模型仍然是瀑布的,是不重视人的,仍然是对过程,对文档深深挂怀于心。

最后是,文档再多,再完善,考虑再细致,花费巨资,打造出来的软件一堆的问题,若遇人员变动,留下一堆谁也不愿意去维护的脏代码, 客户抱怨,代码的所有者郁闷,一切都将变得毫无意义。

文档的意义:历史存档,方便与人的交流,交流的意义在于指导Coding,测试,运维。

软件开发最终要有意义:客户的价值得到体现、满意度提高,软件质量得到保证,团队成员的工作满意度提高。 2. 敏捷的理念--源代码就是设计:

Agile很务实,重实效,重结果(源代码),不过分重过程,不过分重文档。软件开发我们最终要的就是源代码,
这也是软件开发的根本。敏捷首先把源代码放在第一位,认为最根本最重要的文档就是源代码。 所以Agile,XP大量的工作,都是在围绕如何改进代码的质量上下工夫(如
迭代,演化,及时反馈,总结回顾,重构,结对,Code Review,TDD,CI等)
软件开发的整个命周期中产出的成果:人+文档+源代码。
人员会变动---人离开了呢 文档不可靠---文档不清楚,或描述错误,需求、设计更改,文档与源代码的语义差距。 代码会腐化---
留下“我们”怎么办? ---"我们",软件的最后维护扩展人员,除非我们直接扔掉,重新再做一套。
我们如果做到源代码更合适于给人读:设计良好,结构清晰,极好的可扩展性可维护性.那么软件的生命得以延续,延长。
这样腐化得慢些,变质得慢些。
傻瓜也能写出计算机能懂的程序,只有写出更容易让人读懂的程序,才有望成为一个优秀的程序员。--Martin Fowler 
这也是我们的目标。多人协作的开发团队里,Web开发领域,尤其是如此。代码里,我们不要那么多个人技巧性,个人英雄主义,我们要团队的整体和谐,代码的整体和谐。
Scrum and XP:
Scrum偏向管理实践,XP是偏于技术方面实践。 Scrum是个管理框架,框里面可以填充任何行之有效的、符合Agile价值观的实践方面。 Scrum甚至可以被用于非软件开发领域(每个人日常的生活指导,理发店,餐馆)
XP:
TDD Planning Game On-site Customer Pair Programming CI(Continuous Integration) Refactoring Simple Design(KISS) Collective Ownership (代码集体拥有) Coding Standards(编码规范) 40-hour Week(no overtime work)

两者结合,已被充分证实的当前的最佳实践。

Powered by Google Project Hosting