刚刚看了下今目标,项目立项是在2012年11月17号,到年前完工,整个项目做下来,大概花了两个半月的时间。
我刚刚加入项目组的时候,长海和海芳已经整理好了需求,建立好了数据库。经过初步了解后,我发现这个项目不是很大,也不是很复杂。然后各种原因吧,直接导致战线拖得有点长。
这次做项目,感觉收获还是很大的。教训很多,也深刻认识到了自己学习上很多的缺点。
首先谈谈做项目过程中存在的问题:
1、从动手写代码开始,由于没有一个完整的项目计划,经常是大伙儿一商量,然后想改哪就改哪了,缺少一些必要的记录。编码的过程中,也有一种朝令夕改的感觉,改来改去,延误的进度;
2、开发顺序有问题,开始的时候没有设计原型界面。用dreamweaver画了个大概,就急着动代码了。由于我们需求是参照米老师那里的一个设备以及给的资料,到了后来动手编码,我们是又重新买了一个设备以及附带了一些资料。我们参照的主要是第二个设备及资料。涉及大我们自身都比较模糊、需求变动比较大的地方,我们只能一边想法设法的设计界面,一边实现功能。这么做为的是省事儿,而解决却把多种相对简单的问题混合在一起,将问题变成了一个相对复杂的问题,解决起来费时费力;
3、口头协商太多,书面协商太少,导致彼此之间沟通总出现分歧。有时候因为沟通不当:A以为B听明白了,B以为自己听懂了,而事实上,A和B认为的完全是两回事儿。直接解决就是做重复性的工作,浪费了时间;
4、购买设备时,人家自带了两个二次开发的Demo:一个winForm版本的,另一个是JavaScript函数版本的。选择使用Demo的时候,由于考虑的不够充分,选择了第二个版本。
结果导致系统只适应于IE浏览器,浏览器兼容问题咨询二次开发公司的开发人员共同后,那边的人只说需要开发个插件,怎么开发他们也没做过。
现在还是小菜呀,不知如何下手;
5、由于做的是web项目,关于动态监测硬件的控件,我们想从服务器动态加载。二次开发公司那边的开发人员跟我们开了个莫大的玩笑,他说将控件的后缀名改为.cab,就会自动从服务器加载安装,并且是带数字签名的。听到这里我还感觉很放心,就没有去尝试一下。
等系统做的差不多的时候,做到这一步的时候,却发现控件不是带数字签名的。。。坑啊。。。
直接导致,只能让用户手动点击安装了。悲哀的小菜呀,跳楼的心都有。。。这么重要的环节,不应该莫名无条件相信一个人;
6、测试接打电话的时候,由于每次都去老师不方便,老师说让我们在四楼装电话。由于四楼的电话线早给断了,然后我们就选择将就了。将关于接打电话的功能做好后先放下,继续做其他功能。
想法是等所有功能都做得差不多了,再去老师那里测试,一方面节约老师时间,我们也图个省事儿。而老师那里一直催我们问系统能不能打电话了。由于没有测试通过,我不敢说能打了呀,直接导致没少挨骂。。。
这里暴露出自己的沟通能力和处理问题的能力,以及面对困难时选择的逃避心理。
老师雷霆大怒之后,找谢老师只用半天就把电话问题解决了。我们却因为没有及时找老师沟通,将就了半月有余,效率低不说,基本功能都没测通;
7、命名问题。系统中设计来电、去电、通话的记录及设置功能。由于词意比较相近,命名的时候非常容易混淆。当初命名的时候缺乏协商,导致后来出现了一点小麻烦:自己写的方法都不知道是干嘛的了,由函数名看根本不知道什么意思。完全取决于注释去辨认。有时候看着注视,都不敢相信是自己想要的方法;
8、另一个项目不断延期的原因:任务分配下来了,然后各自去做各自的部分了,缺少了反馈交工的环节。由于个人原因没有完成项目,该休息的时候感觉到累,就理所当然的休息了。
另外,该下决定的时候没有及时下正确的决定,不敲板直接导致后期需要浪费更多的时间去挽救。还是那句老话“出来混,迟早要还的”。
9、BLL层架空了。现在越来越发现,架构师真不是一天两天的功夫。尽管已经尽量去往B层加东西,可整个系统做下来,业务逻辑大部分还是在UI,B层更多的还是return,尴尬。。。
10、还有一个技术问题让我记忆犹新,在这里提一下:接打电话代码怎么看怎么调都没有问题,但是就是写不进去录音记录,那阵子就恶心的把肠子都吐青了也没找到原因。后来长海解决之后,跟我说是AJAX异步的问题。
那时真正感觉到编程艺术那个博大精深呀:第一次写入记录(包括录音文件名)没有完全写入数据库,就开始去找录音文件的名称了,所以无论如何弄都无法读取到录音的大小。
清晰的记得在做项目之初,米老师就对我们使用AJAX的异步问题做出了警告,等自己做的时候却把老师的话抛到九霄云外了。
做项目中个人暴露出的问题:
1、缺乏主动性,不够积极。高效人士的七大习惯之首,自己做的却非常欠缺。硬件部分开始是由我负责的,着手做之后遇到很多困难。自己憋的难受的受不了的时候,没有及时有效的去跟组长沟通。项目一直延期,我感觉跟自己这一点有很大的原因。
2、做项目态度不够端正。总是图快,写代码思路不清晰就动手,结果却总是耽误时间。现在越来越认识到,着急真的是没有用的,必须踏踏实实一步一步走。太着急只能适得其反,使项目工期更加拖延。
中期做项目的时候,感觉很疲惫,总想休息。那一段时间很懈怠,进度也很缓慢。那时候自己也没有调整好,没有及时排除自己的消极情绪,没学到多少知识,却长了个深刻的教训。
3、冒进贪功。做项目时,总是强那些有难度的活儿干,感觉那样做出来才更加有成就感。而弄了几天弄不出来的时候,又会很懈怠,3分钟热度的冲劲儿,让自己费了不少劲,不出活儿。
这里,也暴露出了自己基础知识学的不够不扎实。做项目过程中,感觉到自己BS知识掌握的确实非常浅,很多知识到了用的时候想不起来,绝对是学习方法有问题。当初看视频的时候总结的不够。
4、思想懒惰。有一个非常刻骨铭心的例子:在做去电逻辑的时候,本来逻辑就比较复杂,我在动手写代码的时候就没用缕清思路,发现错误之后,没有做出根本上的改正,而是在原来的基础上,做最少的修改。这样一来,缺少部分逻辑不算,反而更浪费时间;
5、命名不够规范:对于什么时候采用驼峰式命名,什么时候首字母大写,我弄得不是很清楚。而且数据库字段的命名,我也不是很知道,就按自己想的来,有时候这样,有时候那样。
说到管理:
谈及管理,又谈到一个管理与被管理的话题。做项目的时候,长海就不止一次跟我说过“权,你也该当一回组长”。首先,我承认,我仍然没有把自己想象成是项目中的组长;也就是说,总是把责任推给长海,其实都是自己的项目,有时候就是因为对自己的技术不自信,然后一直逃避。
同时,我也感觉到自己在项目中,没有考虑到项目延期的后果,没有考虑到一而再延期的那份尴尬。如果到了公司,一再的延期面临的肯定是出局。
另外,项目一动工,思考问题的高度就低到只看到那点代码,而往往忽略了远视的全景。而思想的高度,才决定软件的质量,才是软件的灵魂。
做项目期间,更多的是想怎样将功能实现出来,然后也会想客户怎样使用着方便,而几乎不想自己现在做的事情有多么的神圣,自己正在做的软件中蕴含的巨大商机。想不到这一点,就不能真正体会“全心全意为人民服务,我为人人,人人为我”的深刻内涵。
个人认识提不上来,就很难将思想提升到管理层次来。有时候会有一种“没有见过猪跑的感觉”,所以经常见“猪跑”也挺好的,长见识。不怕不知道,就怕不知道呀!
总结:
这次做项目非常巧合,又一次和长海合作。上一次做朝阳医院项目的时候就在一个组,这一次又分在一组,没办法缘分天注定呀!哈哈。。。跟长海合作非常愉快,很聊得来。而且长海基础知识学的很扎实,一起做项目会看到自己技术上、学习方法上的不足。
做项目期间,由于没有严格按照番茄学习法学习,一天天坐下来感觉腰好疼了,那几天身体状况很不好,自己难受不说还延误工期。所以说,工作期间,注意休息也是非常重要的。