DevOps之用户故事

简介: 对用户需求达成共识的关键

引言

对于一个用户需求,产品、开发和测试对这个需求的理解完全不一样,最终交付的产品根本不是用户想要的,这种情况在实际开发中非常普遍。


用户故事也是一种将需求可视化的工具,它通过将需求拆分成一个一个的用户故事,来组织软件开发。每一个用户故事都是软件开发过程中相关角色沟通的媒介,所以用户故事也是一种通过合作沟通的方式来理解用户需求的工具。



软件开发是团队项目

随着软件系统的规模越来越庞大,软件开发过程中的分工越来越明细,靠单兵作战来实现复杂系统越来越不现实。在企业中,无论是合同项目还是自有产品,通常采用项目管理模式,成立专门的项目组(Team),进行具体的研发工作。项目组通常由多种角色的成员构成,角色对应的职责如下:

(1)项目经理

项目的主要责任人,对项目的进度和质量负有主要责任。项目经理主要负责项目的日常管理,如计划制订、任务跟踪、沟通协调、团队建设、需求分析、技术审核等

(2)产品经理

一般自有产品才会配备产品经理,主要负责市场调研、产品策划、撰写产品的需求、跟踪产品的实现、协助市场人员进行产品的营销、获取用户反馈、产品的改进等

(3)架构师

主要负责系统的总体设计、详细设计,撰写设计文档。

(4)软件工程师

完成需求分析、软件功能的开发和单元测试及相关文档的撰写。

(5)测试工程师

编写测试用例,制订并执行测试计划,进行集成测试和系统测试。

image.png

上面只是列举了一个项目组通常具有的角色,每个项目的大小和类型不尽相同,项目对技术能力的要求及项目成员水平也各不相同,要根据自己的际情况来安排,团队协作是个老生常谈的话题,但真正做到高效协作并非易事。


什么是用户故事?

用户故事之所以叫“故事”,是因为它是用来“讲”,而不是用来“写”的。它从用户的角度来讲述如何使用软件的功能,带来怎样的收益。整个软件团队通过讲用户故事,让大家获得对软件产品的一致理解,然后共同创造出更符合用户需求的产品。


如何"讲"好用户故事

就像上面提到的,用户故事是用来“讲”的,而不只是“写”的。上面的例子中,如果这个不讨论用户故事,你能知道【立即显示】是输入 1 个字、 2 个字,还是有光标就能显示呢?因此,“讲故事”是本课时的核心观点,用户故事的关键就是“讲”。那么,怎样才能“讲”好用户故事呢?

1、聚焦全景

软件开发最终交付给用户的是一个可以工作的软件,这就需要先实现一个一个单独的功能。因此,我们需要将一个大需求进行合理拆分,拆分后的需求就称为“用户故事”。

image.png

2、3C原则

3C 原则是在由 Ron Jeffries(罗恩·杰弗里斯) 等人在《极限编程实施》一书中提出的。3C 原则描述的是为了更有效的使用用户故事进行需求分析时应该遵循的原则:


卡片(Card):在卡片上写下所期望的软件特性。

交谈(Conversation):聚在一起对要开发的软件进行深入讨论。

确认(Confirmation):对完成的特性进行确认。

1. 卡片(Card)

卡片是用户故事的载体,用来记录用户想要的每一个产品特性,上图中的每一个用户故事卡片都对此有所体现。

通过这种方式,可以很容易地组织这些卡片,比如通过拖拽的方式选择本次迭代需要交付的用户故事,排列用户故事的优先级等。


2. 交谈(Conversation)

创建好卡片后,我们并不是直接将卡片甩给团队中的其他角色。而是请相关人员围绕卡片中的用户故事进行讨论。在讨论过程中:


每个参与者都可以通过提问来表达自己的疑惑,其他参与者则可以帮助解答。如果在某个问题上有分歧,则所有参与人员共同讨论决定。


除了使用创建好的卡片之外,还可以借助像思维导图、流程图、原型图等有助于理解的可视化工具,避免参与人员通过手势对着空气挥舞。

讨论中所涉及的问题都需要进行标记、并在事后进行修正整理。


总之,交谈的目的是让所有参与者对用户故事达成一致的理解,并一起努力找到解决问题的最佳方案。就像看到旅行照片一样,团队成员当看到这张卡片时就能回忆起当时讨论的细节。


3. 确认(Confirmation)

现在,团队成员已经对用户故事达成了一致,这时就需要考虑如何判断这个用户故事是否已经完成开发,也就是明确验收条件。


一般情况下,当开发完成后需要通过单元测试、SIT 测试、UAT 测试,通过测试后该用户故事才算完成。剩下的就是根据业务需要随时发布该功能到生产环境中,完成最终的用户交付。

3、故事模板

现在你了解了讲好用户故事需要注意的几个方面,但作为软件从业人员来说,这还不够。相对于产品和市场人员来说,很多开发人员不知道如何去讲用户故事,也不习惯讲用户故事。这时,你需要使用用户故事模板,这样就能够对卡片上的内容有一个指引,方便讨论。如下图所示:

image.png

为了达到更好的讨论效果,这里罗列几个讨论清单:


  • 讨论用户角色。 不要单纯地将所有使用软件的人抽象为“用户”,要更加具体,比如企业用户还是个人用户,个人用户又可以根据年龄、性别进行细分。每一个用户群体对软件的诉求是不一样的。


  • 讨论要做的功能。 不要只讨论用户能够看得见摸得着的界面功能,也要考虑界面后所调用的后台服务,其他服务与服务之间的调用关系、服务调用时的鉴权功能等也需要考虑。因为这些才是软件可工作的基础。


  • 讨论该功能的价值。 讨论为什么用户需要这个功能。提问也是一门艺术,可以通过 5 Why 提问法,多问几个为什么,就可以发现隐藏在背后的真正原因。


  • 讨论异常情况。 讨论可能出现的异常情况,以及出现异常后的解决方案。


  • 讨论开发周期。 讨论用户故事什么时间完成开发,什么时间完成测试,什么时间最终交付给用户......为这些时间点提供一个预估的计划表。


