需求分析,解决你的技术瓶颈
2018-01-17 16:42
211 查看
冷静
思考
沟通
猜测与指导
故事时间
总结
今天看到一个网友提出的问题,如何实现ListView一次性显示几百行数据时页面不卡顿?
一直战斗在一线的程序员,第一个想法就是性能优化,通过GUI性能条优,虚拟数据,自定义滚动实现动态加载等方式解决此问题,但细思极恐,这样一个需求的提出,就算技术解决了这个问题,能带来什么价值呢?
(大数据的思想不是让更多的数据检索变快,而是让数据发挥真正的价值,无效的检索等于浪费时间)
要经常问,你提这样的要求是为了达到什么目的?这个功能是谁在使用?使用的场景是什么样的?在什么时间使用?基本上就是网上常说的“Who”,“When”,“What”。
最后送给所有程序员一句话:不要把你的软件命运交给一个门外汉,因为他根本不知道怎么样开发。
思考
沟通
猜测与指导
故事时间
总结
今天看到一个网友提出的问题,如何实现ListView一次性显示几百行数据时页面不卡顿?
一直战斗在一线的程序员,第一个想法就是性能优化,通过GUI性能条优,虚拟数据,自定义滚动实现动态加载等方式解决此问题,但细思极恐,这样一个需求的提出,就算技术解决了这个问题,能带来什么价值呢?
(大数据的思想不是让更多的数据检索变快,而是让数据发挥真正的价值,无效的检索等于浪费时间)
[冷静]
我开始冷静,让我的头脑从技术问题跳出来,再来重新看一下这句话“一个网友提问XXX”,很明显这个网友要么是开发人员,要么是系统使用人员,并且很明确他不知道需求是什么,只是有这样一个目的。[思考]
我们认真思考这句话的背后含义,说句实话,真TMD分析不出来。分析不出来就对了,我们不是福尔摩斯,不可能根据几个字分析一个人的心里动向和需求(天才除外)[沟通]
沟通是最好的工具,当时我就问了这位网友:“你为什么需要这样做,你的目的是什么?”,他的回答让我很吃惊,“客户要求的”。这是很多开发人员都处于的状态,忘记里自己才是这个软件的创造者,记得要和客户沟通,将他的任何要求都改成他的目的,不要让客户左右你的方案和手段,客户能左右的是最终的结果,目的。要经常问,你提这样的要求是为了达到什么目的?这个功能是谁在使用?使用的场景是什么样的?在什么时间使用?基本上就是网上常说的“Who”,“When”,“What”。
[猜测与指导]
有些时候可以猜测客户的需求,并且给他一些引导,比如上面这个问题,我猜测可能是客户觉得翻页太麻烦,并且展现起来不够“刺激”,但是客户也没办法一次性看这么多数据,可以引导客户实现下拉分页,每次还是展示十几条数据,需要分析的时候可以提供客户导出数据或者展示分析结果(图形胜过表格)。主动帮助客户解决问题,态度积极,并且保证自己的软件不被哪些“门外汉”左右了构造。[故事时间]
这个问题让我想到了刚毕业时,自己带第一个项目,常住客户现场,客户对财务要求很多,开始的时候一味妥协,添加了很多奇奇怪怪的功能,导致整个系统成了四不像,最后客户居然提出来一个要把“金蝶”财务的功能集成到我们的系统里面,我才意识到,我错了,我们的系统是第三方物流平台,为什么被财务左右了呢?因为我迷失了自己,忘记了自己才是这个软件的创造者。[总结]
需求不是一句简单的话,需求也不是客户让你做了什么,需求是客户想要什么,我们有义务并且义不容辞的去分析客户的需求,挖掘一个需求背后的意义,给客户提出有效的指导并且要确保软件的命运。最后送给所有程序员一句话:不要把你的软件命运交给一个门外汉,因为他根本不知道怎么样开发。
相关文章推荐
- Java 编程技术中汉字问题的分析及解决
- cluster-proportional-autoscaler源码分析及如何解决KubeDNS性能瓶颈
- 转:Java 编程技术中汉字问题的分析及解决
- Java 编程技术中汉字问题的分析及解决
- 网易视频云技术分析:IOS工程常见问题解决方法
- 项目管理中的需求变更分析和解决之道
- 汽车信息娱乐系统的技术需求分析
- 产品注册需求与技术分析
- SQL on Hadoop性能瓶颈点分析及解决方法总结
- 分析:新技术解决服务器内三大I/O瓶颈
- 软件开发项目中的需求变更分析和解决之道
- Java 编程技术中汉字问题的分析及解决
- 详解P2P传输技术与瓶颈的解决
- Java 编程技术中汉字问题的分析及解决
- 面向对象技术之需求分析:usecase图
- 凑热闹,列个非主流书单:(1)分析与解决问题、通用管理(2)技术管理/CTO
- [技术讨论]功能性和非功能性,显性和隐性的需求属性的转换与分析
- Java 编程技术中汉字问题的分析及解决
- 城市生态规划关键技术方法之五:生态支持系统瓶颈分析方法