• 需求分析,解决你的技术瓶颈


    今天看到一个网友提出的问题,如何实现ListView一次性显示几百行数据时页面不卡顿?

    一直战斗在一线的程序员,第一个想法就是性能优化,通过GUI性能调优,虚拟数据,自定义滚动实现动态加载等方式解决此问题,但细思极恐,这样一个需求的提出,就算技术解决了这个问题,能带来什么价值呢?
    (大数据的思想不是让更多的数据检索变快,而是让数据发挥真正的价值,无效的检索等于浪费时间)

    [冷静]

    我开始冷静,让我的头脑从技术问题跳出来,再来重新看一下这句话“一个网友提问XXX”,很明显这个网友要么是开发人员,要么是系统使用人员,并且很明确他不知道需求是什么,只是有这样一个目的。

    [思考]

    我们认真思考这句话的背后含义,说句实话,真TMD分析不出来。分析不出来就对了,我们不是福尔摩斯,不可能根据几个字分析一个人的心里动向和需求(天才除外)

    [沟通]

    沟通是最好的工具,当时我就问了这位网友:“你为什么需要这样做,你的目的是什么?”,他的回答让我很吃惊,“客户要求的”。这是很多开发人员都处于的状态,忘记里自己才是这个软件的创造者,记得要和客户沟通,将他的任何要求都改成他的目的,不要让客户左右你的方案和手段,客户能左右的是最终的结果,目的。
    要经常问,你提这样的要求是为了达到什么目的?这个功能是谁在使用?使用的场景是什么样的?在什么时间使用?基本上就是网上常说的“Who”,“When”,“What”。

    [猜测与指导]

    有些时候可以猜测客户的需求,并且给他一些引导,比如上面这个问题,我猜测可能是客户觉得翻页太麻烦,并且展现起来不够“刺激”,但是客户也没办法一次性看这么多数据,可以引导客户实现下拉分页,每次还是展示十几条数据,需要分析的时候可以提供客户导出数据或者展示分析结果(图形胜过表格)。主动帮助客户解决问题,态度积极,并且保证自己的软件不被哪些“门外汉”左右了构造。

    [故事时间]

    这个问题让我想到了刚毕业时,自己带第一个项目,常住客户现场,客户对财务要求很多,开始的时候一味妥协,添加了很多奇奇怪怪的功能,导致整个系统成了四不像,最后客户居然提出来一个要把“金蝶”财务的功能集成到我们的系统里面,我才意识到,我错了,我们的系统是第三方物流平台,为什么被财务左右了呢?因为我迷失了自己,忘记了自己才是这个软件的创造者。

    [总结]

    需求不是一句简单的话,需求也不是客户让你做了什么,需求是客户想要什么,我们有义务并且义不容辞的去分析客户的需求,挖掘一个需求背后的意义,给客户提出有效的指导并且要确保软件的命运。

    最后送给所有程序员一句话:不要把你的软件命运交给一个门外汉,因为他根本不知道怎么样开发。

  • 相关阅读:
    如果一切需要重学,2014年应该学哪些技术?
    LINUX 更新
    LINUX学习
    判断设备是笔记本,还是台式机
    DUILIB 实现微信气泡聊天效果
    OC学习1
    DUILIB 背景贴图
    DUILIB CDialogBuilder 使用问题
    my english dream
    oracle 函数
  • 原文地址:https://www.cnblogs.com/xiaoch/p/13417939.html
Copyright © 2020-2023  润新知