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 提问法,多问几个为什么,就可以发现隐藏在背后的真正原因。


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


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


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


总结

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

目录
相关文章
|
7月前
|
运维 Devops Java
如何在职场中脱颖而出?云效DevOps帮你加分!
【6月更文挑战第11天】云效DevOps助力职场人士提升效率与竞争力。它通过自动化、集成化打破开发、测试、运维壁垒,缩短项目周期,提高交付速度。例如,使用yaml配置的自动化构建流水线能简化Java项目构建过程。此外,DevOps强调团队协作,促进信息共享,提升项目成功率。同时,DevOps鼓励创新,培养应对市场变化的能力,从而在职场中展现个人价值并保持竞争力。
50 3
|
7月前
|
运维 监控 Devops
揭秘云效DevOps背后的那些不为人知的故事
【6月更文挑战第11天】云效DevOps,源于工程师对传统开发运维模式的反思,旨在通过自动化、智能化提升效率,解决效率低、沟通难、质量不稳定的问题。技术创新包括自动化构建、持续集成和全面监控告警。示例代码展示了自动化构建过程。用户反馈良好,助力企业实现高效开发运维,赢得市场竞争力。云效DevOps将持续为企业数字化转型贡献力量。
55 3
|
7月前
|
运维 监控 Devops
云效DevOps:不仅仅是工具,更是思维方式的转变
【6月更文挑战第11天】云效DevOps是软件行业的 game changer,超越技术工具层面,推动协作、自动化和持续改进的思维转型。它连接开发、测试、运维,强化团队协作,通过自动化提升效率和准确性,减少人为错误。示例展示了自动化构建过程,强调每次迭代都是改进机会,促进项目持续优化和竞争力提升。
184 3
|
7月前
|
运维 监控 Devops
如何快速提升项目质量?云效DevOps的秘诀在这里!
【6月更文挑战第11天】云效DevOps是一款集成代码管理、自动化构建、持续集成/部署、测试管理和监控的云原生研发平台,它通过打破开发、测试和运维间的障碍,提升软件质量和效率。关键功能包括:代码质量检查,自动化构建与测试(如Git、Maven集成),持续部署与监控,以及团队协作工具。通过这些,云效DevOps促进高效协同,确保项目质量快速提升。
57 2
|
7月前
|
监控 Devops 测试技术
云效DevOps:让每一位开发者都成为“超级英雄”
【6月更文挑战第11天】云效DevOps是面向软件开发者的云原生协作平台,集成代码管理、自动化构建、持续集成/部署、测试管理和监控告警等功能。它简化代码管理,支持Git等版本控制,提供代码质量检查。自动化构建与持续集成加快开发速度,减少错误。例如,通过YAML配置实现Docker中Maven的构建任务。持续部署功能加速代码上线,监控告警确保问题及时处理。团队协作功能促进高效沟通,助力开发者成为项目中的“超级英雄”。
87 3
|
7月前
|
运维 监控 Devops
云效DevOps:让梦想照进现实,你的未来不是梦!
【6月更文挑战第11天】云效DevOps是新兴的软件开发运维解决方案,它融合代码管理、自动化构建、持续集成、部署和监控,提升开发效率,强化团队协作。自动化和持续集成是其核心,减少人为错误,确保代码质量和稳定性。通过示例代码展示了自动化构建过程,强调了云效DevOps的灵活性和定制化能力。此外,其监控告警功能可及时发现并处理问题。云效DevOps正重塑开发运维模式,助力各型企业赢得竞争优势,共创美好未来。
66 3
|
7月前
|
Devops 测试技术 持续交付
别再加班了!云效DevOps助你秒变高效开发者
【6月更文挑战第11天】云效DevOps是一套集成开发工具,通过自动化、持续集成和持续部署帮助开发者提升效率,减少加班。它提供自动化流程,如代码构建、测试和部署,以Jenkinsfile为例展示了如何实现自动化。此外,云效DevOps还具备协作功能,促进团队沟通,提高项目管理效率,助力开发者成为高效能人士。拥抱云效DevOps,告别加班,享受高效开发!
69 2
|
8月前
|
数据可视化 搜索推荐 Devops
从DevOps实践者的角度谈谈云效Flow
这篇文章是一位DevOps实践者对云效流水线Flow的评测。首先介绍了自己参与评测的背景,并对Flow的易用性给予了肯定,认为它适合新手,尤其是可视化的编排功能。然后,作者讨论了Flow在新人上手、产品功能、性能和开放性方面的表现,指出Flow在插件开发能力和YAML编排体验上存在提升空间。他还提到了YAML编排的学习曲线和与可视化的结合问题,以及任务管理和步骤名称的混淆。此外,作者建议Flow增强模块间的逻辑性和交互清晰度,以提供更顺畅的工作流程体验。最后,作者总结了Flow的优点(功能齐全,适合中小企业)和需要改进的地方(业务逻辑、制品库能力和私有化场景的支持),并对其未来发展提出了期待。
503 0
|
运维 监控 Devops
3W2H 解说DevOps
3W2H 解说DevOps
179 0
|
敏捷开发 弹性计算 监控
阿里云项目敏捷实践之DevOps
敏捷开发少不了一个方便的持续交付环境。今天我使用阿里云简单搭了一套开发环境,这里简单记录一下搭建过程。
411 0
阿里云项目敏捷实践之DevOps