[XA]读书&感想:个人对敏捷软件开发宣言的理解
首先什么是敏捷开发呢?
敏捷开发指的是一种面临迅速变化的需求快速开发软件的能力!
敏捷软件开发宣言:
·个体和交互 胜过 过程和工具
·可以工作的软件 胜过 面面俱到的文档
·客户合作 胜过 合同谈判
·响应变化 胜过 遵循计划
虽然右项也有价值,但是我们认为左项具有更大价值。
具体诠释[注:()内为本人看法]:
1.个体和交互胜过过程和工具
人是获得成功的最为重要的因素(强调以人为本的思路本来就是符合唯物主义思想的,但是好象还有很多公司无休止的加班,又违背了这一思路)但是更应该强调团队的作用(如何组织一批富有创造力的优秀团队成员是一门很高深的管理哲学,个人认为团队成员的合作精神比单纯的技术更重要,技术可以磨练,但是合作精神、人品、观念是难以在短时间内得到质的飞跃);
团队的构建要比环境的构建重要的多(这就是为什么现在有很多聪明的老板、公司喜欢集体挖人的原因了,招入一个成型的团队将可以让一家年轻的公司迅速步入正轨,现在的it人员往往比较急功近利,很注重眼前利益,这山望着他山高,也许是人员跳槽最频繁的一个行业吧,所以一个公司想培养一个成熟、稳定、生产效率高的团队要付出很大的成本);
2.可以工作的软件胜过面面俱到的文档
(请注意这里指的是“面面俱到”的文档,要编制和维护这些“面面俱到”的文档要花费很多人力物力,很容易陷入文档灾难),当然“没有文档的软件是一种灾难”,然而过多的文档比过少的文档更遭。
最好的两份文档是代码和团队,人和人之间的交互是把这分团队成员头脑中保存着时常变化的系统脉络传授给他人的最快最有效的方式(这里有点偏激,至少在国内行业普遍存在一种现象,就是公司特别是中小公司时常处在人员流动状态,要想每份代码都能达到团队所有成员或新成员接手时清晰是很难的,估计没几家公司能办到,包括各大公司,是一种理想状态);
Martin文档第一定律:直到迫切需要并且意义重大时,才来编制文档。
3.客户合作胜过合同谈判
成功的项目需要有序、频繁的客户反馈。不是依赖于合同或者关于工作的陈述。那些为开发者和客户协同工作方式提供指导的合同才是好合同;成功的关键在于和客户之间的真诚协作,并且合同指导了这些协作,而不是试图去规定项目范围的细节和固定成本下的进度(目前很多项目开发合同仅仅是业务上的一个约束,并没有在项目的开发上进行多少关注,往往在项目完成前就失去对客户和开发者的协同指导作用,如何将合同达到以上提及的目的呢?值得思考)
4.响应变化胜过遵循计划
响应变化的能力常常是决定着一个软件项目的成败;
较好的做计划的策略是:为下两周做详细的计划,为后三个月做粗略的计划,再以后就做极为粗糙的计划。(目前国内软件行业正经历着不断变化,所以我认为国内软件项目不怕变化)