项目是日本人拿过来的,移植到XBOX360上。Alpha版本阶段没有大问题,底层库剥离,2X/4XFSAA,固定管线到Shader移植等等,都比较顺利的完成了。
但是Beta版本是加入式样,也就是说加入不少原创的东西。这里就有个问题,项目规划和安排。
我们大概5个人做这些东西,事先都没有太多经验,组长前期抓的比较松,所以大家干活就不是特别紧。又由于历来项目管理不是很规范,结果只有一个MS Project做成的MPP工程资源分配文件,也划分的不是特别细;式样也是自己定,所以参照了很多以前的项目式样,没有考虑太多制作能力和美术能力,制作难度之类的东西,Beta前期比较轻松,但后期就开始忙,尤其是到最后Beta要交工的时候,连续加班了一个来星期。
这几天轻松了,稍微回顾一下,感觉项目里有几个不令人满意的地方。
1. 项目规划。这里包括时间规划和任务安排。任务安排相对可能还比较简单, 划分的仔细点,XX干OO,YY做ZZ。前期还算比较理想,不过越到后来,越忙不过来,于是先干完的帮落后的干,结对编程,加班, 什么都上了, 基本不照计划来了;个人感觉是时间抓的不好,前期大家都在懒懒散散的干,效率很差;效率差也就算了,代码质量总能保证吧,不行,几百行的大函数没有一行注释,莫名其妙的数字硬生生的写在代码里,随意起的变量名和文件名,乱写的宏,无用的代码不删掉,什么都有。
2. 逻辑理不清,考虑不周全。包括我自己和同事都有这个问题,想到哪写到哪,没有一个完全的思路,很多地方该有的逻辑都漏写,导致后来Beta测试Bug一堆。这个也不能完全怪我们,日本人的代码风格也是一塌糊涂。不过本质上说,最开始没有好好的设计,没有详细的讨论,赶鸭子上架,都抱着先做出来再说的心态去干活,必然是这个结果。
3. 各自的水很深。每个人都不知道别人在干什么,当前做到哪,都想着赶紧做完拉倒。同事离职项目移交,才发现没有文档不说,代码命名都是name1, name2,name3之类, 时间紧赶出来的东西,测试时到处是Bug;某个S级死机Bug,组长硬着头皮和同事一起看了3、4天,代码基本Review一遍,还逼着他画了流程图,顺便还发现了一堆别的错误。(对不起XXX了^_^)
4. 有太多东西要从头写。公司项目做过也不少,大部分项目Master一交,就永远沉睡在硬盘上了,这次项目,UI部分要增加,使用的是MS的一套制作工具,限制多多。其实在我们自己的历史项目中,已经有离职同事写的一套UI编辑工具,DLL插件实现,控件类型也已经很丰富,编辑器所见即所得,XML导出结果,甚至是OPENGL和DX跨平台,Linux上都能跑的,可惜随着他的离去就这么湮没在硬盘里了。网络的东西也是,同事费了九牛二虎之力,从公司的别的项目组扒拉出来一套可以用的东西,改了不少,据他说,架构还不错,可惜就是没有代码注释,充斥了Magic Number,导致他浪费好长时间去弄明白这玩意是怎么工作的。公司不注重公共库、公共工具开发维护,项目组自己也不会总结,每次项目很多东西都要从头再写,一次一次重复发明着轮子。
个人觉得大概很多公司都会遇到这样的情况,这些事情肯定也被抱怨过无数次了,不过可能牢骚完了又再开始重复同样的历程,包括我自己。
-----------------------------------------------------------
每天进步一点