《超越需求:敏捷思维模式下的分析》—第2章 2.4节发现和交付

简介: 第三种对分析分类的方法根据我们何时进行分析来分类。划分活动常常很有用,这可能是人们喜欢基于计划的方法所描述的各种阶段(分析、设计、开发和测试)的原因之一。

本节书摘来自异步社区《超越需求:敏捷思维模式下的分析》一书中的第2章,第2.4节发现和交付,作者【美】Kent J. McDonald(肯特 J. 麦克唐纳),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 发现和交付
第三种对分析分类的方法根据我们何时进行分析来分类。划分活动常常很有用,这可能是人们喜欢基于计划的方法所描述的各种阶段(分析、设计、开发和测试)的原因之一。将知识工作分解为不同活动有一定优势,因为没有哪一个人能擅长知识工作的每个方面,所以把活动分为不同的类别显然有助于把事情分解为可管理的工作,并把焦点集中于不同的方面。

但组织这些工作的最好方式是什么呢?当人们引用Winston Royce被视为瀑布计划之源头的论文(www.serena.com/docs/agile/papers/Managing-The-Development- of-Large-Software-Systems.pdf)时,通常直接聚焦到展示了几个不同阶段的图上,而这几个阶段是在创建大型系统时会发生的。但在第一页有一个很有意思且常被忽略的图,它只包含两个框,即“分析”和“编码”,并带有下面一段说明:

在所有计算机程序开发中,无论大小和复杂度如何,有两个基本步骤是一样的。如图1所示,首先是分析步骤,然后是编码步骤。如果工作量足够小并且最终产品由建造者进行操作,那这种非常简单的实现概念实际上就是所需要的全部工作——内部使用的计算机程序通常就是这样。这种开发工作也是大多数客户愿意付钱的,因为这两个步骤涉及真正的创造性工作,对最终产品的有用性产生直接贡献。
Royce继续说到这种方法完全不适合大型软件开发项目,并揭示了他对如何看待软件开发团队的一些哲学:

制造大型软件系统的实施计划如果只有这些关键步骤,注定将失败。很多额外的开发步骤是需要的,但没有步骤像分析和编码步骤一样直接贡献于最终产品,而且还推升了开发成本。客户通常不愿意为此付钱,开发人员也不愿意实施这些步骤。管理的首要职责就是把这些概念推销给这两组人,并在开发人员方面执行合规检查。
虽然我不同意这段话中的所有观点,但我发现Royce专注于分析和编码作为客户价值的两个活动很有意思。我一直在寻找一些简单直接的方式描述IT项目中的关键活动,根据经验,我倾向于把它分为“找出正确的事物来创建”和“正确地创建事物”。

Ellen Gottesdiener和Mary Gorman在他们2012年出版的《Discover to Deliver》一书中找到了合适的词语来传播这些概念。那就是:发现和交付。这两个词不仅具有头韵,而且两位作者进一步用一个无限符号包起来这两个词以表示这两个活动如何交互并彼此影响,从而进一步巩固了这些概念。终于有人听到了这些概念,Royce一定很欣慰。

这里是Gottesdiener和Gorman对发现和交付的定义,我将在本书中继续使用这样的定义。

发现:探索、评估并为潜在交付确认产品选项的工作。

交付:把一个或多个已选择的候选解决方案转化为产品可发布的部分或产品版本的工作。
这个概念最有用的方面是有一个标签与不同类型的活动关联。过去团队已经从交付角度跟踪进展,但经常没有可视化发现活动。跟踪寻找正确事物的进展和跟踪构建解决方案的进展一样有用,因而我常常将发现看板和交付看板分开,这将在第15章详细介绍。

知识工作的方方面面都涉及发现的因素。当我们在创建、测试并部署解决方案时,仍然在“发现”关于需要和解决方案的知识。区分这两个活动以强化每个活动的焦点是有益的。发现会增加针对需要和解决方案的理解,以便交付。交付主要是关于创建、测试和部署产出,而这些活动有助于进一步理解需要和解决方案,这反过来影响你的发现。当然,发现在交付过程中仍会发生,但主要工作是创建事物以帮助增进理解。

那么设计在哪里呢,为什么没有被称为一个单独的活动?一些设计发生在发现活动中,而一些设计发生在交付活动中。发现活动中的设计通过使用设计思维(design thinking)技术获得对用户更好的理解,通过模型、实例和验收条件(将在第14章介绍)描述解决方案。BABOK v3区分了需求和设计,如表2-5所示,然后说到:“需求和设计之间的区别并不总是那么清晰。同样的技术被用来需求获取、建模和分析这两者。需求会产生设计,这反过来可能推动发现并分析更多需求。两者间重点的转换往往是微妙的。”


32fffc6f433967b2ab07955797b81f2a0c43caef

团队基于技术选型和架构限制,在搞清楚如何在技术上实现用户故事的过程中,设计就会发生。团队针对设计展开初步讨论,但随着经验增加会修改对设计的理解,这一过程中设计活动与开发和测试交织在一起。

