如何开发用户需要的软件。

原创 2004年10月29日 15:03:00
       我向来不是一个惟技术论者,可能也是因为我的技术不够好。《软件创新之路》、《软件工艺》告诉我们软件开发最终的目的是什么:为用户建造真正令他们满意的软件产品。一个软件从业者的信用建立于持续为用户建造令他们满意的软件产品的履历。
学技术有两个方向,求广和求深。求广就是学习更多新的技术,求深就是尽量在现在掌握的技术中寻求答案。从求广的角度,我认为我们很多时候并不需要更多的新技术才能达到上述的目标。从求深的角度,我认为我们确实需要更多的技术,我们需要对现有技术更加深入的掌握。

要建造真正令用户满意的软件,就要了解清楚用户真正在关心什么。下面我按照一般情况下用户关注的优先级排了序:
1、真正实现了用户的业务需求,而不是错误地实现了业务需求。用户得到了他们真正想要的东西。当然用户真正想要的东西并不一定就是他最初告诉你他想要的东西。你要想办法去理解他的思路、理解他的思考方式(最好能和他交上朋友)以了解他真正想要但没有表达出来的东西,也许你可以很轻易地为他提供比他的期望更多的东西,为什么不去做呢?如果你做到了,你将获得人际关系方面的巨大成功,有一天他可能都离不开你了。
2、界面的美感,包括界面的布局、配色、漂亮的图片、按钮。这个很多时候超出了我们作为程序员的能力限制。当然,美工能够帮助我们。但是美工不是我们的救世主,我们有能力做好的还是应该尽力作好的。
3、系统的易用性,要从一个普通用户的角度去思考系统如何被使用,而不是作为一个程序员来思考。要想尽一切办法来改善产品的易用性,要让用户的生活更加轻松而不是体验到艰苦和挫折。
4、系统的性能,如果一个页面刷新需要十几秒种,毫无疑问用户是不会认为你建造了一个成功的软件的。为了改善性能,甚至你需要写大量“邪恶”的存储过程,只要能令用户满意,管他某大师如何说呢。
5、系统的稳定性,三天两头出故障的系统肯定是不能令用户满意的。而且你也要不断去救火不是?这些工作对你来说难道是有很多回报的吗?
6、系统的安全性,容易被攻破的系统用户是不会满意的。
7、系统的可扩展性(scalability),能够保护用户的投资,平滑过渡到将来更大规模的 IT 方案。

        这几点做好了,就完全可以说就是一个成功的软件了。我对成功软件的界定就是令用户满意的可以良好运行的软件。这些标准很容易达到吗?不是那么容易吧?
软件的质量分为外部质量和内部质量,程序员往往只关注软件的内部质量,而忽略了很多软件的外部质量。这几点基本上就是我所理解的用户所关心的软件的外部质量。
至于你用什么技术,Java、Python、C# 都无关紧要,你是否用了很时髦的设计模式、AOP、MDA、IoC、TDD 同样也是无关紧要的,因为这些用户都看不到。那么你是否需要明天就为这些用户看不到的东西投入 sink lost 呢?还是可以慢慢来,先把手头的急活干完呢?我要是明天不把用户提出的这个问题解决掉就会有麻烦了,而我明天不懂 AOP 却没什么要紧。
我喜欢 KISS。傻并不是我的错,虽然我懂的很少,但是我却每天都在做事情。我喜欢当一个做事情的人,而不是当一个做学问的人。你懂的很多,写写文章还可以,但是你从来不为用户建造令他们满意的软件产品,因为那些都是脏活累活。“我可比他们光鲜的多啊”,你常常这样想。但是我敢说未来是我的而不是你的。呵呵,不出所料,你不信,你愤怒了。那我们走着瞧吧。Mono 1.0 出来了,不过才两三年时间,这些源代码难道都是靠理论堆出来的吗?

       有一本书《面向使用的软件设计》(Software For Use)可能是最接近我的想法的书了,有空了找来读读。还见过几本人机界面设计的书,挑一本经典的读一读。Alan Cooper 的书国内只出了一本,实在是很可惜啊。

近这两年做软件开发的一些感悟(客户告诉我的)

总结下这两年做软件开发的一些感悟吧,大部分是来自于客户的反馈。 先来回顾下自身的经历,从事软件开发总的算下来的话大概有四年了(从大一开始算起),因为本身就是学计算机科学与技术专业的所以一来就接触了c...
  • qq_35624642
  • qq_35624642
  • 2016年11月02日 00:24
  • 466

如何授权域用户安装指定的软件?

公司几百台计算机都假如了域,很多软件需允许domain/user身份不能通过域控来分发,我做了这样一个程序解决了此问题.程序里面的具体步骤如下:1、获取计算机名;2、预设具有软件安装权限的域用户名和密...
  • zhoubifa
  • zhoubifa
  • 2009年11月30日 16:45
  • 1627

ECU软件开发介绍篇

近年来,汽车上面的电控单元(ECU)越来越多,汽车电子产品已经占到了车辆成本的1/3。国内各OEM也有自己的ECM开发团队,但是占据市场的主要还是博世、大陆、电装等国际巨头。        ECM全称...
  • jianfengxia
  • jianfengxia
  • 2015年04月15日 13:00
  • 2963

USER权限账户如何使用那些需要管理员权限才能运行的软件

实例:员工电脑都是USER权限,但是运行VPN是总是提示“用户账户控制”,要求输入管理员密码,怎么让员工仍然使用USER权限账户,但是又能运行VPN呢 解决:在dos命令行使用runas命令 用法...
  • qmjzcsdn
  • qmjzcsdn
  • 2016年11月30日 15:54
  • 2006

新会议工具Skype Meetings,专为小型企业定制

据外媒报道,微软日前发布了新的音视频会议工具Skype Meetings,它本质上是Skype for Business的精简版,专门为小型企业服务。 面向企业Skype for Business可...
  • skype1688
  • skype1688
  • 2016年07月20日 16:49
  • 608

如何设计一款软件的一些感想

想想入行已经1年有余,天天出了拿需求写代码,完成一个个功能外,自己对整个软件的开发如何诞生,如何设计却了解的很有限。这些天一直在思考着一款软件在让我编码之前都做了什么?一款软件到我这样的程序员开始功能...
  • henry_sea
  • henry_sea
  • 2011年09月25日 19:43
  • 3814

手机视频通话软件开发流程

开发视频通话软件 折腾了3,4个月终于开发出来了第一个版本。
  • gredn
  • gredn
  • 2014年03月14日 14:21
  • 2811

如何保护自己开发的软件

    大家都知道,现在开发出一个软件产品相对来说容易得多,但是想要受到应有的效益,那就太难了。不是没有人用你开发的软件,主要是没有人用正版,因为盗版太便宜了也太容易获得了。这里最核心的问题是,你保护...
  • WizzMan
  • WizzMan
  • 2004年10月11日 12:19
  • 2462

封闭开发

封闭开发【】 0 ...
  • oixq
  • oixq
  • 2006年10月11日 11:52
  • 7130

获取用户需求的十大沟通技巧

获取用户需求的十大沟通技巧载自: Yesky    成功的软件产品是建立在成功的需求基础之上的,而高质量的需求来源于用户与开发人员之间有效的沟通与合作。当用户有一个问题可以用计算机系统来解决,而开发人...
  • emag_testage
  • emag_testage
  • 2005年07月22日 10:17
  • 1723
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何开发用户需要的软件。
举报原因:
原因补充:

(最多只允许输入30个字)