2014项目总结:一个比較成功的项目总结
近期将会对今年所做的一些项目进行总结,里面基本都包括了一个项目全部的过程。一来为自己今年的年终总结提供些材料,其次也是希望在总结过程中能给自己带来些很多其它的启示和经验教训,同一时候也很期望各位大牛能给些建议以及批评,让我获得很多其它的进步。谢谢。
这篇文章总结的是我今年開始的的第二个项目:某研究所某国某XX系统(严格保密项目)。这个项目開始的时候,客户方没有提不论什么详细需求,仅仅说了一句,秘密级项目,不能说,能说的仅仅是这是个c++项目,并带批人进试验场再说。上篇文章我也提到过,尽管我们公司号称有1000个程序猿,可是950个都是做java的。于是我们领导十分智慧的找了几个小公司,从其它公司借了7个C++程序猿。然后我就入场了。
进入试验场后,签了一系列的各种保密协议、去派出所办了无犯罪证明,而且证明绝无成分问题后,開始与客户沟通需求,同一时候我得迅速的熟悉我的新”同事“。新”同事“来源与两个不同的公司,姑且称为L公司、X公司吧。L公司有3个人,当中L1(女)两年C++开发经验,L2(男)一年开发经验,L3(男)刚毕业,X公司4人,当中X1(男,46岁),X2(男)一年开发经验,X3,X4都是一年开发经验,还有我,共8人。客户方:L主任,项目负责人之中的一个;W主任,项目负责人之中的一个;M主任,项目负责人之中的一个;Z总工,项目整体设计;Z高工,项目直接负责人,项目组长,99年南大博士;C高工,项目第二负责人,博士;客户方还有几个就不提了,基本全是博士。
我们须要同一时候开展两个项目:项目一是某设备监控系统;项目二是某画图项目,从一開始我了解到我们方人员基本情况下,自然是依照各自公司为基础,然后我将X1(46岁那人)分配到L公司,他们负责某设备监控项目,而我和X公司剩下三人參与画图项目,同一时候我负责两个项目全部基础框架搭建和客户沟通以及需求了解。
罗嗦了这么多,以上是这个项目的背景,以下開始表述项目的开发过程。
由于这两个项目都是比較保密项目,所以客户方基本没有办法全然表达出他们真实的想法,甚至连一条报文里面的哪个字节代表什么意思都不能详述,这个极大的加大了我们的理解难度,同一时候对方基本都是博士,可能或多或少的将我们的理解能力提高到他们的高度,所以在前期磨合过程中还是遇到不少的麻烦。同一时候我不熟悉我们的开发者的能力和水平,自然而然的想当然的觉得X1肯定代表着我们的最高水平,后来才发现让他负责一个项目简直是我做过最愚蠢的一个决定。如今吐槽下X1吧。当我们领导将X1放置给我的时候,他说,X1是91年上海交大数学系的高材生,然后去新加坡留学读研和读博,水平相当高。我听到后非常高兴,我觉得我又多了一个老师,能够多学习东西。结果有句话叫做书读多了的时候,有可能人也读傻了,X1的沟通能力基本为0,或者说情商差点儿为0,而且代码写的也非常一般,长处是他的理论知识相当扎实,參加X公司的C++笔试,考了满分。
由于项目需求的不明白,所以我加强了两个方面的准备工作。第一:底层框架写的尽可能简单而且easy扩展,同一时候必须符合多人同步开发,也就是说要做到业务分离。第二:尽可能多的和客户沟通,而且找对须要沟通的人。
1)写底层框架的开发过程
由于需求不明白,同一时候对开发者开发能力不确定,写这个底层框架还是花费了我不少功夫的。我们都知道,一个系统不管怎么复杂,数据流通都是这个系统的核心。同一时候由于数据的多样性,所以数据的处理也尽可能多的分模块开发。为此,我和客户中的项目组长Z高工花了不少时间在讨论这个数据处理问题。终于我将数据模块彻底分成几个独立模块,全部显示模块向数据模块进行数据注冊,然后数据管理模块主动推送数据进入显示模块。另外做了一个数据存储模块,能够依照配置文件信息存储大量已有的数据,又做了一个数据解析模块。数据解析模块的意义就是我们无法得知报文的详细含义,可是他们知道,所以数据解析模块的目的就是通过自己定义的xml文件,解析出报文中某位置的某数值,同一时候也支持几个数据之间的特殊规则运算。
通过上面的数据相关模块,至少我们的开发者不在须要关注数据的来源和走向,仅仅要在项目project中包括这个4个dll文件即可,须要用到数据的时候,在各自的接口中注冊下即可,简化了他们的逻辑,也简化了程序的复杂性。即使发生需求变更,也不须要查很多其它的代码。
另外我也给我们的开发者封装了一些主要的控件和显示样式,比方图表类,对话框等等。
尽管上面描写叙述的东西java可能到处都是,可是c++方面还是略微有些少,尤其在我们所面对的项目情况,用途还是非常大的。这样能使开发者很多其它的关注自己的业务逻辑,而脱离了其它方面的干扰。
PS:如今这个数据处理的几个模块已经成为客户新软件的标配了,据说他们主任已经将这几个dll申报成他们所的三化产品,而且写了Z高工今年的论文内容就是这套逻辑。哎年底至少5W+的贡献奖金。跟我半毛钱关系都没有。
2)与客户沟通的过程
前面也说了,客户方领导多,博士多,沟通起来还是有些困难的,假设都和我一样都是屌丝,那可能还会好些。只是有句说的好,千万不招惹白痴,否则他们会将你的智商拉倒他们的高度,然后用丰富的经验战胜你。我仅仅是个小本科,并且还是三流的,在这个项目中,我无法提高我的认识到他们的高度,仅仅好想尽办法减少他们的高度。在和客户沟通过程中,最有效的方式就是认同客户。他们即使不了解项目本身,可是他们却是最了解自己的。于是我想尽各种方法客户多沟通,比方看到客户带羽毛球拍,于是厚着脸皮和他们一起打羽毛球,看到他们在吹牛,厚着脸皮增加吹嘘等等。举两个样例,一次C博士下班回去,我之前还从没有和他说过话(刚去),不小心听到了他说今晚是广州恒大和天津的比赛。然后我晚上回去后还是认真的看了这场比赛,第二天一早,我看到他就和他聊起这场球,结果两人还是有些共通语言,比方都支持恒大等。以至于后来每次有中超,都会一起分析下预測以及心得。后来在这个项目中,他真是帮了不少忙。另外个样例,D博士(南理工的)。他和我们的项目一点关系都没有,有一次我出去打水,经过他的办公室后,看到他在看一本hadoop的入门书。我非常吃惊他尽然会看这本书,于是就问他,并且随便说说我參与过的一个hadoop项目。于是慢慢两人就比較熟悉起来。后来他也是在他们主任面前给我们说了不少比較好的话,比方工作认真态度端正等等。作为一个外人,发表一些看法对于领导来说还是有些參考性的。前天D博士打电话给我说他们几个朋友做了个产品,预计能申报成国家项目,他尽然把我的名字给加到他们的课程组了。假设申报顺利的话,预计我还什么都不知情的情况下,能分点RMD吧。激动
PS:和客户沟通顺畅是一个项目是否成功决定性要素。同一时候在和客户沟通过程中,不能忽略其它非相关的人,尽管他们可能帮不上忙,可是不捣乱也行,是吧。
这个项目预计至少还持续到明年,郁闷的是我已经被撤出来了。如今这个项目进展还是非常顺利的,我在和他们的组长沟通中,他们对于这个底层框架还是非常惬意,也提高了他们自己的开发效率。和我们公司新的项目负责人联系时,他的工作也还是非常顺利的。这点还是蛮开心的。
这个项目如今看起来还是非常顺利和成功的,可是我以下会说一个比較失败的项目,希望大家能关注下。更希望的是大家能提出意见,指出不足,让我在今后的工作中有所提高。谢谢。
PS:我一直非常迷惑我的定位,程序猿?好像不全然是,在一个项目中我參与还是非常多的。项目经理?好像更不是,我还在一直不停的写代码。