【论软件需求获取方法及其应用】

摘要

2023 年 3 月,我所在的公司承接了某油企智慧加油站平台的建设工作。该项目旨在帮助加油站提升运营效率、降低运营成本和提高销售额。我在该项目中担任系统架构设计师,负责整个项目的架构设计工作。

本文以该项目为例,详细论述软件需求获取技术在该项目中的具体应用。在该项目中,我们主要运用了用户访谈、现场观摩和原型化方法等技术来获取需求。首先,我们通过用户访谈获取初步的用户需求;然后通过现场观摩获取复杂业务流程的需求;最后通过原型化方法进一步跟客户验证与确认需求。通过以上方法的运用,我们准确地获取了系统的需求,为后续阶段工作的顺利开展提供了有利的支撑。

整个项目历时 10 个月开发完成,并于 2023 年 12 月正式交付并稳定运行至今,各项功能和性能指标均达到了客户要求,得到了客户和各级领导的一致好评。

项目背景

随着国内成品油零售行业竞争日益激烈,某油企为增强市场竞争力,决定建设一个智慧加油站平台,通过引入信息技术来优化运营管理,进一步提升加油站的管理水平和服务质量。我所在的单位成功中标该项目,并于 2023 年 3 月正式启动该项目的建设工作。我被任命为系统架构设计师,负责该项目的系统架构设计工作。

该项目的主要建设内容包括智慧支付、智慧营销、智慧运营等功能模块。其中智慧支付模块提供了对多种支付方式的支持,比如现金支付、油卡支付、微信支付、支付宝支付、云闪付支付、车牌付、人脸付、ETC 支付等,以确保顾客下单支付的便利性和安全性;智慧营销模块支持开展多种形式的营销活动,比如消费返券、趣味抽奖、积分任务、限时秒杀、充值优惠等,以提高顾客复购率;智慧运营模块涵盖了站务管理、运营数据统计分析等功能,以提高加油站运营效率。

该项目选用 Java 作为主要开发语言,采用基于 Spring Cloud Alibaba 的微服务架构进行构建。我们选择 MySQL 作为数据库,Doris 作为实时数仓,Redis 作为分布式缓存,RocketMQ 作为消息中间件,Flink 作为实时流式计算引擎,并最终在 Kubernetes 集群中部署运行。

考虑到该项目的复杂性,经过项目团队成员的充分讨论,我们一致决定采用用户访谈、现场观摩和原型化方法来获取该项目的需求。下文将详细论述这三种需求获取技术在该项目中的具体应用。

用户访谈

首先,我们通过用户访谈获取初步的用户需求。用户访谈的推进过程经历了以下三个阶段:准备阶段、访谈阶段和总结阶段。在准备阶段,我们确定了访谈对象,如企业决策者、加油站站长、加油站员工以及顾客,并根据访谈对象的特点分别制定了个性化的访谈计划,内容包括访谈时间、访谈对象、访谈目的以及访谈问题列表。对于企业决策者,访谈问题主要关注其对智慧加油站平台的期望与目标;对于加油站站长,访谈问题主要关注其在日常运营中所面临的挑战与困难;对于加油站员工,访谈问题主要关注其日常工作流程以及在工作中遇到的各种问题;对于顾客,访谈问题主要关注他们在消费过程中的便捷性和安全性体验。在访谈阶段,我们按照访谈计划逐一进行访谈,在访谈过程中,我们通过开放性问题引导访谈对象表达他们真实的需求和想法,并认真倾听访谈对象的反馈和建议,以便更好地了解他们的需求和期望。在访谈过程中,我们还注意记录访谈对象的回答和反馈,以便后续分析和整理。在总结阶段,我们对访谈结果进行了整理和分析,并为每个访谈对象整理了访谈备忘录。通过对访谈记录的整理和分析,我们得到了初步的用户需求。

现场观摩

