密码导论及编码原理 源代码
这篇文章提醒了敏捷原则。 对于那些想了解它的人来说,它也是一个介绍。 敏捷原则最初于2001年在《敏捷软件开发宣言》中提出,该宣言定义了4个价值观和12条原则。
当时已经有几种项目实施方法,但是许多人发现这些方法不灵活,麻烦或不适应。 有些人试图以过于传统和僵化的方式来应用它们,远远超出了计划的预算,并且没有设法生产可操作的软件。 那些交付产品的人经常看到最终用户拒绝使用它。 最终结果远远没有达到他们的实际需求和期望。
敏捷首先是对思想和计划的React→设计一切→实施一切→测试一切→交付一切心态(瀑布)。 在许多情况下,将软件过程开发的每个步骤都排除在外是失败的,尤其是从头开始开发新软件时。
通过专注于迭代开发(即,在频繁获得客户反馈的情况下连续交付软件部件和功能),Agile旨在快速,灵活地响应变化。 保持项目规模小以最大程度地提高成功率。 迭代方法早于敏捷就已经存在。 敏捷正在扩展概念和原则。
敏捷宣言价值观
- 流程和工具上的个人与互动 –在阅读地图时,有些人倾向于尝试确认自己确实在地图上所认为的位置,而不是在地面上进行指示并利用这些指示来找到自己在地图上的位置。 该地图仅应支持人类互动,而不是相反。
- 全面的文档之上的工作软件 –过多的计划和设计困扰着许多项目。 该过程过于智能化,与最终产品和用户需求脱节。
- 通过合同谈判进行客户协作 –客户最了解自己的需求(产品应该做什么),而不是设计师和软件工程师。 通过使客户参与,还可以使他们对交付的产品表示认可。
- 响应计划变更 –在很多情况下,设置具有预先定义的任务的严格项目里程碑是失败的。 客户很少有他想要或需要的产品的完整详细图片。 设计和收集需求是一个持续的过程。
敏捷宣言原则
- 我们的首要任务是通过尽早并持续交付有价值的软件来满足客户的需求 -客户喜欢看到钱的去向。 他们看到实质性内容的次数越多,他们对流程的信任就越高,他们参与的越多。
- 即使在开发后期,也欢迎不断变化的需求。 敏捷过程利用变化来获得客户的竞争优势 –细节中蕴含着魔鬼,有时这些细节位于多层分析和设计之下。 对于新软件,一些真正的实际要求只会在过程的后期才发现。 这些是必不可少的,必须予以容纳。
- 频繁交付工作软件,从几周到几个月不等,更倾向于较短的时间范围 –这种做法可确保满足期望,并且项目不会走错方向。 频繁的客户反馈是灯塔。
- 在整个项目中,业务人员和开发人员必须每天一起工作 –开发人员通常没有什么管理决策权,但是他们的日常工作取决于必须做出的管理决策才能使项目顺利进行。
- 围绕有上进心的个人建立项目。 给他们提供所需的环境和支持,并信任他们以完成工作 –这与增强能力和人员管理有关。 它不仅特定于敏捷。
- 向开发团队内部和内部传达信息的最有效方法是面对面的对话 -不言自明。
- 工作软件是进度的主要衡量标准 –同样,此原则有助于避免永无止境的项目。
- 敏捷过程促进可持续发展。 发起人,开发人员和用户应能够无限期保持恒定的步伐 -这是通过面对面的交流和频繁交付产品功能以及频繁的客户反馈来实现的。
- 持续关注技术卓越性和良好的设计可增强敏捷性 –这是一种重言式。
- 简单性(最大化未完成工作量的艺术)是必不可少的 ,保持简单,抵制包含太多技术或框架的诱惑是很复杂的。 过度杀伤在软件实施中很常见。 目的是满足需求,而不是优化最后的柠檬滴。 投资通常不值得回报。
- 最好的体系结构,需求和设计来自自组织团队 -再次,这是关于拒绝实施大型战略计划或理论,并信任流程和人员。
- 团队会定期地思考如何提高效率,然后相应地调整和调整其行为 -这仅是在行动中汇报。
含义
通过遵循敏捷原则和价值观:
- 实施团队通过收集客户需求,逐步实施并频繁发布(又称为增量交付)来实践迭代开发。
- 这意味着随着时间的推移,用户需求会有所发展
- 编程和测试会及早开始进行分析
- 在每次迭代中,客户端选择要实施的下一个功能
- 每个团队成员对他们将要完成的任务拥有所有权,并决定如何执行它们直到下一次迭代
- 首先处理风险更大,最复杂的要求
- 每次迭代都有固定的持续时间(1-4周),无法更改
- 一旦为迭代选择了特征,则不允许更改
- 在移至下一个功能之前先完成功能
- 所有这些都有助于降低需求不确定性的范围(Mc Connell)
成功的关键
- 识别客户的价值
- 确定利益相关者并确保他们对项目的成功有既得利益
- 确保有客户代表(单点联系)
- 尽可能在团队决策中达成共识
- 将大型任务分解为较小的任务
- 专注于交付,而不是流程合规性
- 掌握成功所需的技术细节和技能
- 促进所有参与方之间的沟通渠道
- 让人们把自我放在口袋里
- 尽可能并必要地练习公开信息
- 使用客户和开发团队的反馈来改进
- 避免长期计划
结论
敏捷方法并非在所有情况下都是灵丹妙药。 从头开始开发新软件应用程序或进行持续集成项目时,它们是最佳选择。 但是,在升级ERP或将现有应用程序从一种技术转换为另一种技术时,瀑布式瀑布法仍然更合适。
应用敏捷原则和价值观的最著名的敏捷方法是Scrum和极限编程(XP) 。 还包括适应性软件开发,Crystal方法,动态解决方案交付模型(DSDM),功能驱动开发(FDD),精益开发和实用编程。
参考: 技术说明博客上的JCG合作伙伴 Jerome Versrynge提供的“ 敏捷原则简介” 。
翻译自: https://www.javacodegeeks.com/2012/11/introduction-to-agile-principles.html
密码导论及编码原理 源代码