UML软件工程组织

我看软件开发

回想自己第一次接触计算机,那已经是十二年前了。但正是那第一次的接触,决定了自己在这个行业中寻找自己的事业。经过这十几年的发展,计算机已经由高档设备变成了普通电器,逐步走入并影响着人们的生活。作为计算机运用的直接提供者——软件,也为人们的生活带来的这样那样的改变。当然,作为一个有吸引力的行业,也吸引着大量的人投身于这个行业,但是,国内软件除了表面的红火以外,却蕴含着这样那样的问题。

作为一个一直对软件有着美好想法,同时也一直从事着程序开发的人员,对软件开发过程中的问题有着深入的体会。

1.软件质量无法保证
计算机是一个功能强大的工具,而且是一个非常听话的工具,它只会执行你告诉他要执行的工作。所以也就要求程序员能够正确地告诉它工作流程,但这一点在较大的系统中也比较困难。在一个多人参与共同完成的系统,大家要保证程序体现内容的逻辑一致性,这就首先需要参与者对整个系统有个一致的认识,但是现在国内的程序员却多是在自己埋头写程序员,而不是沟通,这样怎么能够保证一致性呢?在沟通方面,不仅程序员内部的需要沟通,同时还需要程序员与市场部人员的沟通,如果这两部分人员对产品的认识不一致,那么这个产品也不会有很好的市场的。

当然,在沟通这个问题上,许多行业都存在着这样的问题,毕竟中华民族是一个含蓄的民族,大家当面都会非常客气,当面不说、背后乱说。就软件方面,没有做好沟通则不仅有程序员的问题,到时也有大家对程序员这个职业的认识问题,大家还认为程序开发是一项高技术的研究,而且在大家脑海中,好像一个优秀的程序员的具体特制就是做在计算机前,埋头苦思冥想。其实不然,毕竟现在软件开发不是一个研究性的工作,而是一个与应用紧密结合的工作,那样如果没有充分的沟通,做出来的东西也只能是一个闭门造车的东西,是不能得到很好的应用的。实际上就研究方面,许多专家也不是整天的在苦思冥想,而是通过各种渠道收集各方面的信息,如果牛顿整天的苦思冥想,而不去趟到苹果树下休息一下的话,那么可能21世纪的社会就不是现在这样子了。

做为一个智慧型产品,软件比其他智慧型产品在质量方面有着更高的要求。小说是一种大型的智慧型作品,虽说漏洞百出的小说不会是一部好小说,但一部好小说却允许存在着一些漏洞,这些漏洞的存在不会影响读者的欣赏,而且许多时候读者也不会体会到其存在,金庸先生的作品不少人都读过,但有几个人意识到了其中的一些漏洞呢,好像不多吧,即使发现了,好像对你欣赏也没有太大的影响。而软件则不然,由于计算机是一个严格的执行者,但却没有什么判断纠正能力。所以其漏洞的存在就会导致这样那样的问题,影响其使用效果。

同时,软件质量对用户有着很大的影响。随着软件在各行业的运用,现在软件对其影响也越来越大。有时一个系统的问题,可能就会许多问题,而且有些问题对企业有着较大的影响。京城的一家银行,各网点的服务质量在北京来说还是很不错的,但好像这家银行的业务却不是太好,后来才发现了其中的原因,当然我看到的只是一个表现而已,如果存入一笔自动转存的时候,过了几个自动转存期后,如果去查一下,你会发现有许多笔存款。可惜的是银行工作人员却会给你说这只是一笔存款,那是系统的一个问题。系统连一个自动转存都解决不了,作为一个还没有到对视金钱如粪土境界的人,当然还是考虑一下是为了享受服务而让自动的存款受着末知的处理,还是去选择另一家服务虽说不如这家,但系统相对可靠的银行呢。我想多数人还是会选择后者的。正是因为软件质量的这种重要性,大家对软件质量的重视及软件质量对一个企业生存的影响,人员也对软件质量有着更高的要求。

下面几个部分,虽说是并列的,但实际上都是围绕这个问题作的一些具体分析。

2.不能正确对待技术
作为一技术人员,同时对技术有着深厚感情的人,当然希望大家把技术看得越高越好,不过同时却也应该清醒的认识到技术不是万能的。前段时间通读了“温伯格”的“程序开发心里学”这本书,让自己深有感触。其中的“技术是没有价值的”这个论点,让我重新调整了自己对技术的看法。是呀,任何一件物品,其价值的体现在于运用,一个产品,无论你认为还是事实上它是多么的卓越,只要它不能为用户所接受,那么它就是没有什么价值。同时一个东西,由于其使用方面,它也会发挥出完全不同的价值。曾听人讲过这样的一种事,说一个人到农村旅游,在一个农家发现用于喂鸡的盆竟然是一个价值连城的文物,立即倾其随身之钱并向同伴借了些钱购买,同时还向对方说由于身上带的钱有限,只能给这么多了,而农家的人也没想到自己的一个鸡食盆竟然能够值这么多钱,也是非常高兴。同样一个“破盆”,对于不同的人,由于将之用于不同的用途,其体现的价值就完全不同。

