项目管理(一)任务分配

以前写过一篇,不满意,重写以下:
程序员

 

管理通常说来,就三件事:管人,管事,还有管钱。而这三者其实又是联系起来的,好比,咱们能够说:让合适的人作合适的事,并给他合适的钱。那么,问题就转化为:怎么才算“合适”呢?编码

 

困境

 

有一些人的管理工做随意散漫,但他们振振有词,“管理是一门艺术”。我以为,他们应该仔细区别一下,错落有致和杂乱无章,简约清爽和粗心大意……spa

 

或许他们还信奉权谋之道,用人嘛,“打个巴掌,给个枣吃”。你在用驴呢?稍微有点想法的就会不服,凭什么打我一巴掌?稀罕你这颗枣子呢?把爷当傻子耍?去你妈的!.net

利益面前谁都不傻,靠阴谋算计当心思,只会形成管理者和被管理者之间的复杂博弈。简单点说,就是勾心斗角阳奉阴违。你觉得你在玩他,他其实悄悄在玩你,搞成了宫斗权谋,一片乌烟瘴气。项目管理

 

咱们从一个最简单的例子提及。一件功能,交给张三去完成,给他三天时间。提早完成了有奖,超时罚钱扣工资。任务布置得清晰明了,并且赏罚分明,是否是?管理就这么简单。开发

凡是这么想的人,必定是没有搞过管理工做的。文档

中间可能出现的突发状况太多了。三天事后,任务尚未完成。你火了,问为何?一堆的理由:任务难度太大,工做量太多,李四不配合,理解错了你的意思,中间出现了什么突发状况……反正都不是他的责任。他说得这么有道理,你处罚试试看?没过几天你就孤家寡人光杆司令一个。因此,最可能的状况是,问一下缘由,埋怨两句,给他擦干净屁股,而后照样稀里糊涂的过日子吧!get

 

成竹在胸

 

上述管理者困境的一个重要缘由,就是管理者本身都不清楚:分配下去的任务,难度有多大,工做量有多少,可能出现的状况有哪些……本身都是一本糊涂帐,怎么可能管好别人?博客

咱们经常说管理人员要有威信。威信是怎么创建起来的?工做起来要成竹在胸,而不是稀里糊涂的把任务布置下去以后,遇到问题一问三不知,瞎指挥穷折腾。这样次数多了,下面的人天然不服,“聪明”点的就开始动心思糊弄了……自动化

 

话是这么说,但具体到咱们软件开发中的项目管理,成竹在胸就不那么容易了。

 

以项目预算为例,我历来没看到过一份清清爽爽的软件项目预算表。

先看报价。都是作工程,好比建筑工程,根据图纸,材料人工,一项一项的清单报价,无论多大的工程,价格算出来都是精确到分的,好比1080732.76元;但软件开发,合同能精确到百,都不错了,通常都是20万、 3500之类的,感受在价格就是随口喊出来的同样。

再说工期。建筑工程,误了工期,时间稍微长一点,违约金都赔不起。软件开发,延期延期再延期,才是常态,是吧?即便勉强交货,那都是蒙人的,里面bug一大堆,先交了货,再慢慢“维护”吧!

 

想来主要有两点缘由:
  1. 开发工做自己是一种创造性劳动。不像流水线上的工人拧螺丝钉,或者建筑工地上的工人砌墙搬砖,都是重复性劳动。虽然咱们不少同窗自嘲其工做为搬砖,但咱们搬砖过来以后仍是要砌成不一样形状花样的,而不是千遍一概的一堵墙。因此,不少问题,只能在开发过程当中才会暴露出来,解决的难度工做量都是一个未知数。
  2. 不断的需求变动。这个就很少说了,你们都懂的。

因此项目负责人对项目的细节没有切实的把控,只能凭着“经验”或者“想象”来大体的“估算”项目的工做量。而事实证实,这种估算是至关不靠谱的。


切分

 

处理一个复杂的事物,最经常使用的手段,就是把他切分红一个一个简单的部分。针对项目管理而言,咱们推荐的,就是作任务切分。

 

这实际上是一个必须得作的工做!区别只在于你是主动仍是被动,是认认真真仍是敷衍了事的在作。别说是一个团队,必须得分工配合;就算是你一个开发,先作什么再作什么,你内心也得有个数吧?

只是不多有人专门花时间和精力,有意识的来作这件事。由于咱们对于项目管理中“计划安排”的理解还不够深入。

 

根据个人项目实践经验,深刻细致的任务切分,可以帮助咱们:

  1. 真正的厘清需求。在“切”任务的过程当中,之前朦朦胧胧的概念,才会一点点的清晰起来。
  2. 可以“纠错”。清晰事后,一些疏漏错误也就天然而然的暴露出来了。就应该相应的调整进度计划等。
  3. 合理的安排人手。团队中每一个人的水平都是良莠不齐的。任务切分以后,简单的重复性工做分配给新手,复杂的有挑战性的给大神,你们都满意,开发成本也能随之下降。但若是没有有效切分,难的和简单的混在一块儿,是区分不出来的。
  4. 对开发人员有指导做用。我用的都不是高手大牛,但他们新人也能够顺着这个路子一步一步的作下去,至少其中一些简单的部分能够作起来,复杂的帮帮忙就好了。

总之,切分完任务,对这个项目,基本上就心中有数啦。若是说“管理艺术”,游刃有余的分配安排任务,像庖丁解牛同样,“以无厚入有间”游刃有余,这才能给人一种愉快的艺术享受!

 

