软件工程复习06:敏捷流程

作者:非妃是公主
专栏:《软件工程》
个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩

在这里插入图片描述

专栏地址

软件工程专栏地址

专栏系列文章

软件工程复习01:软件工程概述

软件工程复习02:个人技术

软件工程复习03:个人软件流程

软件工程复习04:两人合作

软件工程复习05:团体软件流程

软件工程复习06:敏捷流程

软件工程复习07:软件需求

软件工程复习08:典型用户和场景

软件工程复习09:项目管理

软件工程复习10:软件设计与实现

软件工程复习11:软件测试

软件工程复习12:软件质量

软件工程复习13:软件发布

文章目录

  • 专栏地址
  • 专栏系列文章
  • 1.了解敏捷流程产生的背景
  • 2.理解敏捷流程和传统做法的区别
  • 3.理解敏捷流程的原则
  • 4.理解SCRUM的角色以及流程
  • 5.敏捷和计划驱动的适用范围

1.了解敏捷流程产生的背景

有几个原因导致敏捷在互联网时代出现:

  • 最初的软件(20世纪六七十年代)的顾客都是大型研究机构、军方、美国航空航天局、大型股票交易公司,他们需要通过软件系统来搞科学计算、军方项目、登月项目、股票交易系统等超级复杂的项目。这些项目对功能的要求非常严格,对计算的准确度要求相当高。
  • 20 世纪八九十年代,软件进入桌面软件时代,开发周期明显缩短,各种新的方法开始进入实用阶段。但是软件发布的媒介还是软盘、CD、DVD,做好一个发布需要较大的经济投入,不能频繁更新版本。
  • 互联网时代,大部分的服务是通过网络服务器端实现,在客户端有各种方便的推送(Push)渠道。一般消费者成为主要用户。网络的传播速度和广度,使得知识的获取变得更加容易,很多软件服务可以由一个小团队来实现。同时,技术更新的速度在加快,用户需求的变化也在加快,开发流程必须跟上这些快速变化的节奏。于是敏捷就产生了。

2.理解敏捷流程和传统做法的区别

从 2001 年开始,一些软件界的专家开始倡导“敏捷”的价值观和流程,他们肯定了当时流行做法(传统做法)的价值(左列),但是强调敏捷的做法(右列)更能带来价值。

软件工程复习06:敏捷流程_第1张图片

3.理解敏捷流程的原则

Agile Principles (set 1)

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
    尽早并持续地交付有价值的软件以满足顾客需求。

  • Welcome changing requirements, even late in development. Agile
    processes harness change for the customer’s competitive advantage.
    敏捷流程欢迎需求的变化, 并利用这种变化来提高用户的竞争优势。

  • Deliver working software frequently, from a couple of weeks to a
    couple of months, with a preference to the shorter timescale.
    经常发布可用的软件,发布间隔可以从几周到几个月,能短则短

Agile Principles (set 2)

  • Business people and developers must work together daily throughout the project.
    业务人员和开发人员在项目开发过程中应该每天共同工作
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
    以有进取心的人为项目核心,充分支持信任他们。
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
    无论团队内外,面对面交流始终是最有效的沟通方式。

Agile Principles (set 3)

  • Working software is the primary measure of
    progress.
    可用的软件是衡量项目进展的主要指标。
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
    敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前步调持续合作下去。
  • Continuous attention to technical excellence and good design enhances agility.
    只有不断关注技术和设计才能越来越敏捷。

Agile Principles (set 4)

  • Simplicity–the art of maximizing the amount of work not done–is essential.
    保持简明 - 尽可能简化工作量的技艺 - 极为重要。
  • The best architectures, requirements, and designs emerge from self-organizing teams.
    只有能自我管理的团队才能创造优秀的架构, 需求和设计。
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
    时时总结如何提高团队效率, 并付诸行动。

4.理解SCRUM的角色以及流程

SCRUM的角色:

SCRUM is an iterative, incremental methodology for project management often seen in agile software development. Roles the “ScrumMaster”, who maintains the processes (project manager) the “Product Owner”, who represents the stakeholders and the business the “Team”, a cross-functional group carrying out the actual analysis, design, implementation, testing, etc.

SCRUM流程:

  • 第一步:
    找出完成产品需要做的事情 — Product Backlog. 产品负责人领导大家对于这个Backlog中的条目进行分析,细化,理清相互关系,估计工作量,等工作。每一项工作的时间估计单位为“天”。
  • 第二步:
    决定当前的冲刺(Sprint)需要解决的事情 — Sprint Backlog。整个产品的实现被划分为几个互相联系的冲刺(Sprint)。产品订单上的任务被进 一步细化了,被分解为以小时为单位(参见 WBS工作划分的办法)。如果一个任务的估计时间太长(如超过 16 个小时),那么它就应该被进一步分解。订单上的任务是团队成员根据自己的情况来认领。 团队成员能主导任务的估计和分配,他们的能动性得到较大的发挥。
  • 第三步:
    冲刺(Sprint)。团队按照backlog 任务执行,在冲刺阶段,外部人士不能直接打扰团队成员。一切交流只能通过 Scrum 大师(Scrum Master)来完成。
  • 第四步:
    得到软件的一个增量版本,发布给用户。 然后在此基础上又进一步计划增量的新功能和改进。

5.敏捷和计划驱动的适用范围

软件工程复习06:敏捷流程_第2张图片

你可能感兴趣的:(软件工程,软件工程)