`
zwchen
  • 浏览: 786167 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

我的项目经历及分析:为什么一个小项目要花掉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%。

因为公司有好几个子网站要改版,目前这个子网站,我把负责人的位子交出来了,离开成都来大连(和老婆团聚一段时间),我只专注于原型和界面评审,也就是用户看到的那部分。因为,我确实不想这样内耗,或许那位做老网站的员工和业务员、老板处容易些(企业基因啊,我是外来基因)。

大家看到这样的案例后,对团队协作和单人作战,以及项目开发过程(需求、原型、开发、内容)与进度的关系,有什么新的看法?如果这样一个项目,你是负责人,你会怎么做?





分享到:
评论
40 楼 seeckt 2010-05-26  
对于软件项目来说,主要问题在重复地低效率工作和需求边界的不断蔓延

但是如果从通用项目管理上讲
项目立项没做好问题才是很大的

项目章程里要完成
说明这个项目要做什么事情
花多少成本
预期达到什么目标

如果这些说不清楚,弄个“要建设世界一流的XXXX系统”,那基本是完蛋了
章程里要老板签字,这个代表了老板向全体成员说明你是项目经理,你被授权了
当然小公司不重形式,老板拉上重要干系人一起,拍你个肩膀那也算是了


39 楼 zwchen 2010-05-26  
To seeckt,我也是你这么想的:我应该承担部分责任,并且项目开始前就试着这么做:项目制。

但涉及到利益问题,拿到桌面上,合作就不太顺利,比如回避、拖延。
我的利益点:如何最快高质完成项目。
老板:如何最大节省成本。
虽然我们对成本的看法不同。

BTW:虽然这样,但并不意味着关系处理僵持,这是一件很奇怪的事情。
38 楼 seeckt 2010-05-26  
作为项目经理,当然应该承担责任

老板把事情交给你不是拍拍肩膀说相信你就行了
关键是2个
1、授权
,特别是平级部门之间至少要让其他部门主管知道要在一起做事情
老板要当面或者邮件告知双方,如果没有做这一步,那么项目经理要和老板提出协调一下这件事
特别是私下协调困难的时候一定要把问题上升
2、给钱
资金支持要向老板要到,不是指工资,而是项目预算(不知道你们有没有搞部门或者项目级的费用结算),然后向业务部经理和业务员说明一下协助你的工作会有一部分收益,这个费用从你的项目成本或者部门成本里出
特别是业务淡季,他们肯定会乐于接受


37 楼 zwchen 2010-05-26  
seeckt 写道
创业公司没人能干比较常见,没人肯干那不死路一条
客服的工作可以拉个项目奖金补偿订单损失
否则要别人多做事情同时还减少自己的收入帮你建站?


老板可不这么想:
1、你一天8小时上班,又不加班
2、给你的薪水,已经是让你满意的,难道需要我将你们薪水分两份?
3、目前业务是淡季,做自己用的网站,来提高自己订单量,不好吗?

另外,我是IT部,业务部(平级部门)缺乏积极主动,拖延,如果项目因为他们延缓或质量不达标,我作为项目经理,是否该承担责任?
当然了,事后问责,是一种耻辱。

36 楼 seeckt 2010-05-26  
创业公司没人能干比较常见,没人肯干那不死路一条
客服的工作可以拉个项目奖金补偿订单损失
否则要别人多做事情同时还减少自己的收入帮你建站?
35 楼 zwchen 2010-05-25  
andy54321 写道
对lz所说bt项目实现感兴趣,前面也有人提起,不知能否share?
看了这么些讨论,感觉受益匪浅。


05年毕业时,我把BT代码向sourceforge提交,因为license问题没有获批,因为我确实不想花时间研究这个问题,另外要毕业了没精力。

我走时没有copy数据库,只有代码对你也没用。
另外,我是用Java写的,网上有开源的php源码,比我的代码健壮得多,不过已经五年没关注了。
34 楼 zwchen 2010-05-25  
lobbychmd 写道
要学会放手,呵呵,对技术高手来说,其实很难真正做到。


我很想放手,但没人愿意干,没有人有能力干,公司是创业型公司,不大。这一年多的经历也证明了这点。

旅游业业务员(客服)类似销售,是底薪+提成,提成不是做网站提成,而是订单提成,做网站对于他们是成本,不是收益,至少在网站没有做出前。

本来我想70%时间做技术和管理,实际上是60%以上研究业务。我的核心竞争力在技术,谁想自废武功?
任何管理,都必须建立在对环境和资源的深刻理解上。
33 楼 lobbychmd 2010-05-25  
要学会放手,呵呵,对技术高手来说,其实很难真正做到。
32 楼 andy54321 2010-05-25  
对lz所说bt项目实现感兴趣,前面也有人提起,不知能否share?

看了这么些讨论,感觉受益匪浅。
31 楼 寄生虫 2010-05-25  
<div class="quote_title">firebody 写道</div>
<div class="quote_div">
<span style="color: #ff0000;">你卡住了,所有的都卡住。</span><span style=""><span style="color: #0000ff;">当然,你能力很强,这些仅仅让你更“疯狂”的工作,那很好</span></span>
</div>
<p><br>我比较赞同firebody的话,你不应该负责太多事情,只需要抓住每个关键点。</p>
<p>补充:</p>
<p>不单单是卡住的问题,能力再强,如果方向或者决策上出现了问题,那影响的不只是一点,而是整个项目的成败。</p>
30 楼 zwchen 2010-05-25  
1、楼上说的“客户协作重合同谈判”只是一个原则,但前提是利益关系处理好了。原则本身不会告诉你怎么做。就像你过河,别人告诉你过河很危险。但危险是因为河里有暗礁、鲨鱼还是漩涡,就要自己判断了。

2、firebody说的我很认同,但管理无定式,这么多年我也做过见过大大小小、千奇百怪的项目,我应该不会去机械照搬。每个项目的难点重点可能都不一样,比如,有些在界面(电子商务),有些在实现(平台),有些在协作(开源),有些在业务(社保)。但最核心的,还是人的因素,比如技术性的沟通、协作,人性的尊重、信任。


29 楼 firebody 2010-05-25  
zwchen 写道
抛出异常的爱 写道

3.必要的冗余是有必要的(我不得不说,你的冗余是我见过的项目中最多的)


我不同意,原型开发、项目管理、部门间沟通、测试是我一人身兼。如果你认为冗余,谁可以砍掉?实际开发人员两位,设计师一位。

开一个麦当劳店,最少恐怕得五位:店长、收银员、厨师、清洁工、洗碗工,而且几乎是1责n人(n>=1),24小时店还要考虑冗余(类似于RAID 1),难道它应该采取街边夫妻店模式?

应该庆幸仅仅经历了一个项目的曲折而让你做如此多的反思。
本来不想多说了,偶然看到你发的这句话“原型开发、项目管理、部门间沟通、测试是我一人身兼” ,如果说“原型开发、项目管理、部门间沟通”让你一人承担,我感觉 风险点在你身上, 你卡住了,所有的都卡住。 当然,你能力很强,这些仅仅让你更“疯狂”的工作,那很好,项目还是没太大困难,但是如果说“测试也由你来负责”,那只能说“庆幸”你还没碰到大一些的项目。

原型开发、项目管理和协调、测试三个无一不是项目成功的关键,你一人掌握这三个关键。 从一方面说是你的能力,当从另外一方面来说,你和你的老板都不知道该如何掌控和开展大一些的项目。

小项目,你可以一帆风顺无往不利,但是碰到协调难的,技术有难度的,需求比较复杂的诸如此类等等加大项目风险的东西,加多一个风险,你的项目曲折度就会增加一倍, 再增加一个 ,按照你所说的团队结构,失败那是板上钉钉的事情。

由 无往不利 到 曲折 再到失败 ,总归是一个过程 。
从管理角度,管人和用人 是非常关键的东西。



28 楼 lobbychmd 2010-05-25  
不够敏捷,合作 重于 合同
27 楼 抛出异常的爱 2010-05-25  
zwchen 写道
抛出异常的爱 写道

3.必要的冗余是有必要的(我不得不说,你的冗余是我见过的项目中最多的)


我不同意,原型开发、项目管理、部门间沟通、测试是我一人身兼。如果你认为冗余,谁可以砍掉?实际开发人员两位,设计师一位。

开一个麦当劳店,最少恐怕得五位:店长、收银员、厨师、清洁工、洗碗工,而且几乎是1责n人(n>=1),24小时店还要考虑冗余(类似于RAID 1),难道它应该采取街边夫妻店模式?

只是我见过的项目而已(当然我忘记把对日外包当作项目来看)

PS:项目管理与QA要分开.
他们是并行的同一个人运行会减低效率

实际开发与原型开发可以合并.他们不能并行.

如果你的美工开发水平高那么他与开发可以并行,

如果水平很一般.则不能与开发并行.但可以与设计并行.

这只是理论上可能性....无关实际

26 楼 zwchen 2010-05-25  
抛出异常的爱 写道

3.必要的冗余是有必要的(我不得不说,你的冗余是我见过的项目中最多的)


我不同意,原型开发、项目管理、部门间沟通、测试是我一人身兼。如果你认为冗余,谁可以砍掉?实际开发人员两位,设计师一位。

开一个麦当劳店,最少恐怕得五位:店长、收银员、厨师、清洁工、洗碗工,而且几乎是1责n人(n>=1),24小时店还要考虑冗余(类似于RAID 1),难道它应该采取街边夫妻店模式?
25 楼 抛出异常的爱 2010-05-25  
zwchen 写道
To抛同学
你说的确实在我们项目比较严重,设计师决定了我们项目进度,比如我们首页设计了两周,改了三个版本。
IT和业务团队的利益关系一直没处理好,导致合作困难。

1、从技术上看是一个小项目,但从商业角度看,就不小了,反正以前的年营业额是几百万。

2、因为是大众用户,所以对用户体验要求非常高,程序员做不了。另外,原型设计美工也做不好,因为必须深入理解业务。设计师很难做到页面重点突出、层次分明。她可以做得好看,但难做到好用。

3、原型设计一位、设计师一位、开发人员一两位、业务人员一两位,这是必须的。在一般的企业应用开发,是不把业务员考虑在内的,我们是运营型项目,需要每天去维护价格、产品。只有做专做深,我们才可能从红海到蓝海。

4、站在员工角度,我想任何人都不希望自己像打杂,都希望专注做一件事情,考虑到他们的感受和职业忧虑,分工明确是一个必须。我认为,员工满意和客户满意、公司满意都很重要。


1.你抱怨花了太多的人月,我不认为你的项目失败.
2.关键路线只是说最佳.不拖时间.拖时间那是必然,加入的人越多拖的时间越多.没别的意思 ,你需要什么样的人,那是必需的.
3.必要的冗余是有必要的(我不得不说,你的冗余是我见过的项目中最多的)
4..........
24 楼 jsjxqjy 2010-05-25  
旭少版 写道
前台JSP+JavaBean+WebWork,后台用Flex+Hibernate+Spring

我对 你说的 flex 是后台 前台是 webwork 这个 很感兴趣

能解释一下吗

在我的理解里 好像 flex 都是做前台的多啊


应该是 由2个系统组成的  ,这个没有问题。
23 楼 zwchen 2010-05-25  
To抛同学
你说的Critical Path确实在我们项目比较严重,设计师决定了我们项目进度,比如我们首页设计了两周,改了三个版本。
IT和业务团队的利益关系一直没处理好,导致合作困难。

1、从技术上看是一个小项目,但从商业角度看,就不小了,反正以前的年营业额是几百万。

2、因为是大众用户,所以对用户体验要求非常高,程序员做不了。另外,原型设计美工也做不好,因为必须深入理解业务。设计师很难做到页面重点突出、层次分明。她可以做得好看,但难做到好用。

3、原型设计一位、设计师一位、开发人员一两位、业务人员一两位,这是必须的。在一般的企业应用开发,是不把业务员考虑在内的,我们是运营型项目,需要每天去维护价格、产品。只有做专做深,我们才可能从红海到蓝海。

4、站在员工角度,我想任何人都不希望自己像打杂,都希望专注做一件事情,考虑到他们的感受和职业忧虑,分工明确是一个必须。我认为,员工满意和客户满意、公司满意都很重要。





22 楼 抛出异常的爱 2010-05-25  
zgsheng 写道
老抛的人和事的理论是对的.
其实可以更进一步,无论什么样的事,最终还是要落到人身上的.

所以,最终,其实都在人身上.人与人之间的关系,利益没搞顺,那事几乎一定会失败.

1那个观点不是抛的
2MS: firebody
3PS:我的看法是,管理失败,

由于在一个小项目中塞入了太多的人.
画一下网络逻辑图就知道
他的最短path
用四条线就是极限了.
再多加人不过是在捣乱而已

例子参考....人月神化....
网络计划图 可以参考土木工程课本
21 楼 logicigam 2010-05-24  
其实到最后还是人的问题,人员责任划分不明确,没有一个有效的决策机制,沟通和协作效率地下,最终导致大把的时间都耗在沟通协调决策问题上了。

相关推荐

Global site tag (gtag.js) - Google Analytics