因此,把设计作为一个单独活动不会对整个流程增加任何价值,并且还会导致毫无意义的争论——一个活动条目是在发现活动、设计活动还是交付活动中,然而在发现(准备进行迭代)和交付(迭代交付)之间明确的划分会得到更加清晰的界限。

相关文章
|
测试技术 iOS开发 数据格式
WDA原理分析
1、什么是WDA WebDriverAgent是Facebook 在17年的 SeleniumConf 大会上推出了一款新的iOS移动测试框架。 下面摘录一段官方对于WebDriverAgent的介绍字段:(官方文档:https://github.com/facebook/WebDriverAgent) WebDriverAgent 在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备。
12783 0
|
2月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
284 11
|
8月前
|
人工智能 算法 搜索推荐
当人类智力遭遇数字洪流的侵蚀:生成式人工智能(GAI)认证能否成为认知时代的诺亚方舟?
在数字时代,人类智力水平面临挑战,尤其是精神集中能力的下降。生成式人工智能(GAI)认证作为一种新兴职业技能认证体系,为应对认知时代的挑战提供了重要工具。本文探讨了数字技术对人类智力的影响、GAI认证的价值及未来展望,并提出个人、企业和社会应采取的应对策略,共同推动智能化社会的发展。
|
8月前
|
自然语言处理 JavaScript 前端开发
《深度剖析:开发鸿蒙原生应用,为何ArkTS是最优之选》
ArkTS 是鸿蒙原生应用开发的核心语言,基于 TypeScript 深度扩展,具备强大的静态检查和类型系统,有效提升代码稳定性。其声明式语法简洁高效,助力快速构建复杂用户界面;多维度状态管理机制灵活掌控应用状态,支持全局与跨设备数据同步。此外,ArkTS 与 ArkUI 深度集成,优化分布式场景下的多设备协同开发体验,并通过完善工具链降低开发门槛。随着持续演进,ArkTS 将进一步推动鸿蒙生态繁荣,为开发者带来更高效的解决方案。
296 0
|
8月前
|
人工智能 前端开发 算法
Vibe Draw:涂鸦秒变3D模型!开源AI建模神器解放创意生产力
Vibe Draw 是一款基于AI技术的开源3D建模工具,通过Next.js和FastAPI构建,能将用户绘制的2D草图智能转化为3D模型,并支持文本提示优化和场景构建。
503 35
Vibe Draw:涂鸦秒变3D模型!开源AI建模神器解放创意生产力
|
6月前
|
安全 API 开发者
HarmonyOS NEXT《ArkTS渲染控制完全指南:条件与循环渲染深度解析》
本文深入解析ArkTS条件渲染与循环渲染核心技术,涵盖`if/else`和`ForEach`的使用方法、动态更新机制及性能优化策略。通过20+实战案例,如数据增删、拖拽排序、点赞交互等,结合骨架屏加载、动画修复等企业级解决方案,助你突破渲染瓶颈,打造流畅UI体验。无论初学者还是进阶开发者,都能全面掌握ArkTS渲染控制精髓!适配HarmonyOS开发,助力教育科普与实践应用。
226 2
|
12月前
|
人工智能 弹性计算 编解码
阿里云GPU云服务器性能、应用场景及收费标准和活动价格参考
GPU云服务器作为阿里云提供的一种高性能计算服务,通过结合GPU与CPU的计算能力,为用户在人工智能、高性能计算等领域提供了强大的支持。其具备覆盖范围广、超强计算能力、网络性能出色等优势,且计费方式灵活多样,能够满足不同用户的需求。目前用户购买阿里云gpu云服务器gn5 规格族(P100-16G)、gn6i 规格族(T4-16G)、gn6v 规格族(V100-16G)有优惠,本文为大家详细介绍阿里云gpu云服务器的相关性能及收费标准与最新活动价格情况,以供参考和选择。
|
Android开发
Android 截屏 录屏 与获取log
Android 截屏 录屏 与获取log
196 1
|
数据采集
技术心得:我在写爬虫的验证码识别方案之有个平台叫无限代码
技术心得:我在写爬虫的验证码识别方案之有个平台叫无限代码
187 0
|
10月前
|
编解码 弹性计算 大数据
软硬结合助力倚天云原生算力再进化,加速大数据、视频转码上云步伐
本文介绍了云原生算力的进化,重点讨论了倚天710 CPU在大数据和视频转码场景中的应用与优势。倚天710采用ARM架构,通过物理核设计和CIPU加速卡优化,显著提升了高负载下的性能稳定性,并在实际应用中帮助客户实现了20%-40%的性能提升和成本降低。此外,文章还探讨了操作系统、编译器等底层软件的优化,以及如何通过龙蜥社区和阿里云平台支持更多应用场景,助力企业实现高效迁移和性能优化。