文章链接如下
http://www.ituring.com.cn/article/9363
现在这个时代是一个信息统领世界的时代,计算机作为信息技术的先遣队,自然成为了信息物质化的重要工具,而这其中的媒介就是软件,他联通了人与机器,思维与信息。从操作系统到各色应用软件,真是层出不穷,然而,这其中充斥着难以计数的“烂”软件,这个烂用引号的意思不是调侃,而是强调,有很多软件(包括我自己写出来的),真的是烂到令人发指,UI丑陋无比,想用的功能从来都找不到,资源占用及其巨大等等等等,这些问题屡见不鲜。
这些烂软件是怎么炼成的呢?答案无外乎两个,第一,开发人员应付了事,第二,开发人员实在是没办法不应付了事。这话听起来似乎很矛盾,但其实却是真实存在的。
就第一点来说,现在这个行业的毕业生每年都是人山人海,这些毕业生的水平参差不齐,除了他们以外,其他专业半路出家的也不在少数,这些人的能力就更难以保证,这样看下去,这个行业从业人员的能力又如何能保证?这样的行业状况如何能保证优良的产品品质?
第二点,有些开发人员不是能力不够,而是被迫用投机取巧的方法应付完成任务。这一点我有一点点体会,首先就这次的软工项目来说,我们组选择了时间管理助手的继续开发,而给别人改代码不是一件在能够忍受的事情,别人的逻辑和我不一样,整体架构不是简简单单就能够理解的,而且代码没有注释,这就造成了巨大的困苦,尽管是这样一个不大的项目,做修改依旧是难以忍耐的。同样和我们写现有软件改进版的另外一组直接选择了构架重做,基本就是重写了一遍。除此之外,在2012年夏天时我在中航的软件部门做一个军方的项目,这个项目是基于之前使用已久的一个工程做再次开发,而之前的项目并没有给出源代码,我们只能够为原来的软件写诸多的插件,以实现需要的功能。这样一个巨大的工程(开发周期大概2-3年),再加上需求方一直不断地改需求,导致项目进度异常的缓慢而且项目效果难遂人意。
回到文章的正题,怎样能够做出有用的软件?一方面,开发人员的整体素质需要提高,而且管理方式的改进与提高也是必不可少的。另一方面就是工程的开发决不能采用“炒冷饭”的模式,一定要另开炉灶,重振旗鼓。前一点在这里不多谈,这既不是短期内能解决的问题,同时与文章内容也没有关系。对于后一点,从学校开始,各种科研项目都是一个项目一届一届的学生再开发,毕业后的学生又怎能不这样做下去呢?观念不改难以除旧。从另外一个方面讲,这种再开发不能说不好,因为前人的经验和成就是后生们成功的阶梯,也是创造的基石,可是这样的再开发是要有选择的,而且不能够是整个工程生搬硬套,我认为应该将之前的项目解题,去其糟粕取其精华,算法好则沿袭算法,UI得体则保留UI,这样才能真正继承前人的精华,而不是对着一堆和自己逻辑完全不符的构架苦思冥想如何修改,怎么开刀。我想这样才能真正站在巨人的肩膀上,炼成更有用软件。