精细化

 

我极力主张:把任务要切分到尽可能小的的粒度,好比一个任务20分钟左右,最多不超过60分钟。固然,不少同窗担忧这样作的成本过高,是否是项目经理一天到晚就切任务去了,不用干别的了?

这是一个值得讨论的问题。粒度越细,可控性越高;可是也要考虑成本,过犹不及。这个应该是根据项目具体状况,灵活掌握。

 

这里我只分享一下个人一个变通处理实践:你也可让开发人员本身进行任务切分,你在任务验收时同时核查任务的难度、工做量等。(若是你须要考核的话,由于这时候代码都已经提交review了,算是水落石出,作复核工做量其实不多了,因此开发人员通常也不会乱来

但这里有一个小问题,就是开发人员开始可能会抵触这种作法。他们会认为切 分任务和写文档、写注释、写日报周报同样,是无用的工做。

道理固然要讲,但最好仍是事实说话。

我随你的便,但只有一个要求, 你先把你要花多少时间告诉我。他说行,好比一个功能点,他信心满满的说,“2小时够了”。结果够个屁!哈哈,他两天都搞不出来。我就要找他说为何了呀?东一榔头西一棒,他怎么说得清楚?焦头烂额以后,他本身去体会。多尝试几回以后,外加他技术水平的逐步提升(切任务不是个简单活,很考功力的),最后他也养成了习惯:敲代码以前,先切任务。其实这就是一个理思路的过程,哪怕是纯coding,作以前思路清晰了,也能事半功倍。“磨刀不误砍柴工”,说的就是这个道理。


应对变化

 

有人以为这样作不值得。你辛辛苦苦的分任务,作计划,需求变了呢?或者出现了其余状况呢?计划是否是就白费了?越完善详尽的计划越不可能实现……

 

这些倒都是经验之谈。现实确实如此,“计划永远没有变化快”!可是不是就能够证实,咱们不须要计划了呢?让咱们静下心来仔细分析一下。

 

首先,不管如何,首先确定要有一个计划。公司要签合同要有金额工期,项目经理要报项目安排,程序员也要在deadline以前完成手头的工做……不管你愿不肯意,这是一个客观要求,很难逃避的东西,是否是?

 

那么,为何咱们不少人提起计划就头痛,特别反感计划呢?我以为,很大一个缘由是由于:计划被滥用。

好比被要求写这些日计划周计划月计划,写的时候就不情愿,感受画蛇添足;更况且要是没能按计划完成,还要被要求说为何!太多为何了,怎么说得完?真要说呢,又会被批评“为失败找借口”,烦死啦!因此就作个假计划大计划空计划之类的东西敷衍一下完事……

这种作法有几个问题:

  1. 僵化的看待计划。管理者认为计划一旦指定,就一成不变的、必须丝丝入扣的完成;甚至把计划当成了监督鞭策员工努力工做的东西。这确定是行不通的,其实,既然是计划,就意味着它尚未被实现;须要制定计划,就说明实现是有不肯定性的。很肯定性的东西,好比明天早上8点钟我要到公司上班,这种事情根本不须要计划;下周我要去海南岛环岛游,历来没去过,可能有不少突发状况,这才须要计划!这个计划就可能受天气、本身的身体情况等一系列的因素影响而没法百分百实现;但不管有无突发状况,我有机会确定比没计划强。为何就你们本身想想吧?
  2. 计划制定者指定不当。让能力通常的底层工做者指定计划,实在是有 些强人所难。计划不是那么好制定的,让你制定一个攀登珠穆朗玛峰的计划靠谱么?虽说coding是程序员的工做,但他们不少时候,编码仍是在摸着石头过 河,走一步看一步而已。因此,制定计划这种走一步看三步的工做,仍是项目经理,或者经验丰富的程序员来作更贴切一些。

 

因此,咱们必须明白:计划制定出来,就是被破坏的。计划没能按预期执行,并不说明他们没有用。实际状况发生了变化,计划就应该相应的调整;但这种调整应该是有序的可控的,而不是胡乱的调整。有序的调整可以最终保证大任务的顺利完成;而无序的调整,只会把事情搞得一团糟。怎么样才可以有序?仍是要有计划!一份计划,就像一张图纸同样,出了状况,铺开图纸,圈出出相应的部分,结合周围的状况,考虑一个妥善的解决的办法……而不是一堆人你一句我一句,天马行空,公说公有理婆说婆有理,乱哄哄的不可开交。

 

任务管理系统就可以帮助咱们及时迅速的应对各类变化。除了能够提供自动化的统计分析之外,更由于项目已经被有效的切分

若是你的计划是一个不可分割的总体,犬牙交错,牵一发而动全身的那种,那么固然,每一次改动必然都是一次伤筋动骨的大折腾。

但经过良好组织的任务切分,改动就能够被有效的对应到相应的计划部分。这时候,每一次的改动就是一个局部的改动, 是很是容易被从新计量评估的。好比,某次改动,会影响原任务3098-4012,原任务3876-3879,任务量共计480分钟;改动新增任务 5678-5894,任务量共计300分钟;因此任务总量减小180分钟,很是清晰。

 

结论

 

总之,任务的切分/分配能帮助项目管理人员深刻的了解项目,并在此基础上合理的计划安排开发工做,应对项目实施中的各类变化,是任务管理系统的基石。

 

++++++++++++++++++++

哇塞,写得好苦啊!最难产的一篇博客!

相关文章
相关标签/搜索