敏捷软件开发

♀尐吖头ヾ 提交于 2020-02-03 07:25:06

一、敏捷开发(Agile Development)
  1) 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。是一种应对快速变化的需求的软件开发能力。
  2)敏捷软件开发宣言(核心价值观)
    人和(人与人的)交互 胜过 过程和工具
    可以工作的软件 胜过 面面俱到的文档
    客户协作 胜过 合同谈判
    响应变化 胜过 循规蹈矩
  3)在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
  4)敏捷设计是一个过程,不是一个事件。它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程。它致力于保持系统设计在任何时间都尽可能得简单、干净和富有表现力。
  5)敏捷方法更适用于较小的队伍,40、30、20、10人或者更少

二、Scrum
  1) Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。
  2) 主要角色
    产品负责人(Product Owner):负责维护产品订单的人,代表利益相关者的利益。
    Scrum主管(Scrum Master):为Scrum过程负责的人,确保scrum的正确使用并使得Scrum的收益最大化。
    开发团队(Team): 由负责自我管理开发产品的人组成的跨职能团队。
  3) 工件
    产品订单(Product Backlog):按照优先级排序的高层需求。
    冲刺订单(Sprint Backlog):要在冲刺中完成的任务的清单。
    冲刺燃尽图(Burndown Chart):在冲刺长度上显示所有剩余工作时间逐日递减的图。
  4) 活动
    计划会(Sprint Planning Meeting):在每个冲刺之初,由产品负责人讲解需求,并由开发团队进行估算的计划会议。
    每日立会(Daily Standup Meeting):团队每天进行沟通的内部短会。
    评审会(Review Meeting):在冲刺结束前给产品负责人演示并接受评价的会议。
    回顾会(Retrospective Meeting):在冲刺结束后召开的关于自我持续改进的回忆。
  5) 在每一次冲刺(一个15到30 天周期 ,长度由开发团队决定),开发团队创建可用的(可以随时推出)软件的一个增量。每一个冲刺所要实现的特性来自产品订单(product backlog),产品订单是按照优先级排列的要完成的工作的概要的需求。哪些订单项会被加入一次冲刺由冲刺计划会议决定。在会议中,产品负责人告诉开发团队他需要完成产品订单中的哪些订单项。开发团队决定在下一次冲刺中他们能够承诺完成多少订单项。在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。

三、极限编程(Extreme Programming,简称XP)
  1) 极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、简单、反馈和勇气。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
  2) 核心价值:沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇气(Courage)和尊重(最新添加的价值)
  3) 有效实践
    完整团队(Full Team):所有参与者(客户、开发人员、测试人员等)在一起工作,他们是同一个团队的成员。
    规划策略(The Planning Game):计划是持续的、循序渐进的。
    系统隐喻(System Metaphor):所有参与者对一些抽象的概念理解一致,也就是我们常说的行业术语。
    简单设计(Simple Design):保持设计恰好和当前的系统功能相匹配,不需要考虑将来可能的变化
    编码标准(Code Standards):统一的编码规范和习惯,系统中所有的代码看起来就好像是被单独一人编写的。
    测试驱动开发(Test-driven development):先编写测试代码,通过测试来推动整个开发的进行。
    结对编程(Pair programming):所有的代码都是由两个人坐在一台电脑前一起完成的。
    持续集成(Continuous Integration):不断地把完成的功能模块整合在一起。
    设计优化(Refractoring):随时利用重构方法改进已经腐化的代码,保持代码尽可能的干净、富有表现力。
    集体代码所有权(Collective Code Ownership):每个人都对所有的代码负责。
    小型发布(Small Release):每经过一个开发周期,软件就发布一次。
    每周40小时工作制(40-hour Week)

四、在管理模式上启用Scrum, 而在实践中,创造一个适合自己项目组的XP。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!