所以说,作为一个技术人员,除了考虑产品如何具有高的技术性外,还应该考虑如何才能让用户接受,因为只有这样自己辛苦的付出才不至于没有意义。由于术业有专攻,在这方面也不防多听听市场人员的意见,毕竟他们整天和最终用户打交道,会有更多的体会的,在这方面市场人员一定程度上更有发方言权。这样说可能会受到技术人员的反对,记得前不久和一位朋友说起我现在的这种想法时,他讲我已经不再是完全站在技术人员的角度看问题。也许吧,不过就我个人来看,我对技术还是有着非常大的热情,而且现在的主要工作还是写代码,当然由于一些经历以及自己的一些所谓理想,让我看问题的角度更广了些。同时我还觉得大家也没必要去区分技术人员还是市场人员么,都是公司的一员,大家到一起就是为了共同做事么。为什么要把一个人限制在技术或者市场呢?当然在东方文化有一种绝对化的思维方式,喜欢把事物分成两个或者几个绝对的部分,这点在各种文化载体中有着较大的体现,比如说起一个人,说是好人,这就是没有一点缺点,而坏人则一无是处。这某种意义上说是这些文化载体的失败,因为他们没有能够完全的体现生活,虽说他们也一样影响了大家的思维。无论是技术人员还是技术人员,大家的共同目的就是为了把一个产品做好,并为用户接受,这一点是共同目标,有这个共同目标下才能对产品有个清晰的描述,也才能保证一个产品的成功。

当然,市场人员也不要以为市场是万能的,而技术是无用的。实际上这方面也存在着不少这样的例子,有许多公司认为只要有关系,拿得到项目,做成什么样子都可以赚钱。但是如果没有一个好的产品,还是无法向用户交待,虽说有时可能由于某种关系或者原因导致这个项目的成功,但同时也会潜在其他的问题。一件事情的成功,需要多方面的配合,当然多方面中不仅仅是市场人员和技术人员,还包括其他各种各样的人员,如果说开的话就更加脱离技术话题。

3.自视过高
自视过高应该说是在许多人员中都存在的,就象前面说那样,也有市场人员认为市场是万能的,离开了市场就什么也不行,但作为技术人员的一篇自我批评的文章,这方面不去做过多的讨论,则主要说一些技术方面存在的问题。

总认为自己在技术有着非常市的水平,这种水平是其他人无法达到的。其实,一个问题,既然你能够解决,为什么就能断定别人不能解决呢?当然就某个个体来讲,可能这个人是无法解决你解决的这个问题,但中国有十亿人口,难道就只有一个人会解决这个问题么?我想应该不是吧。同时解决方式上大家也总认为自己采用的方式是最好的,这也是受绝对思维的影响,其实没有什么最不最的,只有适合不适合之分,在软件重构技术中,许多对立的技术都是同时存在的,如果分拆类和整合类,这是可能会有疑问到底是应该把类分拆还是整合呢?大类好还是小类好呢?这是一个具体情况的具体判断,会因运用目的、人员而异。所以说需要放弃绝对思维的想法,“海纳多川”,多了解一些,才能有更好的分析判断能力。需要对于别人的工作,首先应该是接受,然后是分析,最后是吸其精华去其糟粕。

另一个问题是过于追求技术,刚才写到“海纳多川”时,本来顺手打入了“而后为大”,最后又把那四个字删去了。中国人好像对“最”字有深厚的感情,动不动就是最好、最大呀,何必呢?适合就可以,最就不一定了,适者生存么,而最者却可能会灭亡的,恐龙曾是最大的动物,结果是灭亡了。在技术上,大家也不要动不动就想做最好的软件,实际上需要用户需要就可以,而有些技术上好的用户却可能不需要,或者不是很需要,这些可以在有时间和精力时做,但绝不能把它放在第一位。

还有一个问题是交流问题,也是一种沟通问题,不过这里是一个内部沟通的问题。不知道是什么原因,也可能是大家要求技术人员应该是内向的吧,大家好像平时不喜欢交谈,而技术大家好像谈论的更少,每天就守着自己的计算机忙碌。这一点好像还不如农民,大家不要生气,每个人群都有。


 

版权所有:UML软件工程组织