锁定老帖子 主题:细粒度的迭代计划到底要做到多细?
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2004-09-12
>>因为你有一天不在公司了,公司就像丢了半壁江山,反之,即使你离开公司,公司依然能有效的运行,这也是职业道德。
如果我哪天突然离开公司,公司还屁事没有的照常运转,说明我是在这里尸位素餐。混日子就是你的“职业道德”? 我要在一家公司干,我要拿比别人高的薪水,就是因为我在这个位置能做别人做不到的事,能起别人起不到的作用。做只有我才能做的贡献,这是我的职业道德。想办法创造条件让我不要走,这也是公司另外某些人的职业道德呢。 |
|
返回顶楼 | |
发表时间:2004-09-12
ozzzzzz 写道 blackhost
管理是重要的,但是管理的手段要在软件开发中落实成为一种制度,就必须依靠技术.这是我们这个行业与其他行业相比一个明显的不同. 在中国从来就没有什么技术牛人,就更别说什么管理这些牛人的人了.软件行业的制度其实就是一牛人为核心组成的团队,进行手术小组一样精细的工作. 管理是一种基础性的工作,它不是一种凌驾于技术之上的手段,而是一种服务于技术,服务于技术人员完成工作,并且使他们能够健康工作的手段.牛人会死去,为之服务的管理方法也会随着牛人的死去会死去,这并不奇怪.就好像你没有奥尼尔和姚明,只有一个180的中锋,你却偏偏说战术是不死的,坚持打中锋战术.制度其实是因时因地因事因人的,秦国的制度拿到齐国肯定会失败,成吉思汗的制度拿到今天也注定会失败.每一个制度都是有其实现的基础的,软件公司的制度最大的基础就是软件公司中的技术人才的能力.脱离这个基础谈制度是毫无半点意义的纸上谈兵. 我觉得你的比喻不合理,你只看到制度中人的部分,而忽视了其他的部分,奥尼尔和姚明也不是一个人去打满全场,他也需要队友的配合,为什么同样的球队,同样的队员,有的主帅带就能拿总冠军,有的主帅就搞的一团糟,难道这是纸上谈兵,难道你会让主帅亲自上阵去打球!当然如果是渣滓球队让谁带都不可能拿总冠军,但是有的教练会让它拿第八名,甚至进入季后赛,而有的教练有可能直接使这支求队积分垫底,甚至解散。 所以,有效的发挥团队每个人的力量才是最关键的,让他能完成他所能完成的最大限度的任务,这就是成功 |
|
返回顶楼 | |
发表时间:2004-09-12
blackhost 写道 还是回到正题上来,我感觉在这时候,做为PM在无法说服领导(领导明白,但是也有自己的苦衷)的情况下,如何有效的利用现有的资源,找到一条最适合这个团队的开发方法。能够发挥每个人最大的能力去完成这个任务,而不是让其中的某个人拖项目的后腿,难道就真的象各位所说的,没有任何其他办法,只能PM负责其全部吗?
第一,我一直强调责权分明。作为PM,我发现手上的资源有问题,不足够完成任务,我立即向上反映了,这就不再是我的责任。领导有权决定具体的处理办法,他在运用这个权的同时他就得负这个责。他叫我就这么干下去,没问题,我还是会尽力,但就不能再叫我背失败的黑锅。 第二,请再看三遍《人月神话》(我是指那一篇文章)。如果你只有一个月时间,如果你已经感到来不及了,你最好不要再往里面放新人,那只会让你更加来不及。这种时候,新人能发挥的最大作用就是不发挥任何作用。 |
|
返回顶楼 | |
发表时间:2004-09-12
blackhost
现在的问题从管理上看是首先要时时刻刻考虑风险的问题.软件开发说到底还是一种商业活动,需要能够产生利润.而任何商业活动都要考虑到一个成本的低限,也就是不能做绝对不产生效益的事情.作为一个项目来说也就是必须要考虑到是不是在最坏的情况下也可以完成这个项目,只有在这个最基本的前提下,管理和协作才有价值.这其实也是CMM和ISO以及其他任何软件工厂学说不管怎么搞,他们也不会去涉及研究领域的原因.而我说得底线就是你的组织中有没有一个人可以在最大限度的情况下单独完成这个项目.只有在这个基础上你才有可能采取种种手段去争取更多的利益.当然这样的说法是有一个前提的,就是你不了解这个组织,不知道这个组织的能力到底如何.而那些成熟的团队,当然是会产生比一个人更大的力量的.但是你说的团队绝对不是这样一个团队. 引用 我觉得你的比喻不合理,你只看到制度中人的部分,而忽视了其他的部分,奥尼尔和姚明也不是一个人去打满全场,他也需要队友的配合,为什么同样的球队,同样的队员,有的主帅带就能拿总冠军,有的主帅就搞的一团糟,难道这是纸上谈兵,难道你会让主帅亲自上阵去打球!当然如果是渣滓球队让谁带都不可能拿总冠军,但是有的教练会让它拿第八名,甚至进入季后赛,而有的教练有可能直接使这支求队积分垫底,甚至解散。
你的说法很不明智,基本上都是在为你的论点提供方面的证据.为什么姚明和奥尼尔不可能一个人打一场比赛,但是却要围绕他们制度战术呢?为什么有的教练可以把一个球队带到一个更高的层次呢?他们怎么不说,我来制定一个万能的战术,你们只要按照我的战术打,就攻无不克呢? 一个团队当然应该充分发挥每一个成员的能力,但是这绝对不是什么最大的成功.软件开发不管怎么样说都是商业活动,成功的要求就是看是不是可以挣到钱.作为一个企业的成员,最基本的职业道德也是要看企业付出和收益的相比是不是可以接受. |
|
返回顶楼 | |
发表时间:2004-09-12
讨论好象有点转向到PM的职责的问题上来了。
Weinberg说:问题其实就是你期望的东西和你体验的东西的差别。 你期望的PM会是个什么样? 以下《成为技术领导者--解决问题的有机方法》 “有效组织的障碍”节选。 障碍一:玩大游戏 管理课本上可能这么写: 经理的定位是:解决问题并做出决定,而不是亲自执行实现目标所需要的行为;通常这些应由他人完成。 “发号施令”或“接受命令”的分类方法会导致“大游戏”的问题:“谁有权命令谁做什么事情?” 在许多组织中,就象在许多家庭和其他人际关系中那样,人们如此热衷于玩这种大游戏,他们根本没有时间去实现组织的既定目标。 障碍二:将人们视为机器那样去组织。 忙于通过书面的过程和备忘录进行组织的领导者很快就会与下属疏远。 障碍三:亲自动手。 组织其他人解决问题的最大障碍是,你自己以前作为问题解决者所获得的成功。 障碍四:奖励效率低小的组织。 。。。 有机地组织: 对领导者工作的更好定义是: 解决问题的领导者的定位是旨在营造这样一种环境:其中每个人都能 解决问题,做出决策,并实现这些决策,而不是领导者亲自动手来解决问题、 作出决策,并实现这些决策。 (以上节选不当之处见原文。) |
|
返回顶楼 | |
发表时间:2004-09-13
ozzzzzz 写道 凤舞凰扬
引用 那只能是一个senior coder,而不是manager了
这样的认识是一个巨大的错误,项目的成功才是最重要的,而不是你到底是不是一个manager. o6z兄的这个言论我便极不赞成了(甚至觉得有些感觉外行话了,我可能说重了,只是希望o6z再重新看看自己的语气。)。如果一个PM花太多的精力在coder,只是相当于一个senior coder的话,那么项目成功的可能性是非常小的,而且,随着项目的复杂度,项目规模增大,可能性急剧降低的。是不是manager不重要(是名头不重要),而是一个manager应该懂得怎么样去management,而不是developement。 引用 引用 作为一个PM,更重要的是降低这个风险
这个观点又是一个极大的错误.风险的避免应该主要是管理层要考虑的问题,作为一个做具体工作的PM,没有相应的权利去做这样的风险评估和决策的工作.而国内的众多企业的问题也就是出在这个地方.PM只是在管理层作出的风险规避决策的基础下,具体的实现这个工作. 引用 引用 只是强调队伍不行,就逃避或者放弃,那么我想问,你又怎么不去判断这个队伍是否能面对这个问题呢?
实际上刚好相反,逃避和放弃的是你,而不是我们.你明明看到这个风险,就应该无保留的汇报给管理层,而不是扮演一个英雄的角色.很多事情是不能试验的,,如果你偏偏要等到失败以后才去承认,那么造成的损失就完全是你的责任. 引用 引用 中国在造原子弹之前难道团队就有这样的能力?各位看官,呵呵,我不是把自己比喻这么大,呵呵,不要朝我扔鸡蛋,但是最基本的道理是这样的。
最基本的道理恰恰就不是这样的,两弹一星是在特殊情况下的特殊事情,如果你的公司天天在这样一种状况下工作,我看就只能认为你的公司非常的不正规. 引用 引用 如果只是碰到一点困难(这点困难和风险并非完全不能解决)就退缩,我个人觉得在“批判”公司的同时是否也要“批判”自己的职业精神呢?
你前面强调你是一个manager,可是你说的这个话却一点都没有管理的思想.一个管理者的最基本的职业道德就是分清责任.其实我们一直批判的就是你这种没有职业道德的精神. 引用 引用 任何一个团队,只要是可以学习的团队,在一定范围内是完全具有解决问题的能力的(当然这意味着PM要付出很多,意味着存在很大风险)。
你说的对.但是你怎么能在最初就知道这个组织是不是一个有学习能力的团队呢?而且如果按照你前面的说法,一个PM是不是应该去努力避免这样的"很大风险"呢?这又是一个职业道德的问题. 引用 引用 这里澄清一点,这样的项目肯定是没有拿到具体钱和项目的,所以谈不上用客户的钱为公司培训,不过再说了不用客户的钱,那公司哪来的钱给员工培训?
如果真的是没有收到钱的话,我想你的组织的水准就真的值得怀疑了.这样的企业可以说连最基本的风险管理都没有,其他的就更别提了. 企业经营的利润来自客户,所以从这个意义上说,培训费用也是来自客户.但是这个逻辑,我们大家都知道是一种狡辩. 引用 引用 另外,一个受open source影响的人,更应该具有开放的思想(不是那种的开放,而是将自己的思想与他人共享),所以公司没有做任何的培训要求或者培训经费投入的情况下,我都主动义务地给他们进行培训,因为我相信,他们能力提高,不会给自己带来什么竞争(一个人的对手永远都是自己,从来不要害怕别人超过你),相反,他们能力的提高可以给我带来更多的帮助,减轻我更多的工作。一个真正的PM,他的工作不应该困于编码的。
这段话就更加显示你没有起码的管理者的职业道德,也没有做企业的素质.一个企业如果是依靠它的员工无私奉献的基础上,这样的情况下不会持续的发展.你可以自己学雷锋,但是你不能依靠学雷锋的精神来做企业.一个企业如果不能给客户和企业内部的所有员工创造经济价值,这样的企业根本就没有存在的必要. 提高人员的素质不应该也不能够依赖于员工个人的付出,而是要依靠企业的人力资源经营. 引用 最后说说职业道德的问题,这个问题尤其重要.在中国似乎根本就没有客户意识,而只有老板意识.你的做法只是表明你有足够的效忠于老板或者企业的思想,但是缺乏一个行业从业人员的基本从业素质---对客户负责的基本态度. 实际上我也是经历过这样的事情的,最初我也是什么事情都自扛,自己付出.但是有一次我和l大脑袋聊天,说起了我的种种付出,他给我一句:"你是不是认为我是一个傻瓜和无赖,这些事情你不说我怎么能给你解决."中国人似乎觉得吃苦耐劳,任劳任怨就应该是一声不吭.其实这大大的错了,我们太小看了老板的素质,也太小看了他们的胸怀.而且很多问题我们往往喜欢让老板自己体会我们的想法,但是我们忘记了,老板要的是忠诚的员工,而不是忠实的奴才.反映问题,并不代表我们就是要逃避,而是要让领导层掌握最真实的情况. 最后,我只是回到楼主的话题,迭代计划做多细,关键看你控制得多细。 |
|
返回顶楼 | |
发表时间:2004-09-13
脱离具体的事例谈理论是很少有结果的.这个问题就必须按照楼主的设定为前提.所以很多风舞飞扬的发言都是很不合适的.
比如在这个项目中一个pm究竟能发挥多大的作用让项目成功呢?是直接自己去动手在1个月的时间内去完成它,还是做所谓的管理加强,慢慢让团队来完成他呢?这是不是一个分歧,而是一种态度----你是不是严格的有操守的管理者的态度.任何一个团队中的人都应该以项目成功为最高的目标,而不是以团队建设/加强管理这里的目标为最高目标.作为一个这么短时间的项目,所谓的复杂大和可控制性极具增大的情况基本上不存在的,一个人完全是可以掌握的.当然这样说有一个前提,那就是管理层很好的对于风险和项目的规模作了预估.如果真的是一个人不能控制,那么就可以认为这个项目根本就应该是按照我们最开始说的,不去接受. 对于风险的问题,我想风舞飞扬可能有很多东西没有理解.一个项目的风险控制基本上不是项目内所能控制的,而是负责发起这个项目并且在管理这个项目的高层负责控制的,而pm只是负责组织对风险的观测和当风险转化以后在风险应对措施以及到位的情况下的具体实施.具体采取什么策略和措施,基本上pm没有半点的管理和决策权,因为风险发生的后果决定了风险不能在一个小的组织中得到最便宜的解决,也就是说一个PM只能调动其内部的资料的情况下来解决风险基本上是不可能的,这也就是每一个公司都应该有救火队员的原因.而这样的项目基本上给救火队员发挥得余地太小了,常常的情况是当第三周的结束以后才会有人去汇报项目可能会完成不了. 而风舞飞扬对于风险控制的缺少理解可以从下面的话中得到验证,当然很多的人都和他有相同的思维方式,因此我要特别的提出了 引用 任何项目都有风险,一个好的PM应该在项目之初了解和把握这些风险,自然要像更高层表明,这点我是赞同的,也不存在和o6z兄的理解有何差别。只是任何意见都应该是建设性的,是怎么去解决或者降低,难不成,动不动就不做难道是好的方式? 项目的最大风险往往就在于没有风险应对机制。面对风险我们应该做什么呢?首先是我们必须理解风险,比如你说系统会在1个星期后不能完成,这就不是风险,而是必然会发生的事实。风险只是那些可能会发生的情况。面对这些风险首先是要做出一个判断风险是否发生的标准,也要建立一个风险释放的标准。并且对这些风险列出一个可能向现实转化的优先次序列表,并且制定一个建立这个列表维护制度。你并不需要对于所有的风险都在开始的时候建立应对措施,或者干脆就对所有的风险在开始阶段都不制定应对措施,而只是在风险发生的那个时候再进行因对性的措施。一个公司规模的组织,会有一套全方位的应对问题的解决计划,理想状态下风险转化后应该只需要调动这些已经制定好的计划就可以。而这应对计划是公司为所有的项目所准备的,而不是对具体一个项目准备的。这样的时候PM对于这样的措施基本没有什么发言的能力。
而风险是不会由于你采取了某种措施针对其运作,而真正的降低其发生的可能性的。你只能采取某种措施降低其转化以后造成的影响。同时由于风险都是可能会不发生的,所以你面对风险做出的种种措施都可能是浪费。而风险转化以后你的这些应对措施究竟是不是起到了作用也很难确定性的证明,而风险释放以后你也很难证明你的针对性措施究竟是不是起到了作用。而这些不确定性造成了当代风险控制方式已经从应对性的,变成了因对性的。基本上就是说由事先针对性的采取措施规避,变为了时候采取措施解决。 上面对风险说了很多,基本上是从一种态度开始给大家做一个风险管理的介绍。 |
|
返回顶楼 | |
发表时间:2004-09-13
最后还是回到这个项目上来这样的项目基本上没有什么成功的可能性,作为一个管理者最要紧的事就是去避免这样的事情方式,而不是让这些成功的可能性增高。实际上增高成功的可能性是一个逐步的长期的过程,在短短一个月中完成这样的工作根本就是不现实的。而这对于很多组织其实是很容易作到的。而最具有建设性的措施就是量力而为,不去做注定会失败的事情。
而从行业的整体性考虑,一个项目的失败往往会带来一片可能的客户的行业性流失。这个损失不是只针对项目失败这个个体企业的,而是整体的。现在之所以项目很不好找,一个重要的原因是很多项目由于不管有没有做的资格,大家都来参与一把,把价格搞得很对。这个时候客户如果是不成熟,就往往会以最低的价格成交,最后的结果一般都不会好。而客户如果成熟,则又会在商业和运作方式上对开发者进行多个层面的控制,造成很多不必要的成本付出。而实际上本来可以在源头上把好关,从自己这里把好关,能做的再作,不能做的就别做。这样往往不会有什么损失。但是由于种种原因很多企业都着急扩展,希望成为什么500大,结果就看出来了。 最后说说管理者的问题。管理者建立的是一套系统,这个系统应该可以在离开这个管理者的情况下也可以正常的运行。也就是说这个系统可以按照这个管理者的思路去发现适合这个系统的人和资源以补充道系统中,从而可以长期的运行。而管理者最大的一个工作就是分清楚管理者的责任,给出各个职位的资格。一个管理者可以自己付出额外的努力,但是绝对不能把这些付出当作除去自己以为人和人应尽的责任。如果没有这点素质,这个人就不能被认为有最基本的管理素质。而风舞飞扬缺少的就是这个,他自己还觉得可笑。真的很悲哀啊。实际上要想付出基本上可以解决现在任何的项目困难,大不了最后自己出钱找人做就是了。这在销售行当中很常见的。但是这样的方式绝对不是一个好方式。 实际上一个组织成熟与否的一个标志就是知道自己可以做什么,不可以做什么,而不是四面出击,什么都去做。学会拒绝是一个人成熟的标志,也是一个组织成熟的标志。 |
|
返回顶楼 | |
发表时间:2004-09-17
ozzzzzz 写道 首先是我们必须理解风险,比如你说系统会在1个星期后不能完成,这就不是风险,而是必然会发生的事实。风险只是那些可能会发生的情况。面对这些风险首先是要做出一个判断风险是否发生的标准,也要建立一个风险释放的标准。 这点我赞成,不过这点刚好就反驳了o6z兄您自己的观点,风险是什么?风险怎么评估?说系统一周后不能完成是基于什么样的情况?加班?正常工作,高效率工作还是充分考虑一周内会遇到的问题?
任何风险的评估以及预测必须基于一定条件,风险是不能空谈的。PM不能改变外部资源,不能改变外部环境,这非常正确,所以才会出现楼主和我所遇到的痛苦以及尴尬场面。一个PM此时该怎么做?是应该对任何条件都不进行评估而直接放弃还是找到一些适合的切入点,将风险化小,将某些优势化大?在博弈论和经济学上有一个非常有趣的观点,也就是弱势优势。我们再讨论一点,也就是gigix和o6z兄推崇的个人作战注意,如果做过基于web系统的人都会知道,一个人想在一两个月内做一个数十万行代码的系统根本是不可能的(上百个页面,可不是做网站,有得抄的),所以,团队是怎么都脱离不了的。 另外,o6z在畅谈风险以及管理的时候,总会不自觉地将范围泛化到项目外部,比如公司或者市场环境等。在那些方面,我不了解,也无法了解,所以我只是在项目内部,更重要的是团队,项目过程控制以及技术三个方面去探讨一些问题(当然,这狭隘了许多,不过我想绝大多数PM所能关心的也就是这个,扯得太远,并无好处)。 引用 最后还是回到这个项目上来这样的项目基本上没有什么成功的可能性,作为一个管理者最要紧的事就是去避免这样的事情方式,而不是让这些成功的可能性增高。实际上增高成功的可能性是一个逐步的长期的过程,在短短一个月中完成这样的工作根本就是不现实的。而这对于很多组织其实是很容易作到的。而最具有建设性的措施就是量力而为,不去做注定会失败的事情。 首先,我们看这样几点,项目的实施不是由PM说了算,而是由公司说了算,o6z兄在前面说得很清晰,到这里却又"故意"忘记了这点。其次,在短短的一个月完成这样的工作怎么叫不现实?o6z兄只是了解了团队的构成,却又是否了解楼主所需要开发的东西(只是原型啊),更加困难的我做到了,别人又何尝做不到那?(当然,我延迟了一个多礼拜,而且各种外部环境不同,任何东西不能简单比较,所以我并不是说什么项目都可以这样,我不想因为自己的言论而是所谓的偶然力量得到过分的放大。)。第三,对于项目的成功的评估是怎么样得到的?又是怎么样进行的?如果评估都是正确,为什么依然有那么多公司失败(最典型的就是ERP了)。
的确,项目的经验,包括风险的评估,周期与资源的估计,过程的控制都是需要日积月累的,很多过去做不好做不到的,再未来并不一定。 说到最后,我只是想说,经验最大的是来自于总结。 |
|
返回顶楼 | |
发表时间:2004-09-23
blackhost 写道 比如现在我有2个刚毕业的大学生,没有任何项目经验,1个中专生,看英语都成问题,一个有三年经验的程序员,可是是用PB的,现在我要用他们开发一个系统,要求一个月左右有初步的可用的框架模型出来,我该怎么做?
订的太细我感觉像是我一个人在做所有的事情, 订的太粗我感觉他们根本完不成. 怎么掌握这个度,我订的计划既要有完成的可能,又得他们能看懂,可操作? 这个项目你的迭代计划就是你自己的开发计划,跟其余的人没有关系,这是我的观点。 没看到你的原帖,如果就是一个月的进度要求,你看你一个人能否搞定,可以搞定的话,再看看能有多少时间来培训这些新人,能花多少时间在这些人身上。 计划的制定完全以你为主,其余的人根本不可能在项目里面起到作用,这是规律,一个从来没有做过开发的人,你想想让他们独立完成一个数据列表,带增删改、翻页、查询、页面跳转,这样一个最常用的程序,他们从熟悉开发工具、配置环境、熟悉语言、了解框架、使用JDBC,还有的根本就不知道SQL的使用,我想怎么着也得一个月吧,你能让他们做什么?如果连怎么做都不知道,你有必要给他们制定什么计划吗?开发计划他们看不懂,因为他们心有余而力不足,你要给他们做的是培训计划。 项目经理的一个原则是理智,计划的制定要符合客观规律,而不应该相信激情、热情之类的因素,领导、客户的压力也不能影响你的判断,怎么做是一回事,怎么和领导客户沟通是另外一回事。 微软的开发方式要求项目经理在进度计划制定时保留20%-200%的缓冲,为什么?他们也说不出理由,反正要加。象你这样,如果非要新人进入项目开发,我的意见是你的进度计划要加200%-300%的缓冲。不信我们可以打个赌,:)。 我觉得还有一点是项目团队组织,不同的项目会有不同的项目组织,你觉得你的项目组织怎样是合理的呢?一个月能干完的项目,是什么样的项目?需要几个人,每个人的职责和能力要求是什么?最低要求是什么?然后再看手上的人,如果全是新人,要跟公司说清楚风险是什么,培训周期很长,在这个项目里面他们起不到什么作用,可以先让他们学习,然后把代码给他们看,至于你能不能抽出时间教,那要看进度完成情况了。 |
|
返回顶楼 | |