在大型 ERP 项目开发时,有多个子团队,每个子团队有多位工程师。昨日和某个子团队的项目经理聊天时,我强调专人负责各层开发的重要,也就是 DB、Business、UI 各有不同工程师负责,横向分割工作,而不是一个工程师负责一个功能,DB、Business 和 UI 通通一个人包了,变成直向分割,其要点如下:
- 每个工程师熟悉的技术不同,UI 需要 Ajax、Web、ASP.NET,中间层熟 Web Service、Domain Know How、DB 层熟 T-SQL 与数据库对象撰写。让每个人专精自己的技术,但不必学其他用不到的技术。
- 一层由一个人或一群人负责,可避免重复开发。因为若我写 UI,call 我写的 Business service,再 call 自己写的预存程序,其间一定会藏有许多自己开发上便宜行事的作法,但不利于别人呼叫。因此两个人有功能近似的需求时,会自己写自己用的 Service 或 Stored Procedure,而不去尝试重复使用别人已经开发的。因为找别人开发过的近似功能很麻烦,且若不合用,对方也不见得会帮我改。到最后,DB 内一大堆近似的预存程序、检视、函数,中间层服务有一大堆近似的类别、方法。若商业逻辑层或数据库层都是专人写,则该人可以防止重复开发。
- 各团队模块间,其商业逻辑或开发技术的交流较为单纯,比较能有跨团队的横向沟通,而不会彼此功能抵触却不知道。
- 每一层呼叫另一层时,就在建立标准与除错,因为某甲呼叫某乙写的服务时,就会要求标准化,并替商业逻辑除错,而非某乙任意写作。以后在模块间互相呼叫时才有可能。
若个人开发各自功能,好像找一群人来建房子,甲负责厨房、乙负责浴室、丙负责客厅、丁负责卧室…结果每个人都砌了墙、开了门…但彼此的门对不太上,从客厅要进卧室时,一开门就撞墙了,因为两个门没有标准。我们应该要甲负责整地、乙负责砌砖、丙负责水电、丁负责装潢…等等。
该项目经理反问,这样不好管,团队的默契也难以养成。以往哪项功能没写出来,盯那个人即可,现在某甲说某乙没写,某乙说某丙没写。我建议是应该形成团队压力,让大家知道团队进度是卡在哪层的服务,在等哪个人。
而团队开发默契本来就是需要时间培养,分层负责开发初期的确较为混乱,不容易立刻让高手一下子就做好单支从头到尾可测试的功能,但长期而言,分工才能培养专精人才,有了合作默契与惯例后就不会混乱。项目经理也强调组织的配置是工程师 Pool,所以随时调配任一工程师可独立完成整个功能。我的建议是变成多个专业人才 Pool,就这个例子而言,是划分成 UI、AP Service、DB Pro 三个 Pool,若哪个子团队缺哪层的工程师,就由专业 Pool 调配。
最后,他虽然没有接受我的建议,但有沟通总是好的。开发模式与文化的转变比导入新产品和技术还难。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
项目范围管理的几条原则
项目范围是一切的基础,作为项目经理,不管你是制定进度计划,还是制定预算,或者后续的监控,都是建立在范围的基础之上的。
-
企业确保ERP实施成功的十种战术
ERP项目的决定是一个冷静的反思与严谨的调研过程。“知己知彼,百战不殆”,这个战术同样适用于企业ERP软件选择与实施中。
-
ERP成功的基石:如何组建高效的实施团队
如果企业中没有一个非常强势的实施团队对ERP实施项目进行推进的话,将是一件非常糟糕的事情。本文主要探讨如何组建一个优秀的ERP实施团队。
-
六西格玛与项目管理
六西格玛所针对的、所提升的,也正是广义的质量水平。 既然六西格玛要提升广义质量水平,那么,仅靠质量部门本身是远远不够的。