怎么管
来源:互联网 发布:千里眼软件 手机 编辑:程序博客网 时间:2024/04/26 13:00
在大型 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 调配。
最后,他虽然没有接受我的建议,但有沟通总是好的。开发模式与文化的转变比导入新产品和技术还难。
- 怎么管
- 怎么管
- 论坛的管理怎么管
- MOS管驱动电阻怎么选择?
- 软件开发怎么管?---产品、过程、人员三要素
- 顶风作案,这样的接入商怎么没人管?
- MOS管怎么区分N沟道和P沟道呢
- 1-1=2 正部级铁路总公司怎么管
- 工程师应该怎么管 谷歌这么干
- <<给你个团队你能怎么管>>读书笔记-1
- <<给你个团队你能怎么管>>读书笔记-2
- 《给你一个公司,看你怎么管》笔记
- 非技术出身的项目高管怎么去寻找到中意的CTO
- 微管理——给你一个技术团队,你该怎么管
- 微管理—给你一个技术团队,你该怎么管
- 书评兼学习比较:给你一个团队,你能怎么管?
- 书评兼学习比较:给你一个团队,你能怎么管?
- 微管理——给你一个技术团队,你该怎么管
- DA18 –说明MiniWH范例
- 解读C#中的规则表达式
- Visual C#中的多线程编程
- 如何创建一个用弹出窗口来查看详细信息的超链接列
- 看《墨攻》理解IoC概念
- 怎么管
- Linux C 访问数据库操作
- C#农历
- 弹出窗口杀手(上)
- Bugfree2.0+apache+mysql+php在windows2003上配置成功
- 10.3.2 客户端
- dataset的使用方法
- 如何在C#中使用内嵌资源文件
- Hibernate的DAO实现