用户故事及用户故事地图,很多企业的研发团队中都有使用。就像开头提到的那样,软件开发是一个团队项目,在团队中沟通协调是至关重要的。


总结

团队协作一直是贯穿于软件研发全流程,一套高效协同的工具或方法论,可以有效的提高研发效率、保障交付的质量,用户故事在现如今软件迭代速度越来越快的今天,是一个值得一试的工具。

目录
相关文章
|
18天前
|
运维 Devops jenkins
DevOps文化:持续交付与持续反馈的文化构建与实践
【10月更文挑战第27天】DevOps文化强调开发和运维的紧密合作,以实现快速、高质量的软件交付。核心在于持续交付和持续反馈。本文探讨了如何通过改变组织结构、构建跨功能团队、使用自动化工具(如Jenkins)和积极收集用户反馈,来构建和实践DevOps文化。
29 0
|
3月前
|
运维 Devops jenkins
十六年所思所感,聊聊这些年我所经历的 DevOps 系统
从 2008 年开始,我陆陆续续参与了多个 DevOps 系统的建设,如今,审视这些系统的建设初衷和它们的设计思路或遇到的问题,依然有不少借鉴意义。我会按照时间顺序,把每个 DevOps 系统的特点,诞生的背景,以及在当时所主要解决的问题做一个概要的介绍,同时,我们也会以今天的视角再次审视这些问题,来看下同样的问题,经过十几年的发展,解决方案上有哪些不同。
|
3月前
|
运维 监控 Devops
DevOps实践之旅:从混乱到秩序的转变
在软件开发的世界里,DevOps不仅仅是一个流行词,它是文化、实践和工具的集合体,旨在缩短系统开发生命周期,同时提供高质量的软件持续交付。本文将带你领略DevOps如何从概念走向实践,转变传统运维模式,提升团队协作效率,实现快速迭代与高可靠性的平衡艺术。
|
5月前
|
运维 监控 Devops
揭秘云效DevOps背后的那些不为人知的故事
【6月更文挑战第11天】云效DevOps,源于工程师对传统开发运维模式的反思,旨在通过自动化、智能化提升效率,解决效率低、沟通难、质量不稳定的问题。技术创新包括自动化构建、持续集成和全面监控告警。示例代码展示了自动化构建过程。用户反馈良好,助力企业实现高效开发运维,赢得市场竞争力。云效DevOps将持续为企业数字化转型贡献力量。
46 3
|
5月前
|
运维 监控 Devops
云效DevOps:不仅仅是工具,更是思维方式的转变
【6月更文挑战第11天】云效DevOps是软件行业的 game changer,超越技术工具层面,推动协作、自动化和持续改进的思维转型。它连接开发、测试、运维,强化团队协作,通过自动化提升效率和准确性,减少人为错误。示例展示了自动化构建过程,强调每次迭代都是改进机会,促进项目持续优化和竞争力提升。
177 3
|
6月前
|
数据可视化 搜索推荐 Devops
从DevOps实践者的角度谈谈云效Flow
这篇文章是一位DevOps实践者对云效流水线Flow的评测。首先介绍了自己参与评测的背景,并对Flow的易用性给予了肯定,认为它适合新手,尤其是可视化的编排功能。然后,作者讨论了Flow在新人上手、产品功能、性能和开放性方面的表现,指出Flow在插件开发能力和YAML编排体验上存在提升空间。他还提到了YAML编排的学习曲线和与可视化的结合问题,以及任务管理和步骤名称的混淆。此外,作者建议Flow增强模块间的逻辑性和交互清晰度,以提供更顺畅的工作流程体验。最后,作者总结了Flow的优点(功能齐全,适合中小企业)和需要改进的地方(业务逻辑、制品库能力和私有化场景的支持),并对其未来发展提出了期待。
490 0
|
运维 监控 Devops
3W2H 解说DevOps
3W2H 解说DevOps
159 0
|
运维 数据可视化 Devops
IT团队提升业务认知的5个秘诀|云效BizDevOps主题系列
践行 BizDevOps ,科技更需要向前一步,与业务并肩作战。 在业务认知上的三个层次包括理解业务基本面、解读业务策略变化、提议数字化方案。 5 个有效秘诀包括: a.形成简版的业务基本面知识条目,设为基线,进行考试。 b.翻转课堂, IT 团队通过业务反串讲来习得业务知识。 c.定期进行业务知识擂台赛,加速业务策略变为显性知识的螺旋。 d.将组织中的提案逻辑模板化,通过专项的刻意训练,让 IT 团队能够自如地进行数字化提案。 e.定期进行共创提案会,找到“四两拨千斤”的数字化的举措,创造价值。
8545 2
IT团队提升业务认知的5个秘诀|云效BizDevOps主题系列
|
运维 监控 Devops
我眼中的DevOps
DevOps 是由开发(developments)和运维(operations)两个单词组成,可以看做是开发、测试和运维之间的一个交集,通过一些列固化的流程来使得整个项目的开发周期变得更便捷和可靠。
我眼中的DevOps
DevOps 工程师成长日记系列二:配置
原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-2-configure-a2dfc11f6f7d原文作者:Igor Kantor翻译君:CODING 戴维奥普斯 前情提要 在第一篇文章中,我对 DevOps 工程师的工作定义是搭建一个数字化的全自动流水线来高效地将代码从编写环节部署到生产环境中:《DevOps 工程师成长日记系列一:必备知识与技能组合》。