敏捷开发相关

423 阅读4分钟
  • 什么是敏捷
    • 敏捷就是一种思想
    • 敏捷开发是基于敏捷的一种实践
  • 一些关于敏捷的名词
    • retro
    • tdd
    • code review
    • points
    • 结对编程
    • mvp
    • 反馈
    • Story Point:功能需求点
    • VoC(客户的声音)
    • Unit Test
    • Functional Test(功能测试)
    • show case
    • small commit
    • MVP:最小可行性产品
  • 敏捷宣言
      个体和互动 高于 流程和工具
      工作的软件 高于 详尽的文档
      客户合作 高于 合同谈判
      响应变化 高于 遵循计划
    
  • 敏捷开发12原则
    • 1 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
    • 2 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
    • 3 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
    • 4 业务人员和开发人员必须相互合作,项目中的每一天都不例外。
    • 5 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。
    • 6 不论团队内外,传递信息效果最好和效率最高的方式是面对面的交谈。
    • 7 可工作的软件是进度的首要度量标准。
    • 8 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。
    • 9 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
    • 10 以简洁为本,它是极力减少不必要工作量的艺术。
    • 11 最好的架构、需求和设计出自自组织团队。
    • 12 团队定期地反思如何能提高成效,并依此调整自身的举止表现。(即retro)

【敏捷实践】

  • scrum

    • scrum: Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。
    • Product Owner: 负责维护产品订单的人,代表利益相关者的利益。
    • scrum master: 为Scrum过程负责的人,确保scrum的正确使用并使得Scrum的收益最大化。一般不翻译
    • team:开发团队,由负责自我管理开发产品的人组成的跨职能团队,团队拥有交付可用软件需要的各种技能。在一定的周期限制内,开发团队则会创建可用的、 并且可以随时推出的软件成品。
    • scrum要素:
      • sprint: 冲刺,一个固定的时间周期,(通常在2周到1个月之间),开发团队会在此期间内完成所承诺的一组订单项的开发。(迭代)
      • user story: 用户故事 (task)
      • points: 故事点塑,代表故事的大小,这里的大小不代表开发时间,只是故事的复杂度,工作量的大小。points是用来评估team的交付能力的
      • backlog: 待办事项集合。可以预知的所有任务,包括功能性的和非功能性的所有任务
      • sprint backlog: 每个迭代的开发列表
      • release planning: 发版计划
  • scrum meeting

    • stand up - 站会
    • sprint planning meeting - 迭代计划会议,确认迭代要做的,以及优先级,识别task的风险和依赖,以及是否要去调研等等,以便做好迭代开发的前期准备
    • showcase - 展示迭代完成的功能,目的是及时同需求方确认功能是否和需求吻合
    • retrospective - 就是retro,总结前一个迭代好的和不好的,指定action和负责人,以便在之后去进行改进和保持。
  • scrum价值观

    • 专注 - 把你的心思和能力都用到你承诺的工作上去
    • 勇气 - 有勇气去面对各种挑战
    • 公开 - 把项目中的一切开放给每个人看(包括进展、问题、阻碍)
    • 承诺 – 愿意对目标做出承诺(作为一个自组织团队,在迭代开始的时候做出承诺,并在迭代中全力完成)
    • 尊重– 每个人都有他独特的背景和经验。(团队是长期坐到一起,并且稳定的,有助于加深彼此的了解和沟通)

【敏捷实践】

  • 极限编程
    • TDD:测试驱动开发
    • CI/CD:持续集成/持续部署
    • refactoring:重构
    • code review:代码审查
    • pair programming
  • 看板方法:
    • 限制WIP
    • 减小批量
    • 可视化
    • 管理度量队列
  • 反馈:
    • 产品的反馈:MVP
    • 团队的反馈:Retro
    • 项目的反馈:TDD CI/CD
    • 个人的反馈:舒适区