如果我有自己的开发团队...

如果我有自己的开发团队...
   大家也许都听说过项目经理,在我的意识里,只要经过简单的项目管理培训就被堂而皇之的称为项目经理。有的甚至根本没有经过培训,也许只是管理了一个或几个也许都不能算作项目的项目。所以,我一直以来都认为项目经理也许什么都不是。一个项目根本就不需要这样一个角色。
   但是,当我一口气读完 汤姆.迪马可的《最后期限》,我觉得我们太需要一个这样的项目经理了,我所在的公司,项目从一开始就非常的混乱,没有章程,不是因为我们没有按照iso9000软件管理体系干活(这个体系是个垃圾),而是,我们的项目经理没能处理好书中认为最重要的问题:人的问题!除去对人的管理之后,项目管理只剩下枯燥的文档管理。也许,任何经过简单培训的人都能处理好这些文档,但是没有几个人能处理好项目中人的问题。我们的项目经理大都忽略了这个项目管理中最重要的问题。因为他们没有合理处理项目中人的问题,所以他们的项目按时交付成功的可能太小了。
   如果我有自己的开发团队,我就是一个项目经理(现在只是想象,我还是一名系统设计师)。现在我有一个很紧的项目,那么,我会......
   首先,真正的项目经理必须拥有这样的能力:1、能够选择正确的人。2、为他们分配正确的工作。3、保持他们的积极性。4、帮助团队凝聚起来并保持团队的凝聚力。看看,全部与人有关,除去这些,其他的都是文案工作。
   对我来说,想要选择正确的人是件困难的事,可能我还不具备一眼就能看董一个陌生人的能力。所以我会选择和我一起共事的同事,可能,我们一直就在一个小组里。这样我就很了解他们,我相信我能够为他们分配正确的工作。并且,我要保持好我的团队在一起,保持他们的积极性,不要威胁他们,不给他们太大的压力,不用加班。我本人的经历告诉我:愉悦的心情能让他们的生产力大大的提高,远比对他们施压更有效。
   但是,这并不代表我们会浪费时间,时间的浪费就是对项目最大的损坏,“有无数种方法可以浪费一天,但是没有任何一种方法可以拿回一天”这句话很好的说明了这一点,时间没了就没有,你永远补不回来。所以,从项目的第一天起,我们就要安排好我们的工作。合理的分配时间,哪怕时间根本就没法合理的分配。
   在项目的开始阶段,我们不需要太多的人,超编的人员只会给我们带来更多的麻烦,人多了,更多的时间会浪费在讨论上,每个人都有自己的思想,想把他们结合起来是件很困难的事,而如果在设计阶段只有很少的人,那么这些人会配合的非常默契。他们能把这个设计做的非常的漂亮。可能还会提前完成设计。
   但是,这也有问题。如果,只有少数人参与了设计,那么在后期编码,测试,文档时加入的人员会对这个项目一无所知,为了培训他们,我们又会浪费很多的时间,也许我们设计时节约的时间还不如浪费的时间的十分之一多。为了避免这种情况,我们就需要做很详细的文档,这个详细的文档并不是我们平时所作的详细设计,我相信那份详细设计对我们没用,至少我写程序的时候很少用到。我所说的详细文档,是指在分档中已经很明确的分配好了模块,数据结构,模块间的接口,这里,模块间的接口是很重要的,我们平时的项目中,错误有一大部分是出在接口定义不清中,而模块中的实现确很少出错,如果你的模块中的实现错误很多,只能说明一点,你是一个不称职的程序员。所以,在我们的详细文档中,模块间的接口定义的很好,那也许我们在测试的时候也能节约很多的时间。我们完全可以取消我们平时所谓的联调。因为只要程序员严格按照详细文档做,那么只要我们的设计没问题,就不会出错。现在又有一个重要的问题,我们为了保证接口设计成功,我们必须很仔细的考虑接口的问题,很仔细。仔细到就好像你已经在编码,把所有能考虑的问题都考到。我想各位包括我在内平时的设计很少会这么仔细的考虑接口问题,导致直到编码才会发现很多问题,有的会牵连的很多的模块和人。所以仔细设计模块接口,保证他没有问题,我们的项目就快成功了。
   在设计结束后,后参加进来的程序员就能够很快的开始编码了,不用思考太多的问题,只需要照着详细文档做,并保证自己的模块内部没有问题。
   如果一切都做到了,我想我们的项目就成功了。但是,到现在为止我们可能还做不到,有很多原因。客户的原因:他们要求交付的时间太没道理。领导就会要求小组加班,不停的加班,在他们看来,这是唯一提高生产力的方法。但,这样的项目很少成功,小组的成员会被累垮,最后离开,公司又会招新人,要培训。又被累垮,离开,再招。一个无尽的死循环,最后项目完全被搞砸了。如果客户的要求能合理一点,领导不要施加压力,由我来安排一切,我想也许我会给他们惊喜。但,在现在这是个奢望.......

你可能感兴趣的:(如果我有自己的开发团队...)