我的项目经历及分析:为什么一个小项目要花掉8个人月?

Posted on

我的项目经历及分析:为什么一个小项目要花掉8个人月?

这是我亲身经历的项目,并且是项目负责人,该项目只有10个左右核心页面,七人,一个半月。 而几年前,我做过的两个项目,技术难度比这大,功能模块比这多,却只需要一个人,一个月。 问题在哪里?大家一起来分析一下。 先描述一下这两个成功的项目。 项目一 南开BT联盟(简称:BT) 项目背景南开BT联盟是我03年底在校内部署的一个BT网站,采用一个免费的BT服务器(PHP)。半年后,也就是04年秋,发展成南开校园内几乎最热门的下载站点,我爱南开BBS的BT版成为年度十大热门板块(网站运营是另外一帮哥们,我只负责幕后技术)。因为校内注册用户超过5000,并且种子数超过1万,于是出现了定制化开发的需求。但是,该BT服务器是免费闭源,PHP是加密过的,没法改。于是,05年年初,也就是寒假那一个月,我没有回老家,从零开始,一个月写了一个Java版的BT服务器,开学后,就替换了原来的,运行一个月后,反应良好,晚上高峰期,上千人同时下载,五年前的截图。 功能模块 内核:BT客户端和Server端通信(编码解码器),torrent种子文件解析,种子状态更新、下载流量统计。 附加约8模块:种子列表、详细,站内信,简易BBS,种子上传、管理,用户管理,用户注册登录,排行榜、求种、系统管理等。 开发技术:JavaBean+Servlet+JSP(eclipse3.0+Tomcat5.0) 代码量:50多个JSP,约三万行Java代码 项目二 报表展现(简称:Report) 项目背景该网站约有两百个复杂报表,现在,因为整个大系统统一用Java开发,所以主要是技术升级。项目经理估算是10个人月,所以把活丢给我就没管了,慢慢开发吧。我分析了两天后,告诉他,我可以两周出一个版本,他大吃一惊,很有信心,就不过问我了。 我根据需求,自己开发了一套适合报表的框架(定制化的MVC框架)。另外,将sql统一到几个配置文件,以便将报表查询和程序分开(DBA和开发人员分开)。说实话,真正有难度的是sql,反正我看不懂。 开发了一个月后(两人,一个月),交工,客户很满意(50万合同额)。后来有近两个月的维护期,基本一周花半天就可以了,反正那段时间我特闲,专心啃技术。 实际情况是,我两周开发框架,两周开发业务。 项目三和四 当前的项目(简称:新B2C)? 项目背景该项目(老B2C)04年,一个程序员一个美工,一个来月就上线了。其后几年,每年几十万的毛利。但项目几年没维护,页面陈旧,内容过时,当然,产品和价格总在更新。 于是准备改版,核心页面总共10个左右,如首页、频道首页,产品详细页,预订表单。 技术5人,业务2人(负责网站内容)。技术人员中,一个(我)负责需求和原型,一个负责后台(另外一个辅助),一个负责前台,一个设计师。其中有技术高手,比如我,却搁浅搞业务,一个电子科大的技术牛人,一个原来开发老版本的开发人员。 花了一个半月,约8人月。 技术:前台JSP+JavaBean+WebWork,后台用Flex+Hibernate+Spring。前台让开发人员选用自己的熟练地技术,后台技术也是熟练的,基本上进度阻力并不在技术。

改版后,Google统计数据和实际订单量表明,并不成功。