然后,我们通过现场观摩获取复杂业务流程的需求。虽然之前的用户访谈为我们提供了一些用户需求的基础信息,但由于项目团队成员缺乏对相关领域知识的了解,对一些关键的业务流程如加油付款、员工交接班、营销活动等的理解仍然不够清晰。为了更直观地理解这些业务流程,在获得高层领导的支持和加油站站长的协助后,我们选择在加油低峰时段对这些业务流程进行了现场观摩。我们重点观察了员工和顾客的操作流程,比如顾客如何支付、领取优惠、使用优惠等,员工如何收款、交接班、核销优惠等。同时,我们也注意到了一些之前用户访谈中未能提及的细节和问题,例如,在加油付款的过程中,我们发现一些顾客对支付方式和优惠的选择存在困惑,他们不确定应该怎么选择才能享受最大的优惠。针对这个问题,我们提出了一个改进建议:自动选择最大的优惠,该建议得到了客户的认可和支持。通过现场观摩,我们直观、清晰地了解了这些业务流程,进一步地加深了我们对加油站运营的理解和认识。

原型化方法

最后,我们通过原型化方法进一步跟客户验证和确认需求。通过用户访谈和现场观摩,我们已经获取到了基本的用户需求。但是为了确保我们与客户对需求的理解完全一致,我们决定采用原型化方法来进一步验证和确认需求。首先,我们根据之前收集的信息和需求,设计了一个初步的原型,并邀请了一些典型的用户来试用原型,同时观察他们的操作过程和反馈。通过原型测试,我们发现了一些之前未能注意到的问题和细节,例如一些用户在加油过程中遇到了操作上的困难,他们不知道应该如何选择油品和数量。针对这个问题,我们优化了原型。此外,我们还发现了一些用户对优惠活动存在误解,他们不清楚优惠的具体规则和条件。针对这个问题,我们在原型中增加了一些说明和引导,帮助用户更好地理解优惠活动。在原型测试结束后,我们根据用户的反馈和建议,对原型进行了多次修改和优化,最终,我们得到了一个符合用户需求、操作流畅、用户友好的原型。通过原型化方法,我们不仅进一步了解了客户的需求和细节,还提高了该系统的可用性和用户体验。

总结与感悟

通过微服务架构的应用,我们有效提高了系统的可扩展性和可维护性。最终,经过 10 个月的研发,该项目于 2023 年 12 月完成并交付上线,至今运行稳定,各项功能和性能指标均达到客户要求,得到了客户和各级领导的一致好评。虽然项目取得了成功,但我们也看到了一些不足之处,其中需求频繁变更导致项目团队经常加班是比较突出的问题。针对这个问题,我们采取了以下两个措施:一是规范需求变更流程,提升变更成本,以避免过度的需求变更;二是通过灵活的配置和架构设计,低成本响应需求变更。

通过该项目的开发,我在系统分析与设计方面积累了不少宝贵的经验,为我后续的工作提供了很大的帮助。这也激励着我不断学习,不断丰富自己的知识体系,为将来能够应对更复杂的工作做好准备。

来源

相关推荐
七灵微1 天前
进程与线程以及如何查看
linux·系统架构
oioihoii1 天前
桌面图形界面生成原理:从流水灯到电脑屏幕
系统架构
颯沓如流星2 天前
软件架构设计方法之The Clean Architecture 整洁架构
架构·系统架构
柔弱女子爱java2 天前
spring专题笔记(五):依赖注入--p命名空间注入、c命名空间注入、util命名空间
java·笔记·后端·spring·架构·系统架构
云空2 天前
《 QT 5.14.1 类库模块列表详述》
开发语言·qt·系统架构
星原飞火3 天前
2-2-18-16 QNX系统架构之自适应分区
车载系统·系统架构·qnx·blackberry
重生之我是数学王子4 天前
ARM原理
arm开发·系统架构
silver6874 天前
中间件介绍
系统架构
亭墨4 天前
linux0.11源码分析第二弹——setup.s内容
linux·驱动开发·学习·系统架构
田超凡6 天前
M4Pro内核MacOS brew安装docker爬坑
微服务·云原生·java-ee·系统架构