30岁进入公司,又已经快四年,日常面临着繁杂的业务需求,频繁处理着需求的设计、开发、测试、变更、运营和维护,每天自己被逼的很忙。静静心思考,我们究竟如何能让快速相应业务需求,并将业务需求做好做强呢?
一、首先要学会挖掘客户需求,时刻拥有一个产品和主人翁的心,并充满耐心。日常除了能接受客户的需求以外,还需学会思考客户为什么要提这个需求,了解这个需求的上下游背景,提的需求是否合理,是否能帮助客户挖掘更深层的需求,并将业务需求圆满解决。这里有个老太太买李子的典故:
商贩A: 老太太你想买什么,我这里有李子,苹果,香蕉...;
老太太:给我来点李子
商贩A: 好叻,我这李子可甜了。
老太太尝了下,摇摇头,走了。
商贩B: 来看一看,我这里有李子卖了,各种酸的甜的都有
老太太:给我来一斤酸李子
商贩B: 老太太这李子可酸了,你尝尝
老太太尝了下,确实很酸,但是还是买了一斤走了
商贩C: 老太太,我们这里有酸李子卖
老太太停了下来,尝了一口:嗯,确实很酸,给我半斤
商贩C: 老太太,你买这么多酸李子做什么?
老太太:我家儿媳妇怀孕了,想吃酸的。
商贩C: 老太太,你对您儿媳妇真好,儿媳妇想吃酸的,你就过来买酸李子了。可是孕妇最重要的还是要补充维生素C,这里有新鲜的猕猴桃,要不您来点
老太太:嗯,给我来一斤
以后老太太和商户C建立了长期运营的关系
分析这个故事:
商户A: 只在乎自己有什么,不顾客户究竟要什么
商户B: 知道客户想要什么,并能提出解决问题的措施;然而如果又来个需求,又要不断去面对,让自己很忙碌
商户C:不仅知道客户想要什么,还能帮客户针对需求的问题,提出其他合理的方案,并指导客户去实施,最终达到长期合作的关系
二、细化到技术开发,我们究竟如何做好业务需求
a、如何评估好需求
整体流程评估
1、横向评估:整体流程链路是什么,跨团队分工职责是什么,系统边界功能是否划分合理,流程上是否有缺陷?
2、纵向评估:是否有历史流程,切换到新方案后,旧版的过渡方案是如何处理?
细节功能评估
1、完整性评估:整体功能列表是什么?功能项是否完备?那些是依赖的外部接口?那些功能项重要性和优先级设置是否合理?
2、功能性评估:每个功能项流程逻辑是什么,是否合理;输入和输出是什么,是否有约束条件的限制和特殊考虑?兼容性和可扩展性是否考虑?定义的需求是否容易验证?
3、非功能性评估:每个功能项对安全、容灾、性能是否有要求?异常情况下,相应的容错处理是否合理?
4、监控与运营报表评估
b、如何做好用户需求 参考系统性思维:WWH&DCA理论
1、为什么要做,解决了那些具体问题(用户、架构问题)
2、全局解决方案是什么, 方案整体数据库设计,类图设计等
3、功能性设计考虑点(程序描述、功能、输入项、输出项、算法(安全加密、数据结构算法等)、流程逻辑、接口、存储分配、限制条件、测试计划、尚未解决的问题)
4、非功能性设计考虑点(安全、容灾、性能、成本、效率、体验指标设计)
5、异常情况设计(出错信息监控、补救措施等)
6、核心链路监控与运营报表
7、最终效果验证,指标收集成果
8、总结,实际经历的过程和坑,以及解决思路
评审思路:
1、一致性和完整性:功能点是否齐全,是否与设计一致
2、正确性和准确性:软件功能、流程逻辑、算法是否正确合理?设计能达到性能最佳,对安全、故障处理和失效的实现方案?用户界面是否反映功能实现?
3、易理解性:模块结构是否清晰,流程逻辑是否清晰,用户界面是否清晰
4、可测试性:设计是否可测试
5、接口开放和兼容性
6、可追踪性
7、健壮性:易修改、可扩展、可移植
8、复用性:是否可复用
9、可行性:是否便于编码实现、维护和使用