做软件项目就是一种学习

不管我们做什么,同样的事情如果总是反反复复做的时候,我们总会去寻找一些做事情的规律,以帮助我们把事情做得更快、做得更好。软件项目也不外乎如此。做软件项目其实是我们给客户提供服务的过程。在给客户提供服务的时候,如果我们把提供服务的成本降低了,或者让客户更满意了。那么我们就算是把事情做得更好了。那么我们如何能做到了?个人认为最关键的因素之一是我们要善于学习。

大家知道,软件项目从大体上可以分为需求调研、设计开发、系统维护三个步骤。对于整个项目来说,三个步骤都是同等重要的,缺一不可。而对于做项目的人来说,需要掌握是两个东西,一是技术,二是业务需求,两者缺一不可,同时也相辅相成。

               显而易见,技术是做项目的基础,掌握了技术部一定能把项目做好,但是没有技术,项目就一定做不好。正如金钱不是万能,但是没有金钱却是万万不能。对于一般的项目而言,技术是存在着普遍性的。有很多项目都使用相同的技术,有相同技术背景的人可以参与所有的使用该技术的项目。比如说,一般B/S结构的项目大都可以用java来实现。也就是说,一个技术人员如果对java这门语言已经掌握到一定的程度,那他就参与几乎任何java开发的项目。至于项目的大小、涉及范围以及项目所在行业都与技术没有直接的关系。当然,如果技术人员有过类似业务的背景,做起来自然会更好一点。

即使在某些特定的项目需要使用一些特殊的细节,可能这个开发人员恰好在以前的经验又没有接触这个细节,这也不要紧,只要开发人员在项目的开发过程中通过进一步的学习,肯定都能掌握该项目所需要的技术。比如有一个项目需要使用到hibernatespring,即使技术人员从来都没有接触过hibernatespring也不是问题。在技术方面的学习,对于开发人员来说,他们不仅有学习能力,而且大都还有着非常浓厚的兴趣。

这里强调一下,不管是怎么学习,是基本上掌握一门语言后进一步精通这门语言,还是学一门语言后再学另外一门语言,学习的过程总是免不了的。虽然并不是一件很难事情,但是也是需要付出一定的时间和精力的。

掌握做项目所需要的技术以后,剩下的事情就是对需求的理解与掌握,这也是做好项目的重中之中。对于技术人员来说,需求可以说是千变万化,不仅是不同的行业项目所需要解决的问题相差很远,而且即使相同行业的项目所需要解决的问题也可能大不相同。所以在组建项目团队一般可以要求团队成员必须有相同的技术背景,但是不可能要求团队成员有相同的业务背景。因为各种各样的项目实在太多了,相同的业务背景实在很难,另外实践证明也没有必要。

很多的项目经理或者技术人员对于技术的学习都是十分的重视,但是对于业务的学习与理解往往很容易被忽略。有人甚至认为只要掌握了技术,剩下的事情就好解决了。忽视客户需求往往很容易就导致客户不满、项目出问题甚至整个项目失败。

本人曾经接触过一个招标管理系统。系统用.net做的,其中用到一个类似于nhibernte框架。整个系统无论是整体框架还是具体的代码风格都非常好。但是这个系统在试运行时问题就很多,导致客户非常不满意。主要是软件功能与客户要求相距甚远,客户这个时候又提出来,原来需求发生了新的变化。但客户的要求几乎没有得到过及时的回应,甚至技术人员还疑惑,客户怎么会有那么多这样那样的要求啊?最后这个系统停止使用,项目失败。回过头来想想,如果足够重视客户的需求,多花时间去理解和领悟客户的需求,对于项目的每一个细节、客户的每一个想法开发人员都予以积极的回应。即便开发人员是刚入门的新手,开发进度即是延长一点,整个项目也不至于最终失败。我们也知道,项目所使用的技术,客户几乎是不关心的。

因此。对于一个技术团队或者一个项目组来说,要做好一个项目,其实关键因素不是团队的技术实力有多强,而是对需求的理解是否透彻,正确的理解、把握需求才是项目成功的关键所在。

如何理解、把握好项目的业务,个人感觉也是一种学习,是一种领悟。客户的业务对于技术人员或者项目经理来说都是一个未知领域。我们所做的项目一般来说都来自不同的行业。一个项目来自医院的,而下一个项目可能就是来自银行的,项目与项目之间的需求一般来说都没有任何相似性。这是我们技术所经常需要面对的问题,也正是因为我们所的项目之间相距遥远,所以这就要求,我们技术人员在面对各个行业的业务时,必须具备一种快速的学习和领悟的能力;理解和掌握能把客户的业务后,通过技术手段来实现客户的业务。

就拿医院的管理系统来说吧,我们知道,一个普通病人去医院看病大体流程都是挂号、看病、检查、拿药。所以我们在需求调研我们需要掌握不仅整个流程,而且我们还应该知道每一个环节的细节。比如在病人挂号的时候,挂号员应该了解病人的哪些具体信息,病人第一次去医院与第二次去医院又有什么区别。这都是在做需求调研所必须了解的。只有理解医院所有环节以及每个环节的详细细节后,我们才能做相应的系统设计。至于系统设计好以后,如何保存挂号信息,如何查询挂号人数等等,那只是基本的技术手段而已,无非是数据库的添加、删除、修改等。

不管是项目经理还是做调研的技术人员,每把一个项目了解得差不多的时候,总是有意、无意的对这个项目所在的行业就已经有了深刻的理解。记得小学时候有篇课文叫----钢铁是怎么练成的,大家都知道,课文内容与钢铁并没有什么关系。当我在一个钢铁厂做一段时间的项目后,就真正的知道钢铁是怎么炼成的了。不仅明白什么是巴西球,而且也明白烧结厂是干什么的。当理解各个炼铁工序后,某些报表含义自然就明白了。无非是各个工序中的各种原料投入与成品产出比例之类的。

如果所做的项目总在一个行业中,那他就很容易的成为行业专家。在一定的时间内去理解和掌握一个完全陌生的领域,当然绝非一件易事。其中的道路自然是漫长而曲折。其实做任何事情都是这样。不经一番冰霜苦,哪得梅花放清香。

因此,当我们总是面临不同行业的项目的时候,我们就需要培养和提高我们对陌生行业的学习能力和领悟能力。

罗罗嗦嗦写了这么多,对我自己来说是算个总结,也希望能给同行的朋友带来一点点帮助.还有文章内容仅仅是个人感受而已,或许里面还有许多不尽正确之处,请不吝赐教。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值