先po一下敏捷软件开发宣言以及其遵循的原则吧
2001年,17位编程大师共同发布《敏捷软件开发宣言》:
“人”以及“人与人的互动” 胜于 “过程”和”工具”
Individuals and interactions over processes and tools
可运行的软件 胜于 面面俱到的文档
Working software over comprehensive documentation
客户合作 胜于 合同谈判
Customer collaboration over contract negotiation
响应变化 胜于 遵循计划
Responding to change over following a plan
遵循的12条准则:
1.我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
2.即使到了开发的后期,也欢迎改变需求,敏捷过程利用变化来为客户创造竞争优势。
3.经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
4.在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
5.围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
6.在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交流。
7.工作的软件是首要的进度度量标准。
8.敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
9.不断地关注优秀的技能和好的设计会增强敏捷能力。
10.简单–使未完成的工作最大化的艺术—是根本的。
11.最好的构架、需求和设计出自于自组织的团队。
12.每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。
个人看法
现代软件开发的环境是十分复杂的,客户的需求可能会随时的发生改变,因此一个如软件的开发过程也会变的十分的复杂。所以最重要的一点就是需要随时和客户保持交流互相交换意见,调整软件的开发方案,这样在最后才能使软件按照预期的方向进行发展。敏捷开发,顾名思义开发速度需要快,所以要尽可能早地将客户所要求的软件交付给客户。我们从软件开发的开始到结束,到要时刻准备好面对客户需求的改变,因为开发软件的最终目的是满足客户的需求,为了能够让最终的软件能够发挥其最大的作用,我们随时接受改变,接受挑战,直到最后时刻。同时我们还可以产出许多软件开发的中间产品,因为,开发过程会是漫长的,如果在这个漫长的期间客户没有收到任何有功能的产品,可能会对产品的开发方向失去控制,并且在最后拿到最重产品甚至会对产品功能一点也不熟悉,从而使产品的价值大打折扣。在开发期间,最少不了的就是业务人员以及开发人员的要求,一方提供方向性的规划,另一方提供实现的路线,只有双方不断沟通协调,软件才会朝着要求的方向顺利地开发下去。一定要提倡面对面的交流,只有当面才能把我们最真实的想法给表达出来,产生摩擦与认可,甚至会有好的想法出现,所以面对面交流是十分重要的甚至能够带来意想不到的结果。敏捷开发过程我个人认为是十分紧凑的,所以一个好的领导是必不可少的,合理分配人力资源和各阶段的进度,能够有效地提高开发的效率与进度。同时好的领导要善于发现每个人的特点,要及时地掌握各种新的技术,使得各尽其所,每个人都能够发挥其最大的作用。同时在开发过程中,我们还应该不断的组织反省,集体讨论开发过程当中所遇到的一系列问题,总结归纳,使得在之后的过程中能够更加顺利。
可以看出敏捷开发思想的优势十分明显,相比于传统的过程模型,其效率有了明显的提升,同时效果也得到了质的飞跃。传统过程模型是为了任务而开发,而敏捷开发是为了客户而开发,这之间的区别可想而之。所以以上思想和原则对我们今后的帮助会很大,我从中学到了许多知识。