我是一个追求完美的人,所以现实生活中往往容易感到失望与痛苦,我们的四周围绕着太多粗糙不堪的玩意,前些日子有一同事买了一部国产手机,然后每隔一小段时间就看到他往手机修理处跑,后来他痛心疾首地对我说:"这辈子我再也不买国产手机!"。
我感到茫然,为什么很多MADE IN CHINA 的产品的质量那么差?为什么我们的汽车市场、手机市场都是老外的产品在兴风作浪?我是爱国的,但如果我有足够的MONEY,我是不会购买国内产品的......显而易见,有用耐用的产品对我们的生活与工作来说真是太重要了,软件也一样,一个有用的软件产品能帮助用户解决实际问题,能体现出对用户的价值。
那如何才能设计出有用的软件呢?这是一个大问题,小弟显然不够资格来光明正大地回答,因此只好虚心地、试探性地作一下论述,免得贻笑大方。 现在的软件开发在很多的眼中似乎变得越来越简单,该死的可视化开发工具让我们变得越来越傻,简单易用的软件库层出不穷,社会信息化的进步有时却让人的脑子退步,尽管如此,市场上众多的软件产品中能成功的也只是凤毛麟角,可见软件产品的重心已不在于开发技术与工具,开发工作本身的确已变成了相当容易的事情,而设计出有用的软件才是真正的困难之所在! 设计这个词对我等俗人来说是高不可攀的,那需要天赋,需要思想的火花,需要灵感的喷发, DESIGNER一直是我比较仰慕的一种人.....
前些时候看过一本书,说软件设计的出发点就是 3W,呵呵,这里不是万维网的WWW,而是Who(为谁设计,用户是谁)、What(要解决哪些用户问题 )、Why(为什么要解决这些问题)三个单词的合并,也就是说在作软件设计时,必须先很好地回答这三个问题,如果没有明确的答案,就先别急着开发产品,可见它的重要性。 其实3W说白了,都是围绕着用户来的,因此满足用户的需求,便于用户的使用,同时又能使开发技术尽可能简单,这就是我们所要追求的。当然这话说得容易,做起来就没那么容易,相信很多同行也都有一些雷同的体会,在我们进行软件设计的过程中总会遇到一些相违背的思想,只有处理好了,才能设计出有用的软件产品。
(1)技术决定产品的设计 我曾经相信技术是最酷的,是万能的,是至上的,在CODING时我喜欢用最IN的方式来SHOW我的技术水平,而很少去从用户的角度来思考问题。现在看来,这是错误的,用户买你的软件其实并不是为了其中的什么酷技术,而是因为软件产品能满足他们的需求,能使他们的生活、工作更方便一些,更有趣一些。因此是用户与市场决定了产品的设计,而不是单纯的技术。
(2)我是高手我怕谁 毫无疑问,我们程序员是属于高智商群体,这很让我沾沾自喜,我们大多受过高等教育,我们聪明自信,我们热爱技术热爱CODING,正因如此,我们有一点骄傲自大,自觉不自觉地将软件设计当成是自我表达的一种方式,我是高手,用户是什么?呵呵,我怕什么?实际上,过度地自信往往会让设计工作变得了你一个人的表现。我们应善于学习,向市场学习,向用户学习,向懂行的人学习,“三人行必有我师”,要真正搞懂市场要什么,用户要什么,产品要什么?
(3)你要什么,我就做什么 这种满足人的一切需要正是完美主义者所容易犯的错误,有这种思想的设计者,往往忽略了技术上的可行性,这种设计通常会导致软件产品的失败,不仅会浪费大量的人力物力,更重要的是浪费大量美好的青春年华,所以软件设计只有基于用户需求,立足于可行的技术才能成功。 ......
应还有别的,只是我暂时想不到,总而言之,用户与市场是软件设计中最重要的因素,软件设计工作中更多的是研究用户与市场,而不是研究技术。