12.4领导小组——阿超的软件开发观点和管理理念
阿超建立了一个项目领导小组,成员就是项目各个小组的组长。
第一次领导小组开会,议题是分析团队的反馈,讨论如何能提高士气。
大家:如果做出一两个成功的项目,士气就上来了。阿超,你在外面混了这些年,做软件的秘诀给我们讲讲。
阿超:没有什么秘诀,只不过是看到过不少失败的教训和一些成功的经验,我们只要避免犯一些愚蠢的错误就行了。做软件还是一个比较简单的事情,我对软件工程的理解是:科学技术是第一生产力,在软件行业中,人是第一要素。我的核心思想是:直奔主题,精简过程。
一个软件的开发过程包括下面三个部分:
(1)设计(弄清楚要做什么和怎么做)。
(2)实现(开始去做)。
(3)测试(验证实现的结果)。
阿超:因为我们的项目是一个按日期交付的项目(日期驱动),我们必须按时交货,当然“货物”的具体质量不一定确定。我们的网站到时候不一定要十全十美,但是必须能够运行,能够支持大量用户同时访问。
阿杰:阿超,抛开这些驱动的因素不谈,如果项目到了预定时间没有完成,怎么办?一个类似的问题是:如果里程碑到期了,任务并没有完成,是延长里程碑的时间以希望完成所有任务,还是把不能完成的任务挪到下一个里程碑,以保证目前里程碑的按期完成?
阿超:问得好,如果我们的项目适合用敏捷开发方法的话,项目到了时间,就把没完成的功能都砍掉,希望下一个迭代再把这些功能完成。
大栓:当然这话说起来容易,真正做起来就难了。
阿超:这要具体问题具体分析,主要取决于项目的特点。
大牛:我还有一个问题,我们以前在做项目的时候,发生了不少争论,我理解大家都是从项目的利益出发,但是我们吵得很厉害,谁也不能说服谁,也伤了和气,我想问问大家,难道我们还要这样吵下去么?
阿超:有一个方法,大家可以试一试,有没有听说过“银弹”?
大栓:这不就是软件工程中传说的一劳永逸的解决方案?
阿超:那样一劳永逸的解决方案是不存在的。我说银弹是小规模的,有的团队为了快速解决纠纷,平衡各个部门的影响,给每个管理人员少量的“银弹”,二三枚而已。在“公说公有理,婆说婆有理”的情况下,谁用了银弹,就得听谁的。例如:大栓认为必须修改某一个缺陷,但是别人都不同意,大栓觉得根据他的经验,觉得如果不修改,必然会出问题,于是他就用了“银弹”,银弹一出,大家都不得不同意执行大栓的意见。当然大栓的银弹就少了一枚。以后在别的议题上,别人用银弹的机会就更多了,大栓的影响力相对的就会下降。
这样的办法的另一个作用是为了避免所谓“分析麻痹”的情况出现,有时大家对某个问题都拿不定主意,然后也不能说服所有人,有些团队会不断地开会讨论分析问题,迟迟没有实际行动,这时,一颗银弹可以摆脱这种麻痹,使团队停止坐而论道。
当然,我们不能简单地用“银弹”来取代对问题全面的讨论。不能一上来就是一颗银弹——这事儿不用讨论了,我已用“银弹”搞定!
阿超建立了一个项目领导小组,成员就是项目各个小组的组长。
第一次领导小组开会,议题是分析团队的反馈,讨论如何能提高士气。
大家:如果做出一两个成功的项目,士气就上来了。阿超,你在外面混了这些年,做软件的秘诀给我们讲讲。
阿超:没有什么秘诀,只不过是看到过不少失败的教训和一些成功的经验,我们只要避免犯一些愚蠢的错误就行了。做软件还是一个比较简单的事情,我对软件工程的理解是:科学技术是第一生产力,在软件行业中,人是第一要素。我的核心思想是:直奔主题,精简过程。
一个软件的开发过程包括下面三个部分:
(1)设计(弄清楚要做什么和怎么做)。
(2)实现(开始去做)。
(3)测试(验证实现的结果)。
阿超:因为我们的项目是一个按日期交付的项目(日期驱动),我们必须按时交货,当然“货物”的具体质量不一定确定。我们的网站到时候不一定要十全十美,但是必须能够运行,能够支持大量用户同时访问。
阿杰:阿超,抛开这些驱动的因素不谈,如果项目到了预定时间没有完成,怎么办?一个类似的问题是:如果里程碑到期了,任务并没有完成,是延长里程碑的时间以希望完成所有任务,还是把不能完成的任务挪到下一个里程碑,以保证目前里程碑的按期完成?
阿超:问得好,如果我们的项目适合用敏捷开发方法的话,项目到了时间,就把没完成的功能都砍掉,希望下一个迭代再把这些功能完成。
大栓:当然这话说起来容易,真正做起来就难了。
阿超:这要具体问题具体分析,主要取决于项目的特点。
大牛:我还有一个问题,我们以前在做项目的时候,发生了不少争论,我理解大家都是从项目的利益出发,但是我们吵得很厉害,谁也不能说服谁,也伤了和气,我想问问大家,难道我们还要这样吵下去么?
阿超:有一个方法,大家可以试一试,有没有听说过“银弹”?
大栓:这不就是软件工程中传说的一劳永逸的解决方案?
阿超:那样一劳永逸的解决方案是不存在的。我说银弹是小规模的,有的团队为了快速解决纠纷,平衡各个部门的影响,给每个管理人员少量的“银弹”,二三枚而已。在“公说公有理,婆说婆有理”的情况下,谁用了银弹,就得听谁的。例如:大栓认为必须修改某一个缺陷,但是别人都不同意,大栓觉得根据他的经验,觉得如果不修改,必然会出问题,于是他就用了“银弹”,银弹一出,大家都不得不同意执行大栓的意见。当然大栓的银弹就少了一枚。以后在别的议题上,别人用银弹的机会就更多了,大栓的影响力相对的就会下降。
这样的办法的另一个作用是为了避免所谓“分析麻痹”的情况出现,有时大家对某个问题都拿不定主意,然后也不能说服所有人,有些团队会不断地开会讨论分析问题,迟迟没有实际行动,这时,一颗银弹可以摆脱这种麻痹,使团队停止坐而论道。
当然,我们不能简单地用“银弹”来取代对问题全面的讨论。不能一上来就是一颗银弹——这事儿不用讨论了,我已用“银弹”搞定!