问题在哪里? 下面是我的分析和比较,但我认为项目的决定性因素总是那些方面,只不过哪一方面突出些。 1、原型开发(需求分析) BT:基本没有,因为业务非常简单,主要是老版本技术升级。 Report:基本没有 老B2C:有,主要是抄袭,业务简单。另外,两个人,一拍即合。 新B2C:开发完原型后,给业务人员确认,修改,反反复复。老板当时不看,过几天会突然提出修改命令(小企业,老板没那么多事)。 最后确定下来的,是第三个版本,已经花掉了约两周。 2、内容建设 BT:不需要内容,只做平台。 Report:不需要内容,主要是处理数据 老B2C:内容抄袭,美工、开发人员一起抄。 新B2C:内容重新整理,只要出结果就行。 不过,出哪些内容,也就是一级大纲我出,包括原型上要求的内容,我都要截图出规范,配合很死板。小团队协作,通过文档规范来解决,已经是下下策了,但没办法,已经没法推进了。 3、界面开发 前三个项目,界面都很简单,直接Dreamweaver开发。 新B2C,一位高级设计师,新来的。因为原型中已经大体确定了布局,另外,可能我对界面干涉较多,所以他来后极不适应,因为以前做网站都是自己一人说了算,经常是到下班六点,就开始做自己的个人网站,不把工作放在心上。后来差不多做完,就离开公司了。 界面开发了约一个月,其中首页开发了半个月,后半个月都是赶,所以质量很差。因为界面设计都是先PS做效果图,后切片做HTML,工作量大。 我的问题:交互设计师(我)和界面设计师的职责不明确,导致设计师失去热情。后来我想到解决方案:1、设计前先给设计师仔细讲解业务,为什么我这么布局;2、界面风格的评审留给业务员。 但我本身对交互设计和界面设计有较好的基础,我更接近客户,还是业务员?我接触业务已经一两年了。 4、决策 前三个项目,基本上是个人决策,执行力很高 新B2C:因为涉及到产品经理(我)、业务员、老板三方,谁都想争取决策,闹得非常僵,项目几乎无法展开。第三个版本,修改建议主要是听业务员的,但大家已经彼此失去合作热情,导致后期的原型确认和内容建设进度很慢,三方都在耗。 5、协作 前三个项目,基本都是单双人,很顺畅。 新B2C项目,涉及7人,技术团队内部协作对进度影响可能只有10%(除了当时那位设计师,都服我),但部门间协作非常困难,因为没有利益制衡。虽然没有剑拔弩张,但已经是很机械、被动的合作。 6、激情/热情(最根本的问题) BT:强烈的学习动机,一定的责任和荣誉感。那时候我每天写代码到晚上3点,睡一觉后接着写。 Report:强烈的技术爱好,领导的信任和支持,没有进度压力。那时候我路上思考,吃饭时思考,睡在床上也思考。 新B2C:毫无激情(一周有效时间三天都不到),下班和周末就彻底不想思考。 我:有责任,但无权和利。权:无法推进业务员的内容建设, 利:作为合伙人,只拿基本生活费2k(五年前月薪的1/3)。 我的期望:老板把网站业务这块抓起来,另外花点时间在用户体验上,而不是想起来就催进度,提需求,而从来不关心导致进度迟缓的原因,并且一起办法。 管理的本质是利益的制衡,对于我们三方,我、老板和业务员均无制衡。 事后我想到的解决方案 以信任和激励为核心(激励的本质是满足人性的需求:比如我最看重士气和团队凝聚力,做事本身的快乐,而不是利润)。 一切问题,都是人的问题。 如果说业务人员不配合、缺乏动力,是我引起的只有30%,因为我们是物理上分开的两个环境,两种文化。 如何激励?

  • 老板解决内容质量和内容推进,不规定进度,而是期望进度(没有进度压力,往往开发得更快,进度我心里有分寸)。
  • 原型决策权:在我,我会征询大家的建议,协商一致后,业务部必须达成。
  • 界面风格决策权:在设计师(因为我吸取了以前的教训,新设计师热情很高,我的建议基本上就是她的决策),其它任何人只有建议权。
  • 薪水:在我强烈要求下,已经涨了1k,基本够业余时间消遣。 上面的措施,主要是解决我(负责人)和设计师的激励。如果说管理的本质原则是:责权利的平衡,那么有权和利做支撑,我的责任感也会来,我也想把事情做好。 不过,我的期望似乎太理想了,去改变老板太难。 如果能够解决团队协作和士气问题,我认为可以达成如下目标:整体进度提前50%,约15工作日(三周),也就是将内耗省下来。界面设计速度、代码开发速度可能快不了,但原型开发速度、内容建设速度可能提高60%。 因为公司有好几个子网站要改版,目前这个子网站,我把负责人的位子交出来了,离开成都来大连(和老婆团聚一段时间),我只专注于原型和界面评审,也就是用户看到的那部分。因为,我确实不想这样内耗,或许那位做老网站的员工和业务员、老板处容易些(企业基因啊,我是外来基因)。 大家看到这样的案例后,对团队协作和单人作战,以及项目开发过程(需求、原型、开发、内容)与进度的关系,有什么新的看法?如果这样一个项目,你是负责人,你会怎么做?
希望本站内容对您有点用处,有什么疑问或建议请在后面留言评论
转载请注明作者(RobinChia)和出处 It so life ,请勿用于任何商业用途