作自己的用户,我们的软件产品会更好用
2006-01-21 15:03
411 查看
大多数的软件开发人员都是为别人开发软件的,是为了解决别人的问题,很多设计人员常常为了一个灵感,一个改进而沾沾自喜,也有时为了自己的算法很美而自我感觉良好,对于用户的提出的建议、意见、抱怨,有时会不屑一顾,振振有辞,总感觉自己设计的软件是很好用的,而不愿再修改自己的代码。其实,每个设计人员最好能够站在用户的角度考虑问题,这样,才可以更好的理解用户的心情,真正的获得用户的体验,真正体验到用户的辛苦。
我一直梦想可以设计一套软件,我们可以自己使用,首先解决我们公司自己的管理问题,然后再推向市场,这样作又很多好处,首先我们的开发人员都将亲自使用自己设计的产品,立刻感觉到软件存在的缺陷,而且可以立刻改进,其他人员可以直接跟开发人员交流对产品的看法,他们的建议很可能就是产品 的一个买点;其次,公司的每个员工都是产品的用户,他们都对产品非常熟悉,几乎每个人都可以回答客户的问题,提高了我们服务水平;最后,我们不再需要把长满BUG的产品提交给用户,让用户给我们测试(在我们第二版开始的时候,BUG就很多,我们时常开玩笑说,用户成为我们的测试工程师,第三版的时候也是如此),我们可以非常自信的提供给用户一个好用的产品。
现在我们开始这样作了,我们的第四版软件产品就是首先作为我们自己的管理软件使用的。这个软件是一个通用的软件,可以应用于大多数的行业,可以支持二次开发,和自由的配置。国内也有这样的软件平台,大多数的设计思路类似,我们的思路是一切都是变量,从数据表,字段,到用户的界面,报表,整个的流程,都是可以改变的。就像我们使用C++写一个Add函数,一开始 的时候,为了实现两个整数,两个浮点数,两个字符相加,我们必须写三个Add函数,参数的数据类型不同,后来为了方便,我们干脆写了一个Add函数模板,数据类型作为模板的参数,这样,一个函数我们可以取得了原来的三个函数,我们写了一个员工管理的程序,后来又写了一个学生管理的程序,还写了一个图像管理的程序,比较一下,这些程序有什么相同点,有什么不同点,我们是否可以写一个程序的模板,通过将员工、学生和图像作为模板参数传递给程序模板,这样,一个程序模板是否可以取代原来的三个程序。这就是我们新版软件的基本设计思想,当然实现起来绝对没有函数模板这样简单。不管怎样,我们现在有了这样的一个软件,它很丑陋,但可以很好的工作,对于流程的处理非常好。
我们使用这个软件配置出了我们的BUG管理器,基本的工作流程是,用户反馈的信息(或测试人员发现的问题)由服务工程师输入到BUG管理器中,然后由负责人对BUG进行分配,每个人立刻可以看见自己的BUG,然后修改程序,修改完成之后,提交测试,确认修改,测试工程师将测试提交的程序,如果有问题再将设置修改完成的BUG退回到设计人员,或者提交新的BUG。
这个软件使用了大约一个月的时候,我感觉很好,毕竟,我们产品存在的问题不再随手写在纸上,不再口头通知,不再通过共享的文本文件或WORD文件通知,我们可以随时查找很久以前的问题,我们不再考每个人的记忆力处理BUG,这对我们来说是一个进步。后来由于某种原因,我需要在其中提交几个BUG(我参与了这个软件的设计),我发现提交BUG非常麻烦,我必须在新建对话框中重复的输入BUG的提交者,客户ID,BUG类型,BUG的修改者等等,这几个BUG很多东西都一样的。我问一个测试人员,对于这种重复录入是否感觉麻烦,他说以前使用WORD写BUG是也是这样,在一个表格中重复录入。我说这个工作可以简单一点,我们可以通过增加一个“派生”命令解决这个问题,选中一个已有的BUG,然后选择“派生”命令,这时会弹出一个对话框,其中显示了当前BUG的字段信息,以及新BUG的信息,其中新BUG的信息于已经存在的BUG的信息完全一样,在其中修改一下,点击确定,则新的BUG创建完成了,问题就这么简单,我们不再需要重复输入了,这个软件比以前好用了。
还有很多类似的问题,我们都改进了设计或增加了新的功能。用户是最好的老师,也是最好的设计师,他们的建议可以极大的提高产品的易用性,在竞争如此激烈的时代,这意味着产品的竞争力,意味着更好的用户认可度。
当然我们的第四版不仅仅是作为一个BUG管理器,我们正在将其配置为计划管理器,可以通过我们的Messager程序通知局域网内的用户,也可以通过短信通知经常出差的市场人员和工程人员。
(周末在家写东西真不爽,孩子醒了。。。。)
还有一种比较普遍的现象,值得关注,哪就是在企业信息化的过程中,有的企业直接选定某个公司的产品,有点企业自己组织人员开发。这两种方式都可以解决问题,但是,在软件产品是否好用这个问题上,企业自己开发的软件似乎更好用一些。原因不是企业自己的开发人员更聪明,而是因为他们更了解用户的习惯。我以前在一家大型企业从事机械设计工作,后来做软件开发,编写开发部的PDM软件,软件实现的功能很有限,只要设计人员能够用到的功能,都有,用不到的功能,一个也不加。设计人员非常欢迎,工作效率有所提高。同时单位也购买了上海一家公司的PDM产品,但是推广了很长时间才得以实时,操作很复杂,但是程序的通用性很高。还有的医院自己开发HIS,也非常好用,但是只能给自己的医院使用,很难给第二家医院。
企业自己开发软件比较好用的原因是,1)企业自己的开发人员了解企业的工作流程和用户的习惯以及特点,写软件能够写到点子上,很多企业的开发人员本身就是软件的使用者。2)用户反馈信息的处理及时迅速,用户就在开发人员的身边,开发人员就在用户的身边,两者直接的交流非常迅速,软件存在问题,可以立刻修改,而不想某家公司实施软件,公司对用户反馈信息的处理往往比较长,而且在信息的传递过程中,信息可能会变味,从用户口中说出的一句话,经过一系列的层层反馈,在传到开发人员的耳朵里的时候,可能与用户的意图相差甚远了。3)软件完成之后,有一个100%用户环境的真正的现场测试,这是一般的公司开发软件所没有的一个环境。
当然,由于开发的起点不同,开发的目的也不同,企业自己开发软件往往只解决自己的问题,因此,这种软件距离商品化还有很大的距离。
做自己的用户,就具备上面的几个好处,其中第二条,值得我们在处理用户反馈的信息时借鉴,即必须缩短用户与开发人员之间交流的时间,最好不要通过口头转述,转述的环节多了之后,信息会变味,最好要有文字的记录,当然有语音的记录更好。
那么,什么是好用的软件?《程序员》杂志2006年第一期上有一篇文章《“好用”的用户界面设计思想》,从理论上讲述了什么样的软件好用,为什么好用,值得学习。
“好用”是相对的,用户认为软件好用,才是好用的,开发人员说了不算。我曾经在软件中增加了词库和模板的支持数据的快速录入,我们的宣传口号是抛弃键盘,完全通过鼠标即可实现报告的快速编辑。用户一直非常认可,我们开发人员也自我感觉良好,直到最近遇到了一个新的用户,他们处理的数据量非常大,而且键盘非常熟悉,希望通过键盘输入数据,遇到比较长的数据项目,可以使用编号或拼音码输入,回车直接切换控件的焦点,CTRL+S保存数据,CTRL+N新建记录,保存数据之后焦点重新定位到第一个控件等等,他们希望在整个操作过程中不要使用鼠标。后来我们不得不增加软件对于键盘的支持。最终的结果是,这家用户通过键盘输入数据的速度比鼠标快的多,感觉就像银行终端机上操作一样,没有鼠标,通过回车实现输入焦点的切换。这家用户让我们的软件具备了这个功能。
开发一个“好用”的软件,需要一个不断积累的过程,因为产品需要实践检验,开发人员需要让这个过程缩短。我不喜欢那种今天写一个软件,明天写一个软件,今天我推翻了前辈的设计,后天你推翻了我的设计,这种做法会让公司倒闭,是具有破坏性的行为。软件产品的进步,应该是一个可持续发展的过程,而不是破坏性的改进。
用户是开发人员的老师,作自己的用户,我们可以学会很多东西,我们的产品会越来越好用。
我一直梦想可以设计一套软件,我们可以自己使用,首先解决我们公司自己的管理问题,然后再推向市场,这样作又很多好处,首先我们的开发人员都将亲自使用自己设计的产品,立刻感觉到软件存在的缺陷,而且可以立刻改进,其他人员可以直接跟开发人员交流对产品的看法,他们的建议很可能就是产品 的一个买点;其次,公司的每个员工都是产品的用户,他们都对产品非常熟悉,几乎每个人都可以回答客户的问题,提高了我们服务水平;最后,我们不再需要把长满BUG的产品提交给用户,让用户给我们测试(在我们第二版开始的时候,BUG就很多,我们时常开玩笑说,用户成为我们的测试工程师,第三版的时候也是如此),我们可以非常自信的提供给用户一个好用的产品。
现在我们开始这样作了,我们的第四版软件产品就是首先作为我们自己的管理软件使用的。这个软件是一个通用的软件,可以应用于大多数的行业,可以支持二次开发,和自由的配置。国内也有这样的软件平台,大多数的设计思路类似,我们的思路是一切都是变量,从数据表,字段,到用户的界面,报表,整个的流程,都是可以改变的。就像我们使用C++写一个Add函数,一开始 的时候,为了实现两个整数,两个浮点数,两个字符相加,我们必须写三个Add函数,参数的数据类型不同,后来为了方便,我们干脆写了一个Add函数模板,数据类型作为模板的参数,这样,一个函数我们可以取得了原来的三个函数,我们写了一个员工管理的程序,后来又写了一个学生管理的程序,还写了一个图像管理的程序,比较一下,这些程序有什么相同点,有什么不同点,我们是否可以写一个程序的模板,通过将员工、学生和图像作为模板参数传递给程序模板,这样,一个程序模板是否可以取代原来的三个程序。这就是我们新版软件的基本设计思想,当然实现起来绝对没有函数模板这样简单。不管怎样,我们现在有了这样的一个软件,它很丑陋,但可以很好的工作,对于流程的处理非常好。
我们使用这个软件配置出了我们的BUG管理器,基本的工作流程是,用户反馈的信息(或测试人员发现的问题)由服务工程师输入到BUG管理器中,然后由负责人对BUG进行分配,每个人立刻可以看见自己的BUG,然后修改程序,修改完成之后,提交测试,确认修改,测试工程师将测试提交的程序,如果有问题再将设置修改完成的BUG退回到设计人员,或者提交新的BUG。
这个软件使用了大约一个月的时候,我感觉很好,毕竟,我们产品存在的问题不再随手写在纸上,不再口头通知,不再通过共享的文本文件或WORD文件通知,我们可以随时查找很久以前的问题,我们不再考每个人的记忆力处理BUG,这对我们来说是一个进步。后来由于某种原因,我需要在其中提交几个BUG(我参与了这个软件的设计),我发现提交BUG非常麻烦,我必须在新建对话框中重复的输入BUG的提交者,客户ID,BUG类型,BUG的修改者等等,这几个BUG很多东西都一样的。我问一个测试人员,对于这种重复录入是否感觉麻烦,他说以前使用WORD写BUG是也是这样,在一个表格中重复录入。我说这个工作可以简单一点,我们可以通过增加一个“派生”命令解决这个问题,选中一个已有的BUG,然后选择“派生”命令,这时会弹出一个对话框,其中显示了当前BUG的字段信息,以及新BUG的信息,其中新BUG的信息于已经存在的BUG的信息完全一样,在其中修改一下,点击确定,则新的BUG创建完成了,问题就这么简单,我们不再需要重复输入了,这个软件比以前好用了。
还有很多类似的问题,我们都改进了设计或增加了新的功能。用户是最好的老师,也是最好的设计师,他们的建议可以极大的提高产品的易用性,在竞争如此激烈的时代,这意味着产品的竞争力,意味着更好的用户认可度。
当然我们的第四版不仅仅是作为一个BUG管理器,我们正在将其配置为计划管理器,可以通过我们的Messager程序通知局域网内的用户,也可以通过短信通知经常出差的市场人员和工程人员。
(周末在家写东西真不爽,孩子醒了。。。。)
还有一种比较普遍的现象,值得关注,哪就是在企业信息化的过程中,有的企业直接选定某个公司的产品,有点企业自己组织人员开发。这两种方式都可以解决问题,但是,在软件产品是否好用这个问题上,企业自己开发的软件似乎更好用一些。原因不是企业自己的开发人员更聪明,而是因为他们更了解用户的习惯。我以前在一家大型企业从事机械设计工作,后来做软件开发,编写开发部的PDM软件,软件实现的功能很有限,只要设计人员能够用到的功能,都有,用不到的功能,一个也不加。设计人员非常欢迎,工作效率有所提高。同时单位也购买了上海一家公司的PDM产品,但是推广了很长时间才得以实时,操作很复杂,但是程序的通用性很高。还有的医院自己开发HIS,也非常好用,但是只能给自己的医院使用,很难给第二家医院。
企业自己开发软件比较好用的原因是,1)企业自己的开发人员了解企业的工作流程和用户的习惯以及特点,写软件能够写到点子上,很多企业的开发人员本身就是软件的使用者。2)用户反馈信息的处理及时迅速,用户就在开发人员的身边,开发人员就在用户的身边,两者直接的交流非常迅速,软件存在问题,可以立刻修改,而不想某家公司实施软件,公司对用户反馈信息的处理往往比较长,而且在信息的传递过程中,信息可能会变味,从用户口中说出的一句话,经过一系列的层层反馈,在传到开发人员的耳朵里的时候,可能与用户的意图相差甚远了。3)软件完成之后,有一个100%用户环境的真正的现场测试,这是一般的公司开发软件所没有的一个环境。
当然,由于开发的起点不同,开发的目的也不同,企业自己开发软件往往只解决自己的问题,因此,这种软件距离商品化还有很大的距离。
做自己的用户,就具备上面的几个好处,其中第二条,值得我们在处理用户反馈的信息时借鉴,即必须缩短用户与开发人员之间交流的时间,最好不要通过口头转述,转述的环节多了之后,信息会变味,最好要有文字的记录,当然有语音的记录更好。
那么,什么是好用的软件?《程序员》杂志2006年第一期上有一篇文章《“好用”的用户界面设计思想》,从理论上讲述了什么样的软件好用,为什么好用,值得学习。
“好用”是相对的,用户认为软件好用,才是好用的,开发人员说了不算。我曾经在软件中增加了词库和模板的支持数据的快速录入,我们的宣传口号是抛弃键盘,完全通过鼠标即可实现报告的快速编辑。用户一直非常认可,我们开发人员也自我感觉良好,直到最近遇到了一个新的用户,他们处理的数据量非常大,而且键盘非常熟悉,希望通过键盘输入数据,遇到比较长的数据项目,可以使用编号或拼音码输入,回车直接切换控件的焦点,CTRL+S保存数据,CTRL+N新建记录,保存数据之后焦点重新定位到第一个控件等等,他们希望在整个操作过程中不要使用鼠标。后来我们不得不增加软件对于键盘的支持。最终的结果是,这家用户通过键盘输入数据的速度比鼠标快的多,感觉就像银行终端机上操作一样,没有鼠标,通过回车实现输入焦点的切换。这家用户让我们的软件具备了这个功能。
开发一个“好用”的软件,需要一个不断积累的过程,因为产品需要实践检验,开发人员需要让这个过程缩短。我不喜欢那种今天写一个软件,明天写一个软件,今天我推翻了前辈的设计,后天你推翻了我的设计,这种做法会让公司倒闭,是具有破坏性的行为。软件产品的进步,应该是一个可持续发展的过程,而不是破坏性的改进。
用户是开发人员的老师,作自己的用户,我们可以学会很多东西,我们的产品会越来越好用。
相关文章推荐
- 各小组对于自己产品的预期“软件下载/用户人数”
- 各小组对于自己产品的预期“软件下载/用户人数”
- 各小组对于自己产品的预期“软件下载/用户人数”
- 我们期待自己成为一个优秀的软件模型设计者
- 【特别报道:关于国津软件的某对手ITSM产品使用的“开源框架+剽窃国津代码”之开发模式】 (注:“国聿软件公司”名称变更为“国津软件公司”之后,“国聿”成为国津软件公司的一个注册商标品牌.) 我们
- 我们期待自己成为一个优秀的软件模型设计者(转载)
- [导入](转贴)我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢?
- 我们期待自己成为一个优秀的软件模型设计者
- 为什么我们做一个软件项目,就要折腾个一年半载的,客户被折磨得死去活来,我们自己也被折磨得死去活来
- 为什么我们做一个软件项目,就要折腾个一年半载的,客户被折磨得死去活来,我们自己也被折磨得死去活来
- 下一个的软件产品目标:让它能智能化,自己生产自己,自己给自己加新功能
- 软件开发过程中提升用户体验的途径[自己整理了下]
- 做蓝牙产品开发都3年了.熟悉软件,硬件,生产,销售..考虑...是否要去新的地方或者自己做了...
- 如何快速全面建立自己的大数据知识体系? 大数据 ETL 用户画像 机器学习 阅读232 作者经过研发多个大数据产品,将自己形成关于大数据知识体系的干货分享出来,希望给大家能够快速建立起大数据
- “用心”去为我们的用户做他们需要的软件!
- 更好的软件 - 减少用户输入
- 我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢?
- 我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢?
- 【天天问每周精选】第六期:作为产品经理的我们,该如何正确对待